SlideShare une entreprise Scribd logo
Workshop #4
Docker,
des tours dans le petit bassin…
Le 24-mai-2016 – Théo Chamley, Julien Follenfant & Ludovic Piot
Evénements
les différents événements Oxalide
Workshop #4 - Docker, des tours dans le petit bassin…
Les événements Oxalide…
• Objectif : présentation d’une thématique métier ou technique
• Tout public : 80 à 100 personnes
• Déroulé : 1 soir par trimestre de 18h à 21h
• Introduction de la thématique par un partenaire
• Tour de table avec des clients et non clients
• Echange convivial autour d’un apéritif dînatoire
• Objectif : présentation d’une technologie
• Réservé aux clients : public technique avec laptop – 30 personnes
• Déroulé : 1 matinée par trimestre de 9h à 13h
• Présentation de la technologie
• Tuto pour la configuration en ligne de commande
• Objectif : présentation d’un outil
• Réservé aux clients : 30 personnes
• Déroulé : 1 soir par trimestre de 18h à 21h
• Démonstration des fonctionnalités de l’outil
• Echange convivial autour de pizzas
Apérotech
Workshop
Pizza’n’Tools
Workshop #4 - Docker, des tours dans le petit bassin…
Les speakers…
Julien Follenfant
Customer Team 01
@ Oxalide
Théo Chamley
Conseil / Archi / DevOps
@ Oxalide
@MrTrustor
Ludovic Piot
Conseil / Archi / DevOps
@ Oxalide
@lpiot
Présentation de Docker
Hands-on #1 : mon premier container
Comment ça marche ?
Les nouvelles collaborations
Ecosystème
Démo : découverte de Kubernetes
Questions & réponses ?
1
3
2
4
5
6
7
Présentation de Docker
Présentation de Docker
Qu’est-ce que Docker ?
Présentation de Docker
Métaphore… avant
Présentation de Docker
Métaphore… après…
Présentation de Docker
Qu’est-ce que Docker ?
le container Linux Docker
enveloppe logique isolant…
un ou plusieurs processus…
en exécution
décrit le contenu du container
décrit l’interface entre le
container et son hôte
gère le cycle de vie du container :
build / package / deploy / run / kill
Présentation de Docker
Principales qualités de Docker ?
PO
rtable
DI
sposable
LI
ve
SO
cial
Présentation de Docker
POrtable
Disclaimer !
On est dans le chapitre POrtable,
mais je ne vais pas parler de
Docker sur Ms Windows Server
Présentation de Docker
POrtable
Mise en œuvre facile
partage peu de choses avec l’
hôte, mis à part le kernel
s’appuie sur les fonctionnalités
natives du kernel Linux
produit stand-alone écrit en Go.
peu d’adhérence avec les autres
containers : incompatibilités
limitées
overhead quasi-inexistant
peu de configuration pour être
opérationnel
Hardware Hardware / VM
Hypervisor Linux Kernel
VM
OS
Libs
Middlewa
res
conf.
Apps
Kernel
HDW
conf.conf.
Container
OS
Libs
Middlewa
res
conf.
Apps
conf.conf.
VM
OS
Libs
Middlewa
res
conf.
Apps
Kernel
HDW
conf.conf.
Container
OS
Libs
Middlewa
res
conf.
Apps
conf.conf.
Virtualization Isolation
Container Runtime
architecture microservices
Présentation de Docker
POrtable… meet the market…
Présentation de Docker
DIsposable
Cattle vs. Pet
build du container décrit dans
Dockerfile
déploiement par docker pull
Docker est une technologie de
packaging et déploiement
Infra as Code
Immutable Infrastructure :
build & replace vs. upgrade
Présentation de Docker
DIsposable… oui mais…
Par nature, un container éteint
perd ses données.
Persister les données est un
sujet :
● utiliser un mécanisme
applicatif (ELK)
● utiliser un stockage tiers
(base de données, object
storage)
● monter des volumes du
host dans les containers
Docker
L’application embarquée dans le container
doit être “distribuée” par nature (twelve-
factor app) :
● tolérance à la panne (load-balancing)
● pas de session stickyness
● compatible blue/green
La plateforme Docker doit être résiliente
Présentation de Docker
DIsposable… meet the market…
Présentation de Docker
LIve
Git style
Images versionnées
API à la git :
● diff
● commit
● tag
● history
Images incrémentales
multi-layered filesystem Image
Build
Run start / stop
restartCommit
Présentation de Docker
SOcial
Github style
dépôts d’images
Docker registries
Dépôt public et communautaire
Docker Hub
Votes pour les images
Images officielles / trusted
Outil de build continu
Outil de diagnostic continu
Docker Security Scanning
Hands-on #1
Mon premier container
Prérequis
Docker toolbox
Download & install for Windows or Mac OS
https://www.docker.com/products/docker-toolbox
Check de
l’installation
Et votre premier
docker run :-)
Premier build de container
Dockerfile
jfo@lab ~/oxatest
$ vim Dockerfile
FROM debian
MAINTAINER jfollenfant <jfo@oxalide.com>
ADD ./hello.php /
RUN apt-get update
RUN apt-get -y install php5-cli
CMD php /hello.php && echo $ENV
jfo@lab ~/oxatest
$ vim hello.php
<?php echo “hello from Oxaliden”; ?>
jfo@lab ~/oxatest
$ docker build -t hello-oxa .
[...] building image….
jfo@lab ~/oxatest
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hello-oxa latest 7c3877476e31 About a minute 198 MB
Sources
Dockerfile +
hello world en
PHP
Build d’une
image ready to
run.
Déroulement des commandes du
hands on disponible sur :
http://tinyurl.com/j2yp857
Pour aller plus loin
Elasticsearch cluster dockerized
$ docker run -d --name es-01 -p 9201:9200 -d elasticsearch:1.7.5 elasticsearch -Des.node.name=”es-01”
$ docker run -d --name es-02 -p 9202:9200 -d elasticsearch:1.7.5 elasticsearch -Des.node.name=”es-02”
$ docker run -d --name es-03 -p 9203:9200 -d elasticsearch:1.7.5 elasticsearch -Des.node.name=”es-03”
Use it, break it, fix it, trash it, change it.
Elasticsearch cluster dockerized
Elasticsearch autodiscovery entre les 3 containers
$ docker exec -it es-01 plugin install lmenezes/elasticsearch-kopf/v1.6.1
Accès depuis un navigateur : http://192.168.99.100:9201/_plugin/kopf
Execution de commandes à l’intérieur d’un container en état RUNNING
Comment ça marche ?
Comment ça marche ?
Namespaces & cgroups
A namespace wraps a global system resource in an abstraction that makes it appear to the
processes within the namespace that they have their own isolated instance of the global
resource.
Namespaces
cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for,
and isolates the resource usage (CPU, memory, disk I/O, network, etc.) of a collection of
processes.
Cgroups
Comment ça marche ?
Layered FS - Poupées russes
● Toutes les écritures sur le
layer Container (R/W)
● Mutualisation des datas
R/O entre les containers
● Copy-on-Write
● Réutilisation des layers
avec le mot clé “FROM”
dans les Dockerfiles
Comment ça marche ?
Layered FS
Comment ça marche ?
Layered FS - Exemple
$ docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
6d28225f8d96: Downloading [=========================> ] 30.96 MB/48.35 MB
166102ec41af: Download complete
d09bfba2bd6a: Download complete
c80dad39a6c0: Download complete
a3ed95caeb02: Download complete
$ docker history ubuntu:16.04
IMAGE CREATED CREATED BY SIZE
c5f1cf30c96b 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
<missing> 2 weeks ago /bin/sh -c sed -i 's/^#s*(deb.*universe)$/ 1.895 kB
<missing> 2 weeks ago /bin/sh -c rm -rf /var/lib/apt/lists/* 0 B
<missing> 2 weeks ago /bin/sh -c set -xe && echo '#!/bin/sh' > /u 701 B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:ffc85cfdb5e66a5b4f 120.8 MB
A comparer avec le Dockerfile : http://bit.ly/1WDZmHm
Comment ça marche ?
Layered FS
Comment ça marche ?
Build cache
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y curl
ADD foo /
CMD ["/bin/bash"]
3 layers, en cache
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y curl
ADD foo /
ADD bar /
CMD ["/bin/bash"]
Réutilisation des 2 premiers layers
Création de 2 nouveaux layers
Pour ADD et COPY :
→ Checksum du fichier
Comment ça marche ?
Build cache - Attention !
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y curl
CMD ["/bin/bash"]
3 layers, en cache
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y curl nginx
CMD ["/bin/bash"]
Réutilisation du layer “apt-get
update”
→ apt cache pas à jour !
Comment ça marche ?
Networking
Plugin par défaut : bridge → Interface docker0
● Communication avec les autres containers du même host
● Links entre les containers
Discovery :
→ Entrée dans le /etc/hosts
→ Variables d’environnement
→ Serveur DNS interne au Docker Daemon
$ docker run -d --name db training/postgres
$ docker run -d -P --name web --link db:db training/webapp python app.py
Comment ça marche ?
Networking - Multi-hosts
Comment faire communiquer des
containers sur des hosts différents ?
The Docker Way : network plugin overlay
$ docker network create 
--driver overlay multi-host-net
$ docker run -itd 
--net=multi-host-net busybox
● Encapsulation du trafic
● backend k/v : Consul, etcd, Zookeeper
The Not-Docker (i.e CoreOS/Kubernetes)
Way : flanneld
● Un subnet par host
● Une IP par container/pod → pas de
problème de ports
● Encapsulation par défaut, intégration
GCP et AWS
● k/v backend : etcd
Comment ça marche ?
Volumes
→ Seul le container dbstore doit être persisté !
Comment gérer les données à l’intérieur d’un container ?
$ docker run -P --name web -v /data/images:/var/www/mon_app/images mon_app
$ docker run -P --name web -v /conf/app.conf:/var/www/mon_app/app.conf mon_app
L’option --volumes-from permet de gérer les données comme un container :
$ docker create -v /dbdata --name dbstore postgres /bin/true
$ docker run -d --volumes-from dbstore --name db1 postgres
$ docker run --rm --volumes-from dbstore 
-v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
Comment ça marche ?
Volumes - Multi-hosts
Comment faire pour que la donnée suive le container (i.e haute disponibilité) ?
Docker Plugins !
● Le volume n’est pas forcément stocké en local sur le host.
● Il existe des plugins pour :
○ AWS EBS
○ Ceph
○ GlusterFS
○ NFS
○ NetApp
○ iSCSI
○ …
Le plugin Flocker (https://github.com/ClusterHQ/flocker) regroupe un certain nombre de backends.
Les nouvelles collaborations
Les nouvelles collaborations
Build / Ship / Run
DEV OPS
Ephemeral
Envs
Les nouvelles collaborations
Docker, pivot du DevOps…
Dev (apps team) Ops (infra team)
gère et opère ce qu’il y a dans le
container
build le container
ne se préoccupe pas de la
plateforme sur laquelle run le
container
fournit la plateforme hébergeant
les containers on-demand
gère et opère les plateformes
hébergeant les containers
gère la sécurité de la plateforme
contre l’intrusion
fournit des dépôts d’images
durcies et prêtes à l’emploi
gère la scalabilité et la multi-
tenancy de la plateforme
Cloud Service What we get… What we do…
IaaS
Infrastructure resources (compute / storage / network)
VMs marketplace
VM / network / storage provisionning
CaaS
Platform dedicated to container run
Container marketplace
Environment provisionning
Container deployment (OS / middleware / app)
PaaS
Vertical stacks dedicated to programmation languages
Vertical stack / middleware marketplace
Environment provisionning
Application deployment
SaaS End-user services Use of services
Les nouvelles collaborations
IaaS, CaaS, PaaS, SaaS…
Hardware / VM
Linux Kernel
Container
OS
Libs
Middle
wares
conf.
Apps
conf.conf.
Container
OS
Libs
Middle
wares
conf.
Apps
conf.conf.
Container Runtime
Hardware
Hypervisor
VM
OS
Libs
Middle
wares
conf.
Apps
Kernel
HDW
conf.conf.
VM
OS
Libs
Middle
wares
conf.
Apps
Kernel
HDW
conf.conf.
IaaS
PaaS
SaaS
CaaS
PaaS
Les nouvelles collaborations
DevOps… meet the market…
Ecosystème
Ecosystème
Le bestiaire Docker
Docker Engine
expose l’API de gestion du
container
s’appuie sur containerd et runC
depuis Docker 1.11
runC runC runC
Docker Engine
warden/garden
des alternatives existent :
● Rocket chez CoreOS
● Garden chez CloudFoundry
portée par la Linux Foundation
Ecosystème
Le bestiaire Docker
Docker Compose
décrit le provisionning d’un service
composé de multiples containers
gère les dépendances entre
containers
Docker Engine
gestion limitée à un seul host
préserve les données des volumes
à la création des containers
limite l’update de la stack aux
seuls containers modifiés
permet d’isoler de multiples envs.
sur un même hôte
Ecosystème
Le bestiaire Docker
Docker Machine
décrit le provisionning de multiples
hôtes Docker
architecturé autours de plugins
gère les principaux services IaaS
et virtualisation (~25)
utilisé au sein de Docker Toolbox
gère le déploiement de clusters
Docker Swarm
Ecosystème
Les dépôts
Docker Hub
dépôt public d’images Docker
images officielles
images de confiance (Notary)
Mécanismes de vote
Mécanismes de build continu
Audit de sécurité (Nautilus)
4 registries comparées (Rancher) :
http://goo.gl/eNomg4
Ecosystème
L’autodiscovery
la configuration du container
varie selon :
● l’env. (ex. : dev / prod)
● l’hôte (ex. : port, ip)
● la version (ex. : URI)
● le nb. d’instances (ex. : ASG)
● les autres containers (ex. : DB)
injection de configuration au run :
● docker -e myVAR=’myValue’
● docker compose
configuration dynamique :
● stockage distribué
● résilient (au partitionnement
réseau)
● API CRUD
● healthcheck
● accès DNS
Ecosystème
Les composants réseaux
Smart load balancers
HAproxy : No hot reload, rechargement de
configurations via adapter consul
Traefik : support multi backends natif ( etcd,
consul, zookeeper, swarm… )
Advanced HTTP features SSL self
managed, HTTP/2
Docker Engine
Pilotage via API REST
Gestion avancée du trafic graceful
shutdown, retry request et coupe circuit
Ecosystème
L’orchestration
Gestion d’une population
(nombreuse) de containers :
● placement sur un hôte (dispo
de ressources, affinité)
● élasticité
● fail-over (perte de l’hôte)
● fail-over (perte d’un container)
● dépendances (service multi-
containers)
● exposition réseau du
service
Fleet
Ecosystème
L’orchestration
Ecosystème
Les solutions PaaS/CaaS
refactoring des solutions de PaaS
historiques
émergence de pure players CaaS
extension de solutions de clouds
publics pour gérer les containers
Ecosystème
Rancher
Ecosystème
Deis
Démo
découverte de Kubernetes
Demo Kubernetes
L’architecture
Questions & réponses
Workshop #4 - Docker, des tours dans le petit bassin…
Références
Slide decks :
Arnaud Mazin et Adrien Blind (http://fr.slideshare.net/adrienblind/docker-redistributing-devops-cards-on-the-way-to-paas)
Arnaud Mazin et Edouard Devouge - Orchestrator Feature Comparison (http://blog.octo.com/docker-en-production-la-bataille-sanglante-des-
orchestrateurs-de-conteneurs/)
Docker Survey 2016 (https://www.docker.com/survey-2016)
Crédits graphiques :
Google Images…
http://techfree.com.br/2015/04/criacao-automatizada-de-imagens-docker-github-e-docker-hub/
http://blog.xebia.com/security-is-maturing-in-the-docker-ecosystem/
bestiaire Docker : Laurel (https://twitter.com/laurelcomics et https://bloglaurel.com/)
Oxalide © 2015 – Documents confidentiels
Ou contactez directement :
Maxime KURKDJIAN – Directeur associé
Tel : +33 1 75 77 16 58 / mku
Sébastien LUCAS – Directeur associé
Tel : +33 1 75 77 16 59 / slu@oxalide.com
Siège social & NOC :
25 Boulevard de Strasbourg – 75010 Paris
Tel : +33 1 75 77 16 66
e-mail : commercial@oxalide.com
Oxalide © 2015 – Documents confidentiels

Contenu connexe

Tendances

Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
adri1s
 
Intro docker
Intro dockerIntro docker
Intro docker
Fedir RYKHTIK
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
Nicolas Hennion
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Jérôme Petazzoni
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
JEAN-GUILLAUME DUJARDIN
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
ALTER WAY
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Cédric Leblond
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
Jérôme Petazzoni
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
Nicolas Muller
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
Colin LEVERGER
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
Zenika
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
Membré Guillaume
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
Luis Lopez
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
SmartnSkilled
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
Romain Chalumeau
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Alexis Ducastel
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Fabien Arcellier
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Ludovic Piot
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
Christophe Furmaniak
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
Adrien Blind
 

Tendances (20)

Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec DockerSupport formation vidéo : Construire et administrer vos conteneurs avec Docker
Support formation vidéo : Construire et administrer vos conteneurs avec Docker
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 

En vedette

ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?
Oxalide
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
Oxalide
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
Jean-Baptiste Claramonte
 
Docker infiniband
Docker infinibandDocker infiniband
Docker infiniband
Syoyo Fujita
 
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
Publicis Sapient Engineering
 
[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd
NAVER D2
 
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in ActionAmazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
Remotty
 
RancherOS Introduction
RancherOS IntroductionRancherOS Introduction
RancherOS Introduction
Remotty
 
Mesos on coreOS
Mesos on coreOSMesos on coreOS
Mesos on coreOS
충섭 김
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
NAVER D2
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
ALTIC Altic
 
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Publicis Sapient Engineering
 

En vedette (12)

ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Docker infiniband
Docker infinibandDocker infiniband
Docker infiniband
 
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
XebiCon'16 : Xebia Labs : Les outils de déploiement sont morts avec les Conta...
 
[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd
 
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in ActionAmazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
 
RancherOS Introduction
RancherOS IntroductionRancherOS Introduction
RancherOS Introduction
 
Mesos on coreOS
Mesos on coreOSMesos on coreOS
Mesos on coreOS
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
 

Similaire à Oxalide Workshop #4 - Docker, des tours dans le petit bassin

Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?
Julien Maitrehenry
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
AbdellahELMAMOUN
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printemps
Julien Maitrehenry
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
Olivier Eeckhoutte
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
jean pasqualini
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
Julien Wittouck
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
amine17157
 
Alphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et AdministrationAlphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à docker
Boubker ABERWAG
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
AZUG FR
 
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdfoptimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
Pascal Ponzoni
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
Bilal Baltagi
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
Johan Moreau
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOS
gcatt
 
Be zend docker
Be zend dockerBe zend docker
Be zend docker
Kevin Verschaeve
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
Jaouad Assabbour
 
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
Paris Open Source Summit
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
Paris Container Day
 
Introduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP RennesIntroduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP Rennes
Yann Nave
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
Stephane Manciot
 

Similaire à Oxalide Workshop #4 - Docker, des tours dans le petit bassin (20)

Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printemps
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
A la découverte de docker
A la découverte de dockerA la découverte de docker
A la découverte de docker
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
Alphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et AdministrationAlphorm.com Formation Docker (1/2) : Installation et Administration
Alphorm.com Formation Docker (1/2) : Installation et Administration
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à docker
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdfoptimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
optimadata.nl-Comment exécuter Postgres sur Docker partie 1.pdf
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Présentation CoreOS
Présentation CoreOSPrésentation CoreOS
Présentation CoreOS
 
Be zend docker
Be zend dockerBe zend docker
Be zend docker
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Introduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP RennesIntroduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP Rennes
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 

Plus de Oxalide

Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!
Oxalide
 
Workshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide AcademyWorkshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide Academy
Oxalide
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
Oxalide
 
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Oxalide
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
Oxalide
 
Docker compose
Docker composeDocker compose
Docker compose
Oxalide
 
Paris hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audienceParis hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audience
Oxalide
 
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
Oxalide
 
La performance de vos applications Drupal
La performance de vos applications DrupalLa performance de vos applications Drupal
La performance de vos applications Drupal
Oxalide
 
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Oxalide
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupal
Oxalide
 
Cloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutionsCloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutions
Oxalide
 
Comprendre pour choisir son hébergement
Comprendre pour choisir son hébergementComprendre pour choisir son hébergement
Comprendre pour choisir son hébergement
Oxalide
 
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Oxalide
 
Performance barcampfinal
Performance barcampfinalPerformance barcampfinal
Performance barcampfinal
Oxalide
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009
Oxalide
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009
Oxalide
 
Clusif cloud-2010-datacenter
Clusif cloud-2010-datacenterClusif cloud-2010-datacenter
Clusif cloud-2010-datacenter
Oxalide
 
Clusif cloud-2010-securite
Clusif cloud-2010-securiteClusif cloud-2010-securite
Clusif cloud-2010-securite
Oxalide
 
Monitoring Des Applications Php, Salon Des Solutions Linux Open Source
Monitoring Des Applications Php, Salon Des Solutions Linux Open SourceMonitoring Des Applications Php, Salon Des Solutions Linux Open Source
Monitoring Des Applications Php, Salon Des Solutions Linux Open Source
Oxalide
 

Plus de Oxalide (20)

Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!
 
Workshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide AcademyWorkshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide Academy
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Docker compose
Docker composeDocker compose
Docker compose
 
Paris hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audienceParis hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audience
 
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
 
La performance de vos applications Drupal
La performance de vos applications DrupalLa performance de vos applications Drupal
La performance de vos applications Drupal
 
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupal
 
Cloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutionsCloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutions
 
Comprendre pour choisir son hébergement
Comprendre pour choisir son hébergementComprendre pour choisir son hébergement
Comprendre pour choisir son hébergement
 
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
 
Performance barcampfinal
Performance barcampfinalPerformance barcampfinal
Performance barcampfinal
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009
 
Clusif cloud-2010-datacenter
Clusif cloud-2010-datacenterClusif cloud-2010-datacenter
Clusif cloud-2010-datacenter
 
Clusif cloud-2010-securite
Clusif cloud-2010-securiteClusif cloud-2010-securite
Clusif cloud-2010-securite
 
Monitoring Des Applications Php, Salon Des Solutions Linux Open Source
Monitoring Des Applications Php, Salon Des Solutions Linux Open SourceMonitoring Des Applications Php, Salon Des Solutions Linux Open Source
Monitoring Des Applications Php, Salon Des Solutions Linux Open Source
 

Oxalide Workshop #4 - Docker, des tours dans le petit bassin

  • 1. Workshop #4 Docker, des tours dans le petit bassin… Le 24-mai-2016 – Théo Chamley, Julien Follenfant & Ludovic Piot
  • 3. Workshop #4 - Docker, des tours dans le petit bassin… Les événements Oxalide… • Objectif : présentation d’une thématique métier ou technique • Tout public : 80 à 100 personnes • Déroulé : 1 soir par trimestre de 18h à 21h • Introduction de la thématique par un partenaire • Tour de table avec des clients et non clients • Echange convivial autour d’un apéritif dînatoire • Objectif : présentation d’une technologie • Réservé aux clients : public technique avec laptop – 30 personnes • Déroulé : 1 matinée par trimestre de 9h à 13h • Présentation de la technologie • Tuto pour la configuration en ligne de commande • Objectif : présentation d’un outil • Réservé aux clients : 30 personnes • Déroulé : 1 soir par trimestre de 18h à 21h • Démonstration des fonctionnalités de l’outil • Echange convivial autour de pizzas Apérotech Workshop Pizza’n’Tools
  • 4. Workshop #4 - Docker, des tours dans le petit bassin… Les speakers… Julien Follenfant Customer Team 01 @ Oxalide Théo Chamley Conseil / Archi / DevOps @ Oxalide @MrTrustor Ludovic Piot Conseil / Archi / DevOps @ Oxalide @lpiot
  • 5. Présentation de Docker Hands-on #1 : mon premier container Comment ça marche ? Les nouvelles collaborations Ecosystème Démo : découverte de Kubernetes Questions & réponses ? 1 3 2 4 5 6 7
  • 10. Présentation de Docker Qu’est-ce que Docker ? le container Linux Docker enveloppe logique isolant… un ou plusieurs processus… en exécution décrit le contenu du container décrit l’interface entre le container et son hôte gère le cycle de vie du container : build / package / deploy / run / kill
  • 11. Présentation de Docker Principales qualités de Docker ? PO rtable DI sposable LI ve SO cial
  • 12. Présentation de Docker POrtable Disclaimer ! On est dans le chapitre POrtable, mais je ne vais pas parler de Docker sur Ms Windows Server
  • 13. Présentation de Docker POrtable Mise en œuvre facile partage peu de choses avec l’ hôte, mis à part le kernel s’appuie sur les fonctionnalités natives du kernel Linux produit stand-alone écrit en Go. peu d’adhérence avec les autres containers : incompatibilités limitées overhead quasi-inexistant peu de configuration pour être opérationnel Hardware Hardware / VM Hypervisor Linux Kernel VM OS Libs Middlewa res conf. Apps Kernel HDW conf.conf. Container OS Libs Middlewa res conf. Apps conf.conf. VM OS Libs Middlewa res conf. Apps Kernel HDW conf.conf. Container OS Libs Middlewa res conf. Apps conf.conf. Virtualization Isolation Container Runtime architecture microservices
  • 15. Présentation de Docker DIsposable Cattle vs. Pet build du container décrit dans Dockerfile déploiement par docker pull Docker est une technologie de packaging et déploiement Infra as Code Immutable Infrastructure : build & replace vs. upgrade
  • 16. Présentation de Docker DIsposable… oui mais… Par nature, un container éteint perd ses données. Persister les données est un sujet : ● utiliser un mécanisme applicatif (ELK) ● utiliser un stockage tiers (base de données, object storage) ● monter des volumes du host dans les containers Docker L’application embarquée dans le container doit être “distribuée” par nature (twelve- factor app) : ● tolérance à la panne (load-balancing) ● pas de session stickyness ● compatible blue/green La plateforme Docker doit être résiliente
  • 18. Présentation de Docker LIve Git style Images versionnées API à la git : ● diff ● commit ● tag ● history Images incrémentales multi-layered filesystem Image Build Run start / stop restartCommit
  • 19. Présentation de Docker SOcial Github style dépôts d’images Docker registries Dépôt public et communautaire Docker Hub Votes pour les images Images officielles / trusted Outil de build continu Outil de diagnostic continu Docker Security Scanning
  • 21. Prérequis Docker toolbox Download & install for Windows or Mac OS https://www.docker.com/products/docker-toolbox Check de l’installation Et votre premier docker run :-)
  • 22. Premier build de container Dockerfile jfo@lab ~/oxatest $ vim Dockerfile FROM debian MAINTAINER jfollenfant <jfo@oxalide.com> ADD ./hello.php / RUN apt-get update RUN apt-get -y install php5-cli CMD php /hello.php && echo $ENV jfo@lab ~/oxatest $ vim hello.php <?php echo “hello from Oxaliden”; ?> jfo@lab ~/oxatest $ docker build -t hello-oxa . [...] building image…. jfo@lab ~/oxatest $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-oxa latest 7c3877476e31 About a minute 198 MB Sources Dockerfile + hello world en PHP Build d’une image ready to run. Déroulement des commandes du hands on disponible sur : http://tinyurl.com/j2yp857
  • 23. Pour aller plus loin Elasticsearch cluster dockerized $ docker run -d --name es-01 -p 9201:9200 -d elasticsearch:1.7.5 elasticsearch -Des.node.name=”es-01” $ docker run -d --name es-02 -p 9202:9200 -d elasticsearch:1.7.5 elasticsearch -Des.node.name=”es-02” $ docker run -d --name es-03 -p 9203:9200 -d elasticsearch:1.7.5 elasticsearch -Des.node.name=”es-03”
  • 24. Use it, break it, fix it, trash it, change it. Elasticsearch cluster dockerized Elasticsearch autodiscovery entre les 3 containers $ docker exec -it es-01 plugin install lmenezes/elasticsearch-kopf/v1.6.1 Accès depuis un navigateur : http://192.168.99.100:9201/_plugin/kopf Execution de commandes à l’intérieur d’un container en état RUNNING
  • 26. Comment ça marche ? Namespaces & cgroups A namespace wraps a global system resource in an abstraction that makes it appear to the processes within the namespace that they have their own isolated instance of the global resource. Namespaces cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for, and isolates the resource usage (CPU, memory, disk I/O, network, etc.) of a collection of processes. Cgroups
  • 27. Comment ça marche ? Layered FS - Poupées russes ● Toutes les écritures sur le layer Container (R/W) ● Mutualisation des datas R/O entre les containers ● Copy-on-Write ● Réutilisation des layers avec le mot clé “FROM” dans les Dockerfiles
  • 28. Comment ça marche ? Layered FS
  • 29. Comment ça marche ? Layered FS - Exemple $ docker pull ubuntu:16.04 16.04: Pulling from library/ubuntu 6d28225f8d96: Downloading [=========================> ] 30.96 MB/48.35 MB 166102ec41af: Download complete d09bfba2bd6a: Download complete c80dad39a6c0: Download complete a3ed95caeb02: Download complete $ docker history ubuntu:16.04 IMAGE CREATED CREATED BY SIZE c5f1cf30c96b 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 2 weeks ago /bin/sh -c sed -i 's/^#s*(deb.*universe)$/ 1.895 kB <missing> 2 weeks ago /bin/sh -c rm -rf /var/lib/apt/lists/* 0 B <missing> 2 weeks ago /bin/sh -c set -xe && echo '#!/bin/sh' > /u 701 B <missing> 2 weeks ago /bin/sh -c #(nop) ADD file:ffc85cfdb5e66a5b4f 120.8 MB A comparer avec le Dockerfile : http://bit.ly/1WDZmHm
  • 30. Comment ça marche ? Layered FS
  • 31. Comment ça marche ? Build cache FROM ubuntu:16.04 RUN apt-get update && apt-get install -y curl ADD foo / CMD ["/bin/bash"] 3 layers, en cache FROM ubuntu:16.04 RUN apt-get update && apt-get install -y curl ADD foo / ADD bar / CMD ["/bin/bash"] Réutilisation des 2 premiers layers Création de 2 nouveaux layers Pour ADD et COPY : → Checksum du fichier
  • 32. Comment ça marche ? Build cache - Attention ! FROM ubuntu:16.04 RUN apt-get update RUN apt-get install -y curl CMD ["/bin/bash"] 3 layers, en cache FROM ubuntu:16.04 RUN apt-get update RUN apt-get install -y curl nginx CMD ["/bin/bash"] Réutilisation du layer “apt-get update” → apt cache pas à jour !
  • 33. Comment ça marche ? Networking Plugin par défaut : bridge → Interface docker0 ● Communication avec les autres containers du même host ● Links entre les containers Discovery : → Entrée dans le /etc/hosts → Variables d’environnement → Serveur DNS interne au Docker Daemon $ docker run -d --name db training/postgres $ docker run -d -P --name web --link db:db training/webapp python app.py
  • 34. Comment ça marche ? Networking - Multi-hosts Comment faire communiquer des containers sur des hosts différents ? The Docker Way : network plugin overlay $ docker network create --driver overlay multi-host-net $ docker run -itd --net=multi-host-net busybox ● Encapsulation du trafic ● backend k/v : Consul, etcd, Zookeeper The Not-Docker (i.e CoreOS/Kubernetes) Way : flanneld ● Un subnet par host ● Une IP par container/pod → pas de problème de ports ● Encapsulation par défaut, intégration GCP et AWS ● k/v backend : etcd
  • 35. Comment ça marche ? Volumes → Seul le container dbstore doit être persisté ! Comment gérer les données à l’intérieur d’un container ? $ docker run -P --name web -v /data/images:/var/www/mon_app/images mon_app $ docker run -P --name web -v /conf/app.conf:/var/www/mon_app/app.conf mon_app L’option --volumes-from permet de gérer les données comme un container : $ docker create -v /dbdata --name dbstore postgres /bin/true $ docker run -d --volumes-from dbstore --name db1 postgres $ docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
  • 36. Comment ça marche ? Volumes - Multi-hosts Comment faire pour que la donnée suive le container (i.e haute disponibilité) ? Docker Plugins ! ● Le volume n’est pas forcément stocké en local sur le host. ● Il existe des plugins pour : ○ AWS EBS ○ Ceph ○ GlusterFS ○ NFS ○ NetApp ○ iSCSI ○ … Le plugin Flocker (https://github.com/ClusterHQ/flocker) regroupe un certain nombre de backends.
  • 38. Les nouvelles collaborations Build / Ship / Run DEV OPS Ephemeral Envs
  • 39. Les nouvelles collaborations Docker, pivot du DevOps… Dev (apps team) Ops (infra team) gère et opère ce qu’il y a dans le container build le container ne se préoccupe pas de la plateforme sur laquelle run le container fournit la plateforme hébergeant les containers on-demand gère et opère les plateformes hébergeant les containers gère la sécurité de la plateforme contre l’intrusion fournit des dépôts d’images durcies et prêtes à l’emploi gère la scalabilité et la multi- tenancy de la plateforme
  • 40. Cloud Service What we get… What we do… IaaS Infrastructure resources (compute / storage / network) VMs marketplace VM / network / storage provisionning CaaS Platform dedicated to container run Container marketplace Environment provisionning Container deployment (OS / middleware / app) PaaS Vertical stacks dedicated to programmation languages Vertical stack / middleware marketplace Environment provisionning Application deployment SaaS End-user services Use of services Les nouvelles collaborations IaaS, CaaS, PaaS, SaaS… Hardware / VM Linux Kernel Container OS Libs Middle wares conf. Apps conf.conf. Container OS Libs Middle wares conf. Apps conf.conf. Container Runtime Hardware Hypervisor VM OS Libs Middle wares conf. Apps Kernel HDW conf.conf. VM OS Libs Middle wares conf. Apps Kernel HDW conf.conf. IaaS PaaS SaaS CaaS PaaS
  • 43. Ecosystème Le bestiaire Docker Docker Engine expose l’API de gestion du container s’appuie sur containerd et runC depuis Docker 1.11 runC runC runC Docker Engine warden/garden des alternatives existent : ● Rocket chez CoreOS ● Garden chez CloudFoundry portée par la Linux Foundation
  • 44. Ecosystème Le bestiaire Docker Docker Compose décrit le provisionning d’un service composé de multiples containers gère les dépendances entre containers Docker Engine gestion limitée à un seul host préserve les données des volumes à la création des containers limite l’update de la stack aux seuls containers modifiés permet d’isoler de multiples envs. sur un même hôte
  • 45. Ecosystème Le bestiaire Docker Docker Machine décrit le provisionning de multiples hôtes Docker architecturé autours de plugins gère les principaux services IaaS et virtualisation (~25) utilisé au sein de Docker Toolbox gère le déploiement de clusters Docker Swarm
  • 46. Ecosystème Les dépôts Docker Hub dépôt public d’images Docker images officielles images de confiance (Notary) Mécanismes de vote Mécanismes de build continu Audit de sécurité (Nautilus) 4 registries comparées (Rancher) : http://goo.gl/eNomg4
  • 47. Ecosystème L’autodiscovery la configuration du container varie selon : ● l’env. (ex. : dev / prod) ● l’hôte (ex. : port, ip) ● la version (ex. : URI) ● le nb. d’instances (ex. : ASG) ● les autres containers (ex. : DB) injection de configuration au run : ● docker -e myVAR=’myValue’ ● docker compose configuration dynamique : ● stockage distribué ● résilient (au partitionnement réseau) ● API CRUD ● healthcheck ● accès DNS
  • 48. Ecosystème Les composants réseaux Smart load balancers HAproxy : No hot reload, rechargement de configurations via adapter consul Traefik : support multi backends natif ( etcd, consul, zookeeper, swarm… ) Advanced HTTP features SSL self managed, HTTP/2 Docker Engine Pilotage via API REST Gestion avancée du trafic graceful shutdown, retry request et coupe circuit
  • 49. Ecosystème L’orchestration Gestion d’une population (nombreuse) de containers : ● placement sur un hôte (dispo de ressources, affinité) ● élasticité ● fail-over (perte de l’hôte) ● fail-over (perte d’un container) ● dépendances (service multi- containers) ● exposition réseau du service Fleet
  • 51. Ecosystème Les solutions PaaS/CaaS refactoring des solutions de PaaS historiques émergence de pure players CaaS extension de solutions de clouds publics pour gérer les containers
  • 57. Workshop #4 - Docker, des tours dans le petit bassin… Références Slide decks : Arnaud Mazin et Adrien Blind (http://fr.slideshare.net/adrienblind/docker-redistributing-devops-cards-on-the-way-to-paas) Arnaud Mazin et Edouard Devouge - Orchestrator Feature Comparison (http://blog.octo.com/docker-en-production-la-bataille-sanglante-des- orchestrateurs-de-conteneurs/) Docker Survey 2016 (https://www.docker.com/survey-2016) Crédits graphiques : Google Images… http://techfree.com.br/2015/04/criacao-automatizada-de-imagens-docker-github-e-docker-hub/ http://blog.xebia.com/security-is-maturing-in-the-docker-ecosystem/ bestiaire Docker : Laurel (https://twitter.com/laurelcomics et https://bloglaurel.com/)
  • 58. Oxalide © 2015 – Documents confidentiels Ou contactez directement : Maxime KURKDJIAN – Directeur associé Tel : +33 1 75 77 16 58 / mku Sébastien LUCAS – Directeur associé Tel : +33 1 75 77 16 59 / slu@oxalide.com Siège social & NOC : 25 Boulevard de Strasbourg – 75010 Paris Tel : +33 1 75 77 16 66 e-mail : commercial@oxalide.com Oxalide © 2015 – Documents confidentiels