Aller au contenu principal

Introduction à Argo CD


Table des matières

  1. Qu'est-ce que Argo CD ?
  2. Architecture
  3. Pourquoi utiliser Argo CD ?
  4. Argo CD vs autres outils
  5. Cas d'utilisation
  6. Exercices pratiques

1 - Qu'est-ce que Argo CD ?

Définition

Argo CD est un outil de déploiement continu (Continuous Delivery) déclaratif pour Kubernetes, suivant les principes GitOps.

Caractéristiques clés

CaractéristiqueDescription
DéclaratifL'état désiré est défini dans Git
GitOps natifGit comme source de vérité
Kubernetes natifConçu spécifiquement pour K8s
CNCF GraduatedProjet mature et largement adopté
UI WebInterface graphique puissante

Historique

  • 2018 : Créé par Intuit (TurboTax, QuickBooks)
  • 2020 : Rejoint la CNCF comme projet Incubating
  • 2022 : Devient CNCF Graduated (maturité maximale)
  • Aujourd'hui : +15,000 GitHub stars, utilisé par des milliers d'entreprises

🔝 Retour à la table des matières


2 - Architecture

Composants principaux

Rôle de chaque composant

ComposantRôle
API ServerExpose l'API REST, gère l'UI et le CLI
Repo ServerClone les repos Git, génère les manifests
Application ControllerCompare l'état désiré vs réel, réconcilie
RedisCache pour les sessions et données
DexAuthentification SSO (optionnel)

Flux de données

🔝 Retour à la table des matières


3 - Pourquoi utiliser Argo CD ?

Avantages

AvantageDescription
UI intuitiveVisualisation des applications et ressources
Rollback facileRetour à n'importe quelle version via Git
Multi-clusterGérer plusieurs clusters depuis un seul Argo CD
Self-healingRéconciliation automatique du drift
ExtensibleHooks, plugins, notifications

Comparaison avant/après

# Sans Argo CD
git pull
kubectl apply -f manifests/
# Qui a fait quoi ? Quand ? État actuel ?

# Avec Argo CD
git push # C'est tout !
# Argo CD synchronise automatiquement
# Historique complet dans l'UI

Métriques de succès

MétriqueAvantAvec Argo CD
Temps de déploiement15-30 min2-5 min
Rollback30+ min1 min (git revert)
VisibilitéFaibleComplète
AuditManuelAutomatique

🔝 Retour à la table des matières


4 - Argo CD vs autres outils

Argo CD vs Flux

CritèreArgo CDFlux
UI NativeExcellenteNon (Weave GitOps)
ArchitectureTout-en-unToolkit modulaire
Courbe d'apprentissageFacileMoyenne
Multi-clusterCentraliséDistribué
Image AutomationVia extensionNatif
CNCF StatusGraduatedGraduated

Argo CD vs Jenkins/GitLab CI

CritèreArgo CDCI/CD traditionnel
ModèlePull (GitOps)Push
CredentialsInternes au clusterExposés dans CI
Self-healingOuiNon
SpécialisationK8s uniquementGénéraliste

Quand choisir Argo CD ?

  • Kubernetes en production
  • Besoin d'une UI pour les équipes
  • Gestion multi-cluster
  • Équipe débutante en GitOps

🔝 Retour à la table des matières


5 - Cas d'utilisation

Entreprises utilisant Argo CD

EntrepriseUsage
IntuitCréateur, 2500+ microservices
IBMOpenShift GitOps basé sur Argo CD
Red HatOpenShift GitOps
AdobeMulti-cloud deployments
TeslaInfrastructure Kubernetes

Scénarios typiques

🔝 Retour à la table des matières


6 - Exercices pratiques

Quiz

Q1. Quel est le modèle de déploiement d'Argo CD ?

Réponse

Pull model : Argo CD tire les changements depuis Git et les applique au cluster, contrairement au push model où le CI pousse vers le cluster.

Q2. Quel composant Argo CD compare l'état désiré et l'état réel ?

Réponse

L'Application Controller compare constamment l'état désiré (dans Git) avec l'état réel (dans le cluster) et réconcilie si nécessaire.

Q3. Pourquoi Argo CD est-il plus sécurisé qu'un pipeline CI/CD classique ?

Réponse
  • Pas de credentials externes vers le cluster
  • L'agent est interne au cluster
  • Principe du moindre privilège
  • Surface d'attaque réduite

🔝 Retour à la table des matières


Points clés à retenir

  • Argo CD = GitOps pour Kubernetes
  • Architecture : API Server, Repo Server, Controller
  • Pull model : plus sécurisé que le push
  • UI native excellente pour la visibilité
  • CNCF Graduated : maturité et adoption

Chapitre suivant : Installation →