SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
DÉVELOPPER

AVEC DOCKER
Applications basées sur
architecture en micro-services
CédricVilla -Twitter: @zestprod DevelopR6 - 2 Juin 2016
PRÉSENTATION
APPLICATION WEB
APPLICATION WEB
• Fonctionne partout (navigateur)
• Multi-support (bureau, mobile, tablette)
• Mature
DEVOPS
• Développement
• Exploitation
DEVOPS
DOCKER :

PREMIERE IMPRESSION
“Bof”
DOCKER :

PREMIERE IMPRESSION
• Encore un produit
“révolutionnaire”
• Sur papier : ne remplace pas les
technologies existantes

(LXC, OpenVZ, Puppet, etc.)
DOCKER :

SECONDE IMPRESSION
“Wow !”
DOCKER :

SECONDE IMPRESSION
• Extrêmement simple

à utiliser
• Technologie plus poussée
que celles testées

(copy-on-write)
• Communauté / abondance
de modules utilisables 

“clés en main”
APPLICATION

MONOLITIQUE
VS
ARCHITECTURE EN
MICRO-SERVICES
CHOIX D’UN LANGAGE
APPLICATION

MONOLITIQUE
VS
ARCHITECTURE EN
MICRO-SERVICES
APPLICATION
MONOLITHIQUE
• Choix d’un langage en commun
• “Polarise” l’équipe
• Investissement lourd
• Difficulté de “recruter”
• Limite les choix de bibliothèques
• Chaque module peut avoir son langage
• Le meilleur langage de programmation ?

Celui que vous connaissez le mieux.
• Bénéficier de l’experience de

tous les membres du projet.
• Disposer de toutes les bibliothèques
ARCHITECTURE EN
MICROSERVICES
MAINTENANCE
APPLICATION

MONOLITIQUE
VS
ARCHITECTURE EN
MICRO-SERVICES
APPLICATION
MONOLITHIQUE
• Pour un nouveau développeur
• Découragé par énorme historique
• Le nouveau développeur
• Ne connait l’historique détaillé que de sa
partie
• Peut connaitre l’environnement global dans les
grandes lignes
ARCHITECTURE EN
MICROSERVICES
COMMUNICATION
APPLICATION

MONOLITIQUE
VS
ARCHITECTURE EN
MICRO-SERVICES
APPLICATION
MONOLITHIQUE
• Beaucoup de travail pour coordonner tout le
monde
• Plus le projet grossit, plus c’est difficile
• Chaque module peut être développé
indépendamment par une petite équipe
(limiter les canaux de communications)
• Responsabilité sur le bon fonctionnement du
module
ARCHITECTURE EN
MICROSERVICES
MISE À L’ÉCHELLE
APPLICATION

MONOLITIQUE
VS
ARCHITECTURE EN
MICRO-SERVICES
APPLICATION
MONOLITHIQUE
• Mise à l’échelle sur une seule dimension
• Soit un plus gros serveur
• Soit plusieurs applications derrière un load balancer
• La performance de l’application est une chaine composés de
maillons
• Il est plus difficile de renforcer les maillons faibles dans une
application monolithique
• Mise à l’échelle indépendante sur

chaque module
• Possibilité de renforcer uniquement les
maillons faibles (bottlenecks)
• Processus simplifié et économique
ARCHITECTURE EN
MICROSERVICES
OUTILS DOCKER
OUTILS DOCKER
• docker
• docker-compose
• docker-machine
• docker-swarm
ORCHESTRATION
• Processus indépendant
• Communication entre les modules
• Optimisation des performances
• Gestion des ressources
ORCHESTRATION
• Outils
• Docker-compose
• IDE multi-projets
ORCHESTRATION
• Compatible AGILE
ORCHESTRATION
TEST EN BOITE NOIR
• Test global
• Simuler interactions
utilisateurs
(scénarios)
MODULARITÉ
JEU D’ASSEMBLAGE
CARACTÉRISTIQUES D’UN
CONTAINER
• Equivalent à une machine virtuelle
• Communique avec d’autre conteneurs
RECHERCHE DE
COMPOSANTS EXISTANTS
RECHERCHE DE
COMPOSANTS EXISTANTS
• Ne pas réinventer la roue
• Améliorer plutôt que
dupliquer
DISTRIBUTION
• Container autonome
• Environnement (OS, bibliothèques)
• Simplicité d’utilisation
• Un fichier de configuration
• Une interface pour les I/O
AVANTAGES
• Capitaliser sur développements
• Service à la communauté
• (et participation)
DIFFICULTÉ
• Difficile à faire la promotion d’un module
• Doit vraiment apporter une grande valeur
• On part de “0”

(sauf si on adapte un produit populaire)
CONSEILS
• KISS (keep it simple stupid)
• Convention over configuration
• Configuration peut-être une barrière
• Apporter de la valeur (simplicité, efficacité)
MISE EN PRODUCTION
INTERFACE AVEC MACHINE
DE PRODUCTION
• docker-machine
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
app-qualif generic Running tcp://XXX.XXX.XXX.XXX:2376
app-prod generic Running tcp://XXX.XXX.XXX.XXX:2376
default virtualbox Saved
dev virtualbox Stopped
$ docker-machine create 
--driver generic 
--generic-ip-address=203.0.113.81 
--generic-ssh-key ~/.ssh/id_rsa 
vm
DÉPLOIEMENT EN
PRODUCTION
• Environnement de production
• Fichier docker-compose.prod.yml
• Fichiers d’environnement 



(attention, contient des mots de passes et
données sensible, ne pas versionner)
PRINCIPES DE SÉCURITÉ
• Disponibilité
• Intégrité
• Confidentialité
PRINCIPES DE SÉCURITÉ
• Cacher les containers (firewall)
• N’autoriser que les communications nécessaires
• Frontend
• Communications privées entres containeurs
PRINCIPES DE SÉCURITÉ
• Garantir la disponibilité
• Surveillance
• Mécanisme d’auto-redémarrage
• restart: always dans docker-compose
MERCI !
(QUESTION ?)

Contenu connexe

Tendances

Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
Luis Lopez
 

Tendances (16)

Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et Gaudi
 
Docker - YaJUG
Docker  - YaJUGDocker  - YaJUG
Docker - YaJUG
 
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Gab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureGab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur Azure
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
Migrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaMigrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds Java
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
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, ...
 
CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par Celedev
 
DevMobCA: Continuous integration
DevMobCA: Continuous integrationDevMobCA: Continuous integration
DevMobCA: Continuous integration
 

Similaire à Microservices based application development with Docker (French)

JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
qsdqsd4
 

Similaire à Microservices based application development with Docker (French) (20)

Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
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
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et Docker
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 
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
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
 
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
 
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 ?
 
Hello xcode 4 v2
Hello xcode 4 v2Hello xcode 4 v2
Hello xcode 4 v2
 
Hello Xcode 4 v2
Hello Xcode 4 v2Hello Xcode 4 v2
Hello Xcode 4 v2
 
Paris Test conf - Kevin Roulleau - E2E tests on mobile native app, a successf...
Paris Test conf - Kevin Roulleau - E2E tests on mobile native app, a successf...Paris Test conf - Kevin Roulleau - E2E tests on mobile native app, a successf...
Paris Test conf - Kevin Roulleau - E2E tests on mobile native app, a successf...
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystème
 
Introduction DevOps & containarization des applications
Introduction DevOps & containarization des applicationsIntroduction DevOps & containarization des applications
Introduction DevOps & containarization des applications
 
Retour opérationnel sur la clean architecture
Retour opérationnel sur la clean architectureRetour opérationnel sur la clean architecture
Retour opérationnel sur la clean architecture
 
Pm2 pres
Pm2 presPm2 pres
Pm2 pres
 

Microservices based application development with Docker (French)