Introduction à Argo CD
Table des matières
- Qu'est-ce que Argo CD ?
- Architecture
- Pourquoi utiliser Argo CD ?
- Argo CD vs autres outils
- Cas d'utilisation
- 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éristique | Description |
|---|---|
| Déclaratif | L'état désiré est défini dans Git |
| GitOps natif | Git comme source de vérité |
| Kubernetes natif | Conçu spécifiquement pour K8s |
| CNCF Graduated | Projet mature et largement adopté |
| UI Web | Interface 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
| Composant | Rôle |
|---|---|
| API Server | Expose l'API REST, gère l'UI et le CLI |
| Repo Server | Clone les repos Git, génère les manifests |
| Application Controller | Compare l'état désiré vs réel, réconcilie |
| Redis | Cache pour les sessions et données |
| Dex | Authentification SSO (optionnel) |
Flux de données
🔝 Retour à la table des matières
3 - Pourquoi utiliser Argo CD ?
Avantages
| Avantage | Description |
|---|---|
| UI intuitive | Visualisation des applications et ressources |
| Rollback facile | Retour à n'importe quelle version via Git |
| Multi-cluster | Gérer plusieurs clusters depuis un seul Argo CD |
| Self-healing | Réconciliation automatique du drift |
| Extensible | Hooks, 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étrique | Avant | Avec Argo CD |
|---|---|---|
| Temps de déploiement | 15-30 min | 2-5 min |
| Rollback | 30+ min | 1 min (git revert) |
| Visibilité | Faible | Complète |
| Audit | Manuel | Automatique |
🔝 Retour à la table des matières
4 - Argo CD vs autres outils
Argo CD vs Flux
| Critère | Argo CD | Flux |
|---|---|---|
| UI Native | Excellente | Non (Weave GitOps) |
| Architecture | Tout-en-un | Toolkit modulaire |
| Courbe d'apprentissage | Facile | Moyenne |
| Multi-cluster | Centralisé | Distribué |
| Image Automation | Via extension | Natif |
| CNCF Status | Graduated | Graduated |
Argo CD vs Jenkins/GitLab CI
| Critère | Argo CD | CI/CD traditionnel |
|---|---|---|
| Modèle | Pull (GitOps) | Push |
| Credentials | Internes au cluster | Exposés dans CI |
| Self-healing | Oui | Non |
| Spécialisation | K8s uniquement | Gé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
| Entreprise | Usage |
|---|---|
| Intuit | Créateur, 2500+ microservices |
| IBM | OpenShift GitOps basé sur Argo CD |
| Red Hat | OpenShift GitOps |
| Adobe | Multi-cloud deployments |
| Tesla | Infrastructure 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