SlideShare ist ein Scribd-Unternehmen logo
1 von 43
1 | Présentation Docker
26/01/16
CONSTRUIRE, DEPLOYER
EXÉCUTER VOS APPLICATIONS
PARTOUT!
2 | Présentation Docker
Agenda
• Qu'est ce que Docker ?
• Core Concepts
• Demo: création de notre 1ère image (Introduction Dockerfile)
• Philosophie / Fonctionnement
• Ecosystème
• Avantages / Inconvénients
• Demo avec du Tomcat
• Retour d’expérience 3SI
3 | Présentation Docker
Qu'est ce que Docker ?
4 | Présentation Docker
Qu'est ce que Docker ?
Le tableau infernal du déploiement
5 | Présentation Docker
Qu'est ce que Docker ?
Le tableau infernal du transport
6 | Présentation Docker
Qu'est ce que Docker ?
La solution pour le transport
7 | Présentation Docker
Qu'est ce que Docker ?
Le tableau devient limpide
8 | Présentation Docker
Qu'est ce que Docker ?
La solution pour le déploiement
9 | Présentation Docker
Qu'est ce que Docker ?
Le tableau devient limpide ici aussi
10 | Présentation Docker
Qu'est ce que Docker ?
Définition
“Build, Ship and Run
Any App, Anywhere”
11 | Présentation Docker
Qu'est ce que Docker ?
▪ Embarquer une application dans un container virtuel exécutable sur tout type
d’environnement
▪ Faciliter les déploiements d'une application, et la gestion du dimensionnement de
l'infrastructure sous-jacente
▪ Open source, écrit en Go, 1ère release sous licence Apache 2.0 le 13 mars 2013
▪ Société américaine, qui a été lancée par le Français Solomon Hykes et qui a levé plus de
$150 000 000. (+ de 900 contributeurs)
12 | Présentation Docker
Qu'est ce que Docker ?
Comparaison VM / Docker
App
Bin / Lib
OS invité
Hyperviseur
OS hôte
Serveur physique / hardware
Bin / Lib
OS invité
App
Bin / Lib
OS invité
App
App
Bin / Lib
OS hôte
Serveur physique / hardware
Bin / Lib Bin / Lib
AppApp
Virtualisation Containers
13 | Présentation Docker
Qu'est ce que Docker ?
Les limites
• Seulement sur Linux (Docker Machine pour Windows et
Mac OS X)
• Kernel 3.8+ (>= 3.10 recommandé)
• AUFS
• LXC
• Cgroups activés
• Linux namespaces activés
14 | Présentation Docker
Core Concepts - LXC
à Permet d'isoler l'exécution des applications dans des contexte
d'éxécution (VE).
“Chroot on steroids”
15 | Présentation Docker
Core Concepts - Namespace
Service fournit par le noyau Linux pour gérer l'isolation
- Mount namespace
• Gère l'isolation des points de montage du système de fichier vus par un groupe de process
-PID namespace
• Gère l'isolation des ID de process
-Le Net namespace
• Gère l'isolation du réseau.
-Le User namespace
• Gère l'isolation des utilisateurs et des groupes
…
16 | Présentation Docker
Core Concepts - Cgroups (Control Groups)
Service fourni par le noyau pour gérer la limitation de
ressource
à On peut voir cela comme un ulimit pour un groupe de process.
17 | Présentation Docker
Core Concepts - Docker Images & AUFS
• Docker Images
à Template permettant de produire d’autres Docker images ou Docker containers.
à Constituées de plusieurs layers qui vont permettre de mutualiser des données entre
plusieurs images
à Gain en terme de stockage disque, de rapidité de construction d’une nouvelle image
• AUFS (Another Union File System)
–Permet de fusionner entre elles deux hiérarchies de répertoires
–Intérêt pour Docker: pouvoir fusionner une image "base" partagée entre tous les
conteneurs avec des modifications qui ont eu lieu sur une instance de conteneur.
à Economie de disque car le système de fichiers d'un conteneur ne contient plus que le
différentiel par rapport à l'image "base”.
18 | Présentation Docker
Core Concepts - Containers
C’est “l’exécutable” obtenu à partir d’une Docker Image.
Vous pouvez démarrer, arrêter, détruire, un
container Docker
Finalement un “container” est un terme générique qui
désigne un ensemble de namespace
19 | Présentation Docker
Demo
– Création de notre 1ère image avec Dockerfile
– Introduction aux commandes de base
20 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Chats vs bétail
21 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Des chats
22 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Un chat c’est mignon
23 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Mais cela coûte cher
24 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Et grossir très (trop ?) vite
25 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Des vaches
26 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Les vaches c’est moins mignon…
27 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Mais c’est plus pratique
28 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
On peut les rentabiliser
29 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Mais il faut apprendre
à gérer le troupeau
30 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Métaphore pour illustrer:
1. On “tue” complètement un docker après un déploiement
31 | Présentation Docker
“ Un processus
par container ”
Philosophie / Fonctionnement
Montée en charge / déploiements
Métaphore pour illustrer:
•2. La capacité de montée de charge et créer des micro-services
-Augmenter taille des noeuds VS ajouter des (petits) noeuds
32 | Présentation Docker
Philosophie / Fonctionnement
Volumes
à Volumes pour persister les données
à Permettent de découpler le cycle de vie des données du cycle de vie du container
à Possibilité de partager un volume entre plusieurs containers ou avec le Host
à Dossier que n’utilise pas les layers
Ex:
$ docker run -d -P -v /webapp oeeckhoutte/myImage
Liste de toutes les commandes du cli:
https://docs.docker.com/engine/reference/commandline/run/
33 | Présentation Docker
Philosophie / Fonctionnement
Links
• Networking entre containers sur un même Docker Host
(docker/libnetwork permet de faire la même chose mais sur des Docker Hosts ≠)
Ex:
1er Container Mongo:
$ docker run --name mongoDB -d mongo:3.0
2ème Container lié à mongoDB:
$ docker run -t -i --link mongoDB:db busybox /bin/sh
34 | Présentation Docker
Philosophie / Fonctionnement
Montée en charge / déploiements
Docker + CA-RA =
– Déploiements de containers avec CA-RA
– Simplification des process de déploiements dans CA-RA
– Instantanéité (Image buildée et dans Docker registry)
Confidentiel
35 | Présentation Docker
Philosophie / Fonctionnement
Architecture pour SwissLife
36 | Présentation Docker
Ecosystème
Docker Compose
• Création et lancement de plusieurs containers
• Se base sur un docker-compose.yml
• $ docker-compose up -d ( | ps | stop | scale api = 3 )
37 | Présentation Docker
Ecosystème
Docker Hub
•Un très grand nombre d’images disponibles (> 200
000)
•Images Officielles
•Autres images avec système de notations
38 | Présentation Docker
Ecosystème
Clustering
•Idée pour prochain midi technique…
Exemple:
• Kubernetes (Google)
• Docker Swarm (Docker)
• Openshift Origin (Red Hat)
39 | Présentation Docker
Avantages / Inconvénients
+ Coté Études, Swisslife gagnerait de l’argent
§ Exemple des PDFs:
Besoin d’installer plusieurs librairies et besoin de compiler sur la machine cible. On
ne peut pas compiler sur les machines cibles et Ottawa est sur Windows…
§ Ex: MySL, besoin d’un reverse proxy pour accéder aux tarificateurs et booster les
perfs pour les fichiers statiques.
+ Fournir un poste de dév. aux nouveaux développeurs
à Pas besoin d’installer tous les outils et tout configurer
40 | Présentation Docker
Avantages / Inconvénients
+/- Les applicatifs ne sont plus liés aux repositories des OS. Attention à la validation
des paquets en terme de sécurité. Mais Tout ce qui est ajouté comme paquet
système est versionné.
+ Côté infrastructure, aujourd’hui 650 VM. à 300 VM en moins
à Economie au niveau des licences, de la RAM, des disques durs
+ Gain dans les plans de migration coté infra (Mise à jour d’OS avec 300 VMs en
moins)
+ Support 24h/24
+ Experts Docker disponibles
41 | Présentation Docker
Avantages / Inconvénients
+ Côté exploitation, à tout moment on est ISO production
à Plus besoin d’aller sur Google ou de demander à 5 personnes pour
trouver quel paquet installer (ex Fin du support de Tomcat 6).
à Gain en jour homme, pour trouver la bonne version
à Pas besoin de se demander comment mettre à jour Node en Re7
-Changer de mentalité.
§ Plus de Docker que de VM car on est sur du Micro service
-Bien réfléchir à l’organisation et le partage des responsabilités
-Prévoir une montée en compétences
42 | Présentation Docker
Demo avec du Tomcat et Docker Compose
43 | Présentation Docker
Retour XP 3SI
Suite à la MEP de Docker en 2014/ 2015:
+ Banaliser les machines
+ Amélioration de l’efficacité des équipes
§ Montées de version des composants facilitées
§ Changements des composants facilités
+ Livraisons facilités
+ Maintenir le niveau de service
+ Banalisation des MEP techniques
à Apporter Docker c’est 20% de technique et 80% d’organisationnel (qui fait quoi ? Qui est
responsable ?)

Weitere ähnliche Inhalte

Was ist angesagt?

What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerLuong Vo
 
Docker introduction
Docker introductionDocker introduction
Docker introductionPhuc Nguyen
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiquesdenier
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetesJulien Maitrehenry
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Herofazalraja
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
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
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for BeginnerShahzad Masud
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Simplilearn
 
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 AdministrationAlphorm
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 

Was ist angesagt? (20)

What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatique
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetes
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
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 ?
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
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
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 

Ähnlich wie Midi technique - présentation docker

Vulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers DockerVulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers DockerFlorian Bobin
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
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 bassinLudovic Piot
 
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 bassinOxalide
 
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptxAbdellahELMAMOUN
 
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 Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
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
 
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 DerueAZUG FR
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxAnisSalhi3
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Arthur Lutz
 
Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystèmeAymen EL Amri
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftArthur Lutz
 
A la découverte de docker, 2ème partie
A la découverte de docker, 2ème partieA la découverte de docker, 2ème partie
A la découverte de docker, 2ème partieSamuel Desseaux
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack dockerAlexis Ducastel
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 
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 DockerSmartnSkilled
 

Ähnlich wie Midi technique - présentation docker (20)

Vulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers DockerVulgarisation de la technologie de containers Docker
Vulgarisation de la technologie de containers Docker
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
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
 
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
 
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
 
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 Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
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, ...
 
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
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystème
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
DevOps 3 - Docker.pdf
DevOps 3 - Docker.pdfDevOps 3 - Docker.pdf
DevOps 3 - Docker.pdf
 
A la découverte de docker, 2ème partie
A la découverte de docker, 2ème partieA la découverte de docker, 2ème partie
A la découverte de docker, 2ème partie
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack docker
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs 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
 

Mehr von Olivier Eeckhoutte

Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier Eeckhoutte
 
self driving car nvidia whitepaper
self driving car nvidia whitepaperself driving car nvidia whitepaper
self driving car nvidia whitepaperOlivier Eeckhoutte
 
Midi technique - présentation d'ionic
Midi technique - présentation d'ionicMidi technique - présentation d'ionic
Midi technique - présentation d'ionicOlivier Eeckhoutte
 
Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Olivier Eeckhoutte
 
Scrum and XP from the trenches french
Scrum and XP from the trenches frenchScrum and XP from the trenches french
Scrum and XP from the trenches frenchOlivier Eeckhoutte
 

Mehr von Olivier Eeckhoutte (7)

Meetup Devops April 2023
Meetup Devops April 2023Meetup Devops April 2023
Meetup Devops April 2023
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2
 
self driving car nvidia whitepaper
self driving car nvidia whitepaperself driving car nvidia whitepaper
self driving car nvidia whitepaper
 
Midi technique - présentation d'ionic
Midi technique - présentation d'ionicMidi technique - présentation d'ionic
Midi technique - présentation d'ionic
 
Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)
 
Scrum and XP from the trenches french
Scrum and XP from the trenches frenchScrum and XP from the trenches french
Scrum and XP from the trenches french
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 

Midi technique - présentation docker

  • 1. 1 | Présentation Docker 26/01/16 CONSTRUIRE, DEPLOYER EXÉCUTER VOS APPLICATIONS PARTOUT!
  • 2. 2 | Présentation Docker Agenda • Qu'est ce que Docker ? • Core Concepts • Demo: création de notre 1ère image (Introduction Dockerfile) • Philosophie / Fonctionnement • Ecosystème • Avantages / Inconvénients • Demo avec du Tomcat • Retour d’expérience 3SI
  • 3. 3 | Présentation Docker Qu'est ce que Docker ?
  • 4. 4 | Présentation Docker Qu'est ce que Docker ? Le tableau infernal du déploiement
  • 5. 5 | Présentation Docker Qu'est ce que Docker ? Le tableau infernal du transport
  • 6. 6 | Présentation Docker Qu'est ce que Docker ? La solution pour le transport
  • 7. 7 | Présentation Docker Qu'est ce que Docker ? Le tableau devient limpide
  • 8. 8 | Présentation Docker Qu'est ce que Docker ? La solution pour le déploiement
  • 9. 9 | Présentation Docker Qu'est ce que Docker ? Le tableau devient limpide ici aussi
  • 10. 10 | Présentation Docker Qu'est ce que Docker ? Définition “Build, Ship and Run Any App, Anywhere”
  • 11. 11 | Présentation Docker Qu'est ce que Docker ? ▪ Embarquer une application dans un container virtuel exécutable sur tout type d’environnement ▪ Faciliter les déploiements d'une application, et la gestion du dimensionnement de l'infrastructure sous-jacente ▪ Open source, écrit en Go, 1ère release sous licence Apache 2.0 le 13 mars 2013 ▪ Société américaine, qui a été lancée par le Français Solomon Hykes et qui a levé plus de $150 000 000. (+ de 900 contributeurs)
  • 12. 12 | Présentation Docker Qu'est ce que Docker ? Comparaison VM / Docker App Bin / Lib OS invité Hyperviseur OS hôte Serveur physique / hardware Bin / Lib OS invité App Bin / Lib OS invité App App Bin / Lib OS hôte Serveur physique / hardware Bin / Lib Bin / Lib AppApp Virtualisation Containers
  • 13. 13 | Présentation Docker Qu'est ce que Docker ? Les limites • Seulement sur Linux (Docker Machine pour Windows et Mac OS X) • Kernel 3.8+ (>= 3.10 recommandé) • AUFS • LXC • Cgroups activés • Linux namespaces activés
  • 14. 14 | Présentation Docker Core Concepts - LXC à Permet d'isoler l'exécution des applications dans des contexte d'éxécution (VE). “Chroot on steroids”
  • 15. 15 | Présentation Docker Core Concepts - Namespace Service fournit par le noyau Linux pour gérer l'isolation - Mount namespace • Gère l'isolation des points de montage du système de fichier vus par un groupe de process -PID namespace • Gère l'isolation des ID de process -Le Net namespace • Gère l'isolation du réseau. -Le User namespace • Gère l'isolation des utilisateurs et des groupes …
  • 16. 16 | Présentation Docker Core Concepts - Cgroups (Control Groups) Service fourni par le noyau pour gérer la limitation de ressource à On peut voir cela comme un ulimit pour un groupe de process.
  • 17. 17 | Présentation Docker Core Concepts - Docker Images & AUFS • Docker Images à Template permettant de produire d’autres Docker images ou Docker containers. à Constituées de plusieurs layers qui vont permettre de mutualiser des données entre plusieurs images à Gain en terme de stockage disque, de rapidité de construction d’une nouvelle image • AUFS (Another Union File System) –Permet de fusionner entre elles deux hiérarchies de répertoires –Intérêt pour Docker: pouvoir fusionner une image "base" partagée entre tous les conteneurs avec des modifications qui ont eu lieu sur une instance de conteneur. à Economie de disque car le système de fichiers d'un conteneur ne contient plus que le différentiel par rapport à l'image "base”.
  • 18. 18 | Présentation Docker Core Concepts - Containers C’est “l’exécutable” obtenu à partir d’une Docker Image. Vous pouvez démarrer, arrêter, détruire, un container Docker Finalement un “container” est un terme générique qui désigne un ensemble de namespace
  • 19. 19 | Présentation Docker Demo – Création de notre 1ère image avec Dockerfile – Introduction aux commandes de base
  • 20. 20 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Chats vs bétail
  • 21. 21 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Des chats
  • 22. 22 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Un chat c’est mignon
  • 23. 23 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Mais cela coûte cher
  • 24. 24 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Et grossir très (trop ?) vite
  • 25. 25 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Des vaches
  • 26. 26 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Les vaches c’est moins mignon…
  • 27. 27 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Mais c’est plus pratique
  • 28. 28 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements On peut les rentabiliser
  • 29. 29 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Mais il faut apprendre à gérer le troupeau
  • 30. 30 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Métaphore pour illustrer: 1. On “tue” complètement un docker après un déploiement
  • 31. 31 | Présentation Docker “ Un processus par container ” Philosophie / Fonctionnement Montée en charge / déploiements Métaphore pour illustrer: •2. La capacité de montée de charge et créer des micro-services -Augmenter taille des noeuds VS ajouter des (petits) noeuds
  • 32. 32 | Présentation Docker Philosophie / Fonctionnement Volumes à Volumes pour persister les données à Permettent de découpler le cycle de vie des données du cycle de vie du container à Possibilité de partager un volume entre plusieurs containers ou avec le Host à Dossier que n’utilise pas les layers Ex: $ docker run -d -P -v /webapp oeeckhoutte/myImage Liste de toutes les commandes du cli: https://docs.docker.com/engine/reference/commandline/run/
  • 33. 33 | Présentation Docker Philosophie / Fonctionnement Links • Networking entre containers sur un même Docker Host (docker/libnetwork permet de faire la même chose mais sur des Docker Hosts ≠) Ex: 1er Container Mongo: $ docker run --name mongoDB -d mongo:3.0 2ème Container lié à mongoDB: $ docker run -t -i --link mongoDB:db busybox /bin/sh
  • 34. 34 | Présentation Docker Philosophie / Fonctionnement Montée en charge / déploiements Docker + CA-RA = – Déploiements de containers avec CA-RA – Simplification des process de déploiements dans CA-RA – Instantanéité (Image buildée et dans Docker registry) Confidentiel
  • 35. 35 | Présentation Docker Philosophie / Fonctionnement Architecture pour SwissLife
  • 36. 36 | Présentation Docker Ecosystème Docker Compose • Création et lancement de plusieurs containers • Se base sur un docker-compose.yml • $ docker-compose up -d ( | ps | stop | scale api = 3 )
  • 37. 37 | Présentation Docker Ecosystème Docker Hub •Un très grand nombre d’images disponibles (> 200 000) •Images Officielles •Autres images avec système de notations
  • 38. 38 | Présentation Docker Ecosystème Clustering •Idée pour prochain midi technique… Exemple: • Kubernetes (Google) • Docker Swarm (Docker) • Openshift Origin (Red Hat)
  • 39. 39 | Présentation Docker Avantages / Inconvénients + Coté Études, Swisslife gagnerait de l’argent § Exemple des PDFs: Besoin d’installer plusieurs librairies et besoin de compiler sur la machine cible. On ne peut pas compiler sur les machines cibles et Ottawa est sur Windows… § Ex: MySL, besoin d’un reverse proxy pour accéder aux tarificateurs et booster les perfs pour les fichiers statiques. + Fournir un poste de dév. aux nouveaux développeurs à Pas besoin d’installer tous les outils et tout configurer
  • 40. 40 | Présentation Docker Avantages / Inconvénients +/- Les applicatifs ne sont plus liés aux repositories des OS. Attention à la validation des paquets en terme de sécurité. Mais Tout ce qui est ajouté comme paquet système est versionné. + Côté infrastructure, aujourd’hui 650 VM. à 300 VM en moins à Economie au niveau des licences, de la RAM, des disques durs + Gain dans les plans de migration coté infra (Mise à jour d’OS avec 300 VMs en moins) + Support 24h/24 + Experts Docker disponibles
  • 41. 41 | Présentation Docker Avantages / Inconvénients + Côté exploitation, à tout moment on est ISO production à Plus besoin d’aller sur Google ou de demander à 5 personnes pour trouver quel paquet installer (ex Fin du support de Tomcat 6). à Gain en jour homme, pour trouver la bonne version à Pas besoin de se demander comment mettre à jour Node en Re7 -Changer de mentalité. § Plus de Docker que de VM car on est sur du Micro service -Bien réfléchir à l’organisation et le partage des responsabilités -Prévoir une montée en compétences
  • 42. 42 | Présentation Docker Demo avec du Tomcat et Docker Compose
  • 43. 43 | Présentation Docker Retour XP 3SI Suite à la MEP de Docker en 2014/ 2015: + Banaliser les machines + Amélioration de l’efficacité des équipes § Montées de version des composants facilitées § Changements des composants facilités + Livraisons facilités + Maintenir le niveau de service + Banalisation des MEP techniques à Apporter Docker c’est 20% de technique et 80% d’organisationnel (qui fait quoi ? Qui est responsable ?)