Les VM traditionelles
"I once heard that
hypervisors are the living
proof of operating system’s
incompetence”
Glauber Costa's talk at LinuxCon Europe 2012
docker run
1. Création d'un conteneur Linux
2. Mount d’un nouveau file system
3. Mount d’une couche read/write
4. Création d’une nouvelle interface réseau
5. Assignation d’une adresse IP
6. Execution d'un process à l'intérieur du conteneur
7. Redirection de l'output du process
Etape 1 : Build
Adopter Docker comme outil de développement
OBJECTIF
Utiliser Docker pour builder et/ou exécuter l’application
Exemples:
• maven dans un conteneur Docker
• tomcat dans un conteneur Docker
• mysql dans un conteneur Docker
AVANTAGES
Partager la configuration de l'environnement de dev
LIVRABLES
Dockerfiles et Compose files
Etape 2 : Ship
Docker pour distribuer votre application
OBJECTIF
Intégrer Docker dans le process d’Intégration Continue
Utiliser les images Docker comme livrables (à la place de war, jar, exe etc…)
AVANTAGES
Outil de packaging universel
Homogénéité des environnement (dev, recette et prod)
LIVRABLES
Installation et configuration d’un Registry Docker
Jobs d'IC qui :
• Génèrent des images Docker
• Utilisent Docker pour build et tests
Etape 3 : Run
Infrastructure immutable pour la PROD
OBJECTIF
Mettre en place une infrastructure de PROD immutable :
• Qui scale facilement
• Avec de la haute disponibilité
• Failover garanti
AVANTAGES
Simplicité des déploiement
Réductions des couts d'infrastructure
LIVRABLES
Provisioning de hosts Docker
Mise en place d'un outil de orchestration (Rancher, Swarm, Mesos, Kubernetes)
Mise en place d’outil de Monitoring de conteneurs