GitOps avec GitHub et ArgoCD

Comprendre la démarche GitOps

  • Filière :

    DevOps & Infrastructure

  • Sous-filière :

    CI/CD

  • Référence

    IJ-GITO

  • Durée

    2 jours (14 h)

  • Prix par personne HT

    1 450 € HT

Description

Avec l’avènement des outils comme Kubernetes et Docker, on parvient maintenant à pouvoir décrire l’infrastructure avec du code. L’infrastructure devient déclarative. Il est donc désormais possible de pouvoir versionner l’infrastructure. De manière naturelle, l’idée est venue d’utiliser des gestionnaires de source tel que Git. De cela est né GitOps.

Cette formation permet de découvrir et prendre en main les concepts Git et GitOps. Ces concepts sont mis en pratique en se basant sur la combinaison GitHub, GitHub Actions et ArgoCD.

Objectifs pédagogiques

  • Comprendre les fondamentaux du GitOps et ses bénéfices
  • Maîtriser les outils clés du GitOps : Git, GitHub Actions, ArgoCD
  • Automatiser les processus de CI/CD
  • Déployer et gérer des applications avec ArgoCD et ses extensions
  • Assurer la sécurité et la conformité des déploiements GitOps

Public cible

  • Architectes
  • Développeurs Cloud
  • Ops

Pré-requis

  • Connaître les principes CI/CD
  • Avoir quelques bases sur Git
  • Bases en Docker (souhaitable)

Programme de la formation

Jour 1 : Fondamentaux du GitOps et Mise en place

Module 1 : Introduction au GitOps

  • Définition du GitOps
  • Différence entre GitOps et DevOps classique
  • Pourquoi Git devient la source de vérité ?
  • Présentation des outils : Git, CI/CD, Kubernetes, ArgoCD

Exercice 1 : Discussion et étude de cas

  • Analyse de workflows DevOps existants
  • Identifier où GitOps pourrait s’intégrer

Module 2 : Gestion de versions avec Git

  • Rappels des concepts Git (commit, push, merge, rebase)
  • Stratégies de branches (Git Flow, Trunk-based)
  • Résolution de conflits et Pull Requests

Exercice 2 : Manipulations avancées de Git

  • Création et gestion d’un dépôt Git
  • Simulation de conflits et résolutions
  • Utilisation des PRs pour validation

Module 3 : Automatisation avec GitHub Actions

  • Présentation des Workflows GitHub Actions
  • Définition d’un pipeline CI/CD de base
  • Intégration avec Docker et Kubernetes

Exercice 3 : Création d’un pipeline GitHub Actions

  • Déclenchement d’un workflow sur `push` et `pull_request`
  • Ajout d’un job de test et build Docker
  • Publication d’une image Docker sur Docker Hub

Module 4 : Déploiement avec ArgoCD

  • Déploiement d’ArgoCD sur Kubernetes
  • Gestion des applications avec ArgoCD
  • Configuration d’un repository Git pour GitOps

Exercice 4 : Déploiement d’une application via ArgoCD

  • Installation et configuration d’ArgoCD
  • Ajout d’une application dans ArgoCD
  • Synchronisation automatique des modifications Git

Jour 2 : Implémentation avancée avec ArgoCD et GitOps

Module 5 : Gestion avancée avec Helm et Kustomize

  • Présentation de Helm et des Charts
  • Structure et utilisation de Kustomize
  • Intégration de Helm et Kustomize dans ArgoCD
  • Stratégies de mise à jour et rollback

Exercice 5 : Déploiement avec Helm et Kustomize

  • Création d’un chart Helm pour une application
  • Ajout d’overlays Kustomize pour `dev`, `staging` et `prod`
  • Configuration de l’application avec ArgoCD
  • Mise à jour et rollback avec GitOps

Module 6 : ApplicationSet d’ArgoCD

  • Qu’est-ce qu’un ApplicationSet ?
  • Différence entre `Application` et `ApplicationSet`
  • Utilisation des générateurs Git, Cluster et Matrix

Exercice 6 : Automatisation des environnements avec ApplicationSet

  • Définition d’un `ApplicationSet` dans ArgoCD
  • Utilisation du `Git Generator` pour gérer plusieurs versions d’une application
  • Ajout et suppression automatique d’applications via Git

Module 7 : Déploiements progressifs avec Argo Rollouts

  • Présentation d’Argo Rollouts et ses fonctionnalités
  • Déploiements Canary, Blue-Green et Progressive Delivery
  • Intégration avec ArgoCD et GitOps

Exercice 7 : Déploiement Canary avec Argo Rollouts

  • Déploiement d’une application avec une stratégie Canary
  • Analyse des métriques et validation progressive
  • Gestion des rollback automatique en cas d’échec

Module 8 : Sécurité et bonnes pratiques GitOps

  • Gestion des accès et RBAC dans ArgoCD
  • Audit, monitoring et secret management
  • Validation des modifications avant application

Exercice 8 : Sécurisation d’un déploiement GitOps

  • Mise en place de RBAC sur ArgoCD
  • Validation des modifications avant application
  • Gestion des accès à un dépôt Git privé

Conclusion et exercices de synthèse

Qualité

Cette formation est accessible aux personnes en situation de handicap, nous contacter en cas de besoin d’informations complémentaires : formation@oxiane.com

Programme mis à jour le