Cours 0 - Intro - Pourquoi Jenkins et Kubernetes
Retour rapide sur la CI/CD
- CI : intégration continue
- CD : Livraison (delivery) et / ou Déploiement continus
Le principe est de construire une automatisation autour du développement logiciel pour pouvoir:
- Accompagner le développeur pour écrire du code fiable et maintenable.
- Assembler, documenter et tester des logiciels complexes.
- Être agile dans la livraison du logiciel
Ce principe de test systématique est comme nous l’avons vu dans l’intro au coeur du DevOps:
- déployer un logiciel jusqu’en production à chaque commit validé dans la branche master ?
- déployer automatiquement des parties d’infrastructure (as Code) dès que leur description change dans un commit dans master.
- Valider les opérations as code comme du logiciel avant de les rendre disponible pour application.
Vous avez dis DevOps ? (43e version)
Le DevOps est un mouvement de transformation de l’informatique: découpler le déploiement du logiciel des détails d’administration système pour pouvoir déployer tout le temps, et suivre un rythme de développement agile.
- Le critère exigent pour savoir si vous êtes dans une équipe qui respecte la philosophie DevOps est généralement de savoir si le(s) logiciel(s) sont “déployé en continu automatiquement”, ce qu’on appelle Continuous Deployment
Pourquoi Jenkins et Kubernetes
Ces deux technologies fonctionnent bien ensemble car Jenkins s’est adapté au monde Kubernetes avec ses plugins. Parenthèse : Jenkins X est complètement différent Jenkins en fait ! ne pas les confondre.
Notre parcours pour ce module
- préparer kubernetes (cert-manager & repository d’images privé)
- Tester une application flask (test unitaires et tests fonctionnels)
- Déployer notre application dans kubernetes dans différents environnements
- Simuler notre pipeline étape par étape sans Jenkins et anticiper les besoins
- Créer un pipeline as code Jenkins en reprenant les étapes précédentes
- Intégrer ce pipeline directement dans le dépôt avec un Jenkinsfile et un multibranch pipeline
- Tester notre CI/CD en ajoutant une fonctionnalité à notre application