L’automatisation représente un enjeu majeur dans la digitalisation des entreprises. La méthodologie DevOps encourage dans le sens la mise en place de chaîne d’intégration continue et de déploiement continu afin de produire et livrer nos solutions IT beaucoup plus facilement, plus rapidement tout en restant agile fasse aux changements.
Néanmoins, un problème subsistait encore : Comment garantir la cohérence entre l’état désiré de notre système d’information et l’état live (réel) ? Car en effet, nous savons automatiser le déploiement des applications à l’aide de jenkins, mais qu’est ce qui nous garanti à un moment donné que ce qui est en prod reflète bien nos souhaits ? C’est à cet endroit que le GitOps entre en jeu.
Avec la culture GitOps, on a la possibilité de piloter notre SI (Infra + Software) grâce à du code (hébergé sur un git par exemple). Cette méthodologie prône la règle suivante : La source de l’information vraie c’est git et uniquement git. Ainsi il nous permet de mettre en place du Continuous Deployment pour nos applications et infrastructures Cloud Native.
Cette pratique n’est pas nouvelle en réalité, car vous aviez déjà des outils qui existaient tels que terraform + git + ci (Jenkins, gitlab-ci, github action) qui nous permettent d’implémenter ce genre de solution. Terraform est un très bel exemple d’implémentation du GitOps car il a cette capacité à auditer la plateforme avant d’appliquer les changements. Les pipelines traditionnels appliquent tout simplement les mise à jour sans pour autant déterminer ce qu’il y a déjà et n’évaluent pas l’impact de la mise à jour sur l’infra ; chose que le GitOps nous permet de faire.
Nous vivons dans le monde de l’IT une croissance exponentielle des micro-services, et pour les déployer à l’échelle on utilise des outils tels que Kubernetes. C’est pour cette raison que dans le cadre de cette formation nous apprendrons à faire du GitOps sur un cluster kubernetes. Et l’outil qui nous permettra de mettre cette culture en place est ArgoCD de ArgoProj.
Ce cours a été conçu pour ceux qui souhaitent passer à l’étape suivante dans leur utilisation de kubernetes. Ils apprendront comment assurer du continuous deployment intelligent avec ArgoCD.
Les méthodes pédagogiques ayants évoluées chez EAZYTraining, nos formations se dispensent à travers un projet fil rouge. En effet, pour rendre nos formations directement applicables en entreprise, nous allons partir d’un besoin client et vous montrer étape par étape comment répondre à ce dernier et proposer une solution complète.
La formation est divisée en 5 grandes parties :
- Présentation du GitOps et de ses principes
- Mise en place et utilisation d’ArgoCD
- Utilisation de Helm pour les déploiements de notre application micro-service
- Création de pipeline GitOps + DevOps avec Jenkins et ArgoCD pour proposer un workflow complet
- Monitoring de notre infrastructure GitOps avec prometheus et grafana.
Cette formation est destinée :
- Aux développeurs
- Aux administrateurs systèmes et réseaux
- Aux managers et chef de projet IT
- Aux ingénieurs DevOps
Prérequis :
- Avoir de bonnes bases sur Docker (https://eazytraining.fr/cours/introduction-a-docker/)
- Avoir de bonnes bases sur DevOps avec Jenkins Pipeline (https://eazytraining.fr/cours/jenkins-ci-cd-pour-devops/)
- Avoir de bonnes bases sur Kubernetes (https://eazytraining.fr/cours/kubernetes-les-bases-pour-devops/)
- Avoir les bases sur git (https://eazytraining.fr/cours/introduction-a-git/)
Durée de la formation : 4 Heures
NB : Cette formation est activement mise à jour
Formateur : Dirane TAFEN (Consultant et Instructeur dans le Cloud et le DevOps)
Détails
- 8 Sections
- 91 Lessons
- Durée de vie
- Module 00 : présentation de la formation7
- Module 01 : GitOps12
- 3.0problématique11 Minutes
- 3.1cas d’usage2 Minutes
- 3.2kubernetes avant le gitops5 Minutes
- 3.3reconciliateur3 Minutes
- 3.4lab-0 – énoncé – mise en place de l’infra de labs2 Minutes
- 3.5lab-0 – sources
- 3.6lab-0 – importation de la VM2 Minutes
- 3.7lab-0 – démarrage de la VM2 Minutes
- 3.8lab-0 – modification du clavier en azerty2 Minutes
- 3.9Lab 0 – Merci de suivre le setup officiel
- 3.10lab-0 – contenu de la VM3 Minutes
- 3.11Lab-0 – Labs officiels
- Module 02 : argocd présentation24
- 4.1argoproj2 Minutes
- 4.2argoprij workflow3 Minutes
- 4.3argocd features3 Minutes
- 4.4key concepts4 Minutes
- 4.5argocd simple view architecture3 Minutes
- 4.6argocd deep architecture4 Minutes
- 4.7projet et application argocd10 Minutes
- 4.8argocd app type2 Minutes
- 4.9lab-1 – énoncé – mise en place de argocd1 Minutes
- 4.10lab-1 – déploiement du cluster kubernetes2 Minutes
- 4.11lab-1 – vérification de l’accès à argocd2 Minutes
- 4.12lab-1 – découverte de l’interface d’argocd3 Minutes
- 4.13lab-2 – énoncé – création de l’application roar1 Minutes
- 4.14lab-2 – rajout du cluster minikube à argocd3 Minutes
- 4.15lab-2 – création de l’application5 Minutes
- 4.16lab-3 – énoncé – déploiement de l’application (sync)1 Minutes
- 4.17lab-3 – création du namespace par argocd3 Minutes
- 4.18lab-3 – déploiement de l’application4 Minutes
- 4.19lab-3 – vérification de l’accès à l’application roar3 Minutes
- 4.20lab-4 – énoncé – update et rollback1 Minutes
- 4.21lab-4 – rollout4 Minutes
- 4.22lab-4 – rollback3 Minutes
- 4.23lab-4 – analyse du résultat2 Minutes
- 4.24code utilisé
- Module 03 : argocd + helm11
- 5.1rappel sur helm partie 12 Minutes
- 5.2rappel sur helm partie 22 Minutes
- 5.3helm argocd workflow2 Minutes
- 5.4auto-sync1 Minutes
- 5.5lab-5 – énoncé – helm integration1 Minutes
- 5.6lab-5 – rajout du repo helm dans argo7 Minutes
- 5.7lab-5 – modification du projet argocd2 Minutes
- 5.8lab-5 – création de l’application argocd pour le déploiement des charts4 Minutes
- 5.9lab-5 – modification du values.yml3 Minutes
- 5.10lab-5 – vérification de l’auto-sync3 Minutes
- 5.11code utilisé
- Module 04 : gitops + devops20
- 6.1problématique2 Minutes
- 6.2rappel sur le devops3 Minutes
- 6.3jenkins1 Minutes
- 6.4kustomize3 Minutes
- 6.5workflow devops gitops1 Minutes
- 6.6lab-6 – énoncé – déploiement en environnement de staging1 Minutes
- 6.7lab-6 – présentation du Jenkinsfile8 Minutes
- 6.8lab-6 – présentation des Dockerfile2 Minutes
- 6.9lab-6 – présentation du code kustomoze3 Minutes
- 6.10lab-6 – création du projet argocd de déploiement en staging7 Minutes
- 6.11lab-6 – production des images par Jenkins7 Minutes
- 6.12lab-6 – erreur private registry partie 11 Minutes
- 6.13lab-6 – erreur private registry partie 24 Minutes
- 6.14lab-6 – accès à l’application en environnement staging4 Minutes
- 6.15lab-7 – énoncé – déploiement en production1 Minutes
- 6.16lab-7 – déploiement en production4 Minutes
- 6.17lab-8 – énoncé – validation du workflow complet1 Minutes
- 6.18lab-8 – simulation du workflow complet du client5 Minutes
- 6.19lab-8 – vérification du fonctionnement du pipeline complet devops + gitops4 Minutes
- 6.20code utilisé
- Module 05 : monitoring15
- 7.1rappel sur prometheus3 Minutes
- 7.2prometheus operator2 Minutes
- 7.3argocd metrics2 Minutes
- 7.4lab-9 – énoncé – installation de prometheus1 Minutes
- 7.5lab-9 – installation de prometheus4 Minutes
- 7.6lab-9 – accès à grafana et prometheus web ui8 Minutes
- 7.7lab-10 – énoncé – argocd service monitor3 Minutes
- 7.8lab-10 – création des servicemonitor3 Minutes
- 7.9lab-10 – fix du label release2 Minutes
- 7.10lab-10 – target discovery2 Minutes
- 7.11lab-10 – mise à jour du servicemonitor pour intégrer l’aspect namespace2 Minutes
- 7.12lab-10 – vérification de la remontée des métriques dans prometheus1 Minutes
- 7.13lab-11 – énoncé – argocd dashboard1 Minutes
- 7.14lab-11 – mise en place du dashboard grafana pour argocd3 Minutes
- 7.15links
- Module 06 : mini-projet1
- Module 07 : Conclusion1
2 Commentaires
Poster le commentaire
Vous devez vous connecter pour publier un commentaire.
Bonjour
La formation GitOps avec ArgoCD : Continuous Delivery on Kubernetes s’arrête au module 1 . Est-ce normal ou c’est uniquement pour moi ?
Merci
top cours