container orchestration: the cold war - giulio de donato - codemotion rome 2017

Download Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017

If you can't read please download the document

Upload: codemotion

Post on 05-Apr-2017

26 views

Category:

Technology


0 download

TRANSCRIPT

Container orchestrations:
the cold war

Giulio De Donato @liuggio

Orchestration

Todays path

devops

Container
orchestrators principles

A Comparison THE BEST CONTAINER ORCHESTRATOR
And
how to make easy money

Talks end here

devops

Riusciamo a dare una definizione di devops?

Devops dev and ops

Riusciamo a dare una definizione di devops?

devops

Riusciamo a dare una definizione di devops?
non c una risposta definitiva, cisno molte opinioni su cosa c sotto il tetto del devops e cosa no. una cultura? una job title? un modo di organizzarsi o solo un modo di pensare,Possiamo anche pensare ad un movimento che sia in evoluzione, quindi non fermiamoci troppo nel dare una defizione adesso, Invece possiamo parlare di temi comuni, strumenti e idee.Nato con lidea di migliorare il service delivery agility, il devops enfatizza la comunicazione, la collaborazione e lintegrazione tra software developer e IT operations. Piu che guardare questi in silos separati e paralleli, il DevOps riconosce che linterdipendenza del software dev e IT operation e aiuta una organizzazione al fine di renderA perfect storm of converging adjacent methodology including Agile, Operations Management (Systems Thinking & Dynamics), Theory of Constraints, LEAN and IT Service management came together in 2009 through a smattering of conferences, talks and Twitter (#devops) debates worldwide that eventually became the philosophy behind DevOps.Agile software development paved the way, steering away from the waterfall method of software development toward a continuous development cycle. Ma senza includere le operation side so while development could be continuous, deployment was still waterfall-oriented.In a DevOps environment, cross functionality, shared responsibilities and trust are promoted. DevOps essentially extends the continuous development goals of the Agile movement to continuous integration and release. In order to accommodate continuous releases, DevOps encourages automation of the change, configuration and release processes.

devops is about dev and ops


devops is from to .

Certo idea money suonava male

Devops misconceptions

DEVOPS is not a verbDevops non descrive chi seiDEVOPS is not the new OPSDEVOPS is not the new OPS with jenkins skillDEVOPS is not
a pipelineDEVOPS is not
a new SIlos teamDEVOPS is not
about toolsDevOps mean giving developers the root password

New brain :)

Ok ci siamo puliti un po il cervello da alcuni concetti che Ora prendete tutti questi concetti e buttateli via perche si parla di orchestratoriiiuuiiiiii

Container
Orchestration

Once upon a time

MAINFRAIME
Ecco a voi il server Veniva dato un nome al server, veniva installato UNA volta a mano veniva assunta una persona Le epoche passavano e cosa succede niente la persona invecchia

Once upon a time

The old school:
Sostituibilit no Resilience no Scaling solo manualeMantenimento solo manuale

Ecco a voi il server Veniva dato un nome al server, veniva installato UNA volta a mano veniva assunta una persona Le epoche passavano e cosa succede niente la persona invecchia

The evolution

..

Separation of concerns

Lot of containers

Nodes

Separiamo i concetti di nodo quindi macchina da containersQuindi i nodi macchineI container piccoli oggetti che giraano su un determinato kernelE il container runtime che un demone che serve a far girare i container.

Non poi proprio cos tecnicamnete potremmo andare ancora ad affettare pensando a macchine di computazioni, volumi e reti ma non compichiamo le cose...

Separation of concerns

Computation and Resources

Containers

Separiamo i concetti di nodo quindi macchina da containersQuindi i nodi macchineI container piccoli oggetti che giraano su un determinato kernelE il container runtime che un demone che serve a far girare i container.

Non poi proprio cos tecnicamnete potremmo andare ancora ad affettare pensando a macchine di computazioni, volumi e reti ma non compichiamo le cose...

This APP should be replicated at least 3 times.

The APP should communicate over
An overlay network called backend.

The Simple Containers Needs

APP (nginx)This APP need 3Gb Ram, 1 core, 20GB of SSD.

The APP must be load-balanced internally on 9000,
and health-checked on port 80 load-balanced.

All of the logs of my AP should go there.APP (nginx)APP (nginx)809000

Definizione per un orchestratore dichiarativa

Container Orchestration duties

IMAGE BUILD


IMAGE PUSH

IMAGE REGISTRY



KNOW WHEN DEPLOY NEW VERSION

DEPLOY

...

NODefinizione per un orchestratore dichiarativa

Container Orchestration

Application Development lifecycleSource repo, CI, Artifact repository

Container lifecycle
Container builder, Image repository

Container Orchestration
Scheduling, Resource management, Service management

Day 2 Operations
Debugging, Monitoring

SUPER-DASHBOARD?

NO

Definizione per un orchestratore dichiarativa

Container Orchestration duties

Karl di mesosphere: https://www.youtube.com/watch?v=C_u4_l84ED8Definizione per un orchestratore dichiarativa

Orchestration

Role 1 - the script

Role 2 - the masters

Role 3 - the workersNellimmagine non ci sono i container, i workers sono agenti nei nodi che muovono i container.

Orchestrations

the script

the master nodesthe agents nodethe orchestrator agentsthe container daemonsthe containers

The orchestrator managers

Distributed key value store

the script

the master nodesthe agents nodethe orchestrator agentsthe container daemonsthe containers

The orchestrator managers

Chi abituato a programmare nello sviluppo con docker cosa abituato ad usare?

SIMPLE NEEDS

CONTAINER ORCHESTRATIONS
IS ABOUT
SIMPLE NEEDS

Definizione per un orchestratore dichiarativa

BAD NEWS

CONTAINER ORCHESTRATIONS
IS ABOUT
DISTRIBUTED COMPUTING

Definizione per un orchestratore dichiarativa

BAD NEWS

AND
DISTRIBUTED COMPUTING
IS HARD STUFF

AH OK.

GOOD NEWS

THERE ARE SEVERAL ECOSYSTEMS

AH OK.

The open-source players

RancherHashicorp NomadDocker swarmKubernetesDC/OSPerch solo quelli opensource?Perche sono i driver dellecosistema.

Docker Swarmkit

Facilissimo da installare

Velocissimo ecosistema

Velocissimi cambiamenti

Facile per pochi nodi

Stessi tool di dev

Swarm si occupa solo di clustering e scheduling

Solo Command Line / no UI

Non appesantisce la computazione

Perch solo quelli opensource?Perche sono i driver dellecosistema.

kubernetes

Opinionated

Usatissimo

Ecosistema floridissimo

Supportato da Google, Redhat ...

Approccio dev

Ben integrato con i maggiori cloud provider

Forte storico

an open source system for automating deployment, scaling, and operations of applicationsPerch solo quelli opensource?Perche sono i driver dellecosistema.

DC/OS mesosphere

In produzione da mostri sacri

Package manager

UI ottima

Supporta piu team

Anche Big-data

Espone Servizi interni (eg. Jenkins abilit lOAuth2.0)

Complesso

Folders

DC/OS is based on the production proven Apache Mesos distributed systems kernel, combining years of real-life experience with best practices for building and running modern applications in production.

Perch solo quelli opensource?Perche sono i driver dellecosistema.

ServerDocker Swarmkit

Container
Server1Container
RedisTask==container
Service == group of task of the same imageNetworkVolume
Route mesh

volumevolume

useradminGolang -> mysql

agentsmanagersDocker Swarmkit

ServerContainer
Server1

Container
RedisTask==container
Service == group of task of the same imageNetworkVolume
Route mesh

volumevolume

Port: 80networksReplica:2useradmin

api

Golang -> mysql

Kubernetes

Container server2Container
Server1Container
RedisPod == group of containers that shares volumes and
Service == Abstraction and access
ReplicaSet == Handle the replica count
Volumes!

volume

useradmin

Pod che sono effimeri
Servizi che sono una astrazione a cui delegata lesposizioneUn servizio scala insieme e contiene anche piu container
I volumi sono ben fatti essendo partiti su gcloud lo storage una richiesta che deve essere fatta a priori e ci sono diversi driver esempioLoad balancer
Kubernets ha un cronjob per schedulare operazioni
Ecosistema valido

Kubernetes

Container server2Container
Server1Container
RedisPod == group of containers that shares volumes and
Service == Abstraction and access
ReplicaSet == Handle the replica count
Volumes!

volume

Port: 80Replica:2useradmin

api

LOAD BALANCER

agentsmanagersPod che sono effimeri
Servizi che sono una astrazione a cui delegata lesposizioneUn servizio scala insieme e contiene anche piu container
I volumi sono ben fatti essendo partiti su gcloud lo storage una richiesta che deve essere fatta a priori e ci sono diversi driver esempioLoad balancer
Kubernets ha un cronjob per schedulare operazioni
Ecosistema valido

DC/OS mesosphere

SchedulerDATACENTERSchedulerSchedulerGolang -> mysql

CronDATACENTERHadoop

Container OrchestratorkubernetesDC/OS mesosphere

Golang -> mysql

DC/OS mesosphere

ServerContainer
Server1

Container
RedisfolderService == group of container/command/script of the same typeNetworkVolume
Internal VPNvolume

Load balancer is a ContainerDNS/networks/VIPuser

admin

agentsmanagers

apiStore
Stateful container are really important
Di giorno container di notte bigdataMonitoringUtile organizzare tramite folders

Production

DichiarativoYAMLRude, evolve velocemente, no official ui (shipyard), target folli.

Production

JSONGoogle rilascia open-source il loro prodotto:CLI potente, grande ecosistema, package manager: target startup web ed enterprise

JSON

Target Enterprise, UI, cron, ecosistema florido, basato su mesos, Store per installazione pacchetti, riesce a far girare anche big-data e altri scheduler

Ma...

Path to prod

Community
docker-italia.slack.com
auto-invite: docker-italia.herokuapp.com

Docker documentation

Dev environment

Fail fast - with a simple orchestrator:
cloud.docker.com/mini kube

Move your company:
ECS|Kubernetes|DC/OS

Golang -> mysql

xpeppers.com/radar
docker-italia.slack.com
docker-italia.herokuapp.com
We are hiring great people

Giulio De Donato
@liuggio

Nome Speaker@twitter\