CI/CD avec conteneurs
Cheatsheet · d'après le Refcard DZone no 277 (Shay Shmeltzer et Andrea Morena, Oracle, 2018) Module 3 · Techniques DockerLes trois continus
Intégration continue (CI) : fusionner le travail des développeurs dans une seule ligne de code, à cycle fréquent.
Livraison continue (CD) : produire un logiciel empaqueté à partir du code, à la même fréquence.
Déploiement continu : pousser ce paquet sur la plateforme d'exécution. Automatiser TOUTE la chaîne donne le maximum de bénéfices, mais la cible peut rester l'environnement QA, la production demeurant un geste manuel.
Bâtir et publier l'image
Le job de build vérifie que la définition est bonne et tague l'image pour gérer les versions.
Publier vers un registre public (Docker Hub) ou privé. Le Dockerfile vit dans Git : Infrastructure as Code.
Déclencher le job à chaque changement de la branche master, ou chaque nuit vers les instances QA.
Provisionner le cluster (Terraform)
Partir de l'exemple et décrire son infonuagique : locataire, usager, gabarits de machines.
Le cluster Kubernetes complet se lève en environ 5 minutes; le kubeconfig attend dans ./generated.
Déployer sur Kubernetes
LA commande clé : déployer l'application depuis son fichier de définition.
Surveiller nœuds, services et pods créés; describe pour inspecter en détail.
Pourquoi des conteneurs dans le pipeline ?
Légers et portables : usage optimal de l'infrastructure, déploiement beaucoup plus rapide qu'avec des machines virtuelles.
Environnements jetables en un clic : provisionner puis détruire un banc de test pour chaque exécution du pipeline.
Déploiement sans accroc : plus de conflits de pilotes ou de bibliothèques; moins de friction entre développement et exploitation; liberté totale d'outils; les erreurs manuelles disparaissent avec l'automatisation.
Le script de déploiement du pipeline
Dans le pipeline CI/CD, un premier job construit et publie l'image Docker; un second exécute ce script vers le cluster cible.
420-5A4-MT · Serveurs évolutifs · cliquer une commande la copie