← Retour aux articles
DevOpsExpert📖 35 min

CI/CD, GitOps, ArgoCD : Arrête de Déployer Manuellement en 2026

Guide technique complet pour déployer des applications scalables sur notre infrastructure cloud. Découvrez les pipelines CI/CD, le monitoring en temps réel, et les stratégies de scaling automatique.

📅 27 décembre 2024⏱️ 35 min
ci/cdkubernetesmonitoringscalingterraform
← Retour aux articles
DevOpsExpert📖 35 min

CI/CD, GitOps, ArgoCD : Arrête de Déployer Manuellement en 2026

📅 27 décembre 2024

Pipeline CI/CD avec GitOps

Notre pipeline CI/CD utilise ArgoCD pour le GitOps, GitHub Actions pour l'intégration continue, et Helm pour le packaging des applications. Chaque commit déclenche automatiquement les tests, la construction des images, et le déploiement.

Étapes du pipeline :

  1. Linting & Tests : ESLint, Jest, SonarQube
  2. Build : Multi-stage Docker builds
  3. Security Scan : Trivy, Snyk
  4. Deploy : ArgoCD avec blue-green deployment
  5. Monitoring : Prometheus alerts

Code

name: CI/CD Pipeline

on: push: branches: [ main, develop ] pull_request: branches: [ main ]

jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' cache: 'npm' - run: npm ci - run: npm run lint - run: npm run test:coverage - name: Upload coverage uses: codecov/codecov-action@v3

build: needs: test runs-on: ubuntu-latest steps: - name: Build and push Docker image uses: docker/build-push-action@v4 with: context: . push: true tags: dakar/app:${{ github.sha }}

Pipeline CI/CD avec GitOps et ArgoCD

Pipeline CI/CD avec GitOps et ArgoCD

Monitoring et Observabilité

Stack de monitoring complète avec Prometheus pour les métriques, Grafana pour les dashboards, Loki pour les logs, et Jaeger pour le tracing distribué. Alertes automatiques via PagerDuty.

Métriques clés :

  • Performance : Latence P95, throughput, error rate
  • Infrastructure : CPU, mémoire, disque, réseau
  • Business : Utilisation des features, conversion rates
  • Sécurité : Tentatives de connexion, anomalies

Code

groups: - name: dakar_alerts rules: - alert: HighErrorRate expr: rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m]) > 0.05 for: 5m labels: severity: critical annotations: summary: "High error rate detected" description: "Error rate is {{ $value }}%"

  • - alert: HighLatency
  • expr: histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])) > 2
  • for: 5m
  • labels:
  • severity: warning
  • annotations:
  • summary: "High latency detected"
  • description: "95th percentile latency is {{ $value }}s"
Stack de monitoring Prometheus, Grafana et ELK

Stack de monitoring Prometheus, Grafana et ELK

Scaling Automatique

Scaling horizontal automatique basé sur les métriques CPU, mémoire, et latence personnalisée. Utilisation de Kubernetes HPA (Horizontal Pod Autoscaler) et cluster autoscaling.

Stratégies de scaling :

  • Predictive : Basé sur les patterns historiques
  • Reactive : Basé sur les métriques temps réel
  • Scheduled : Scaling pendant les heures de pointe
  • Event-driven : Scaling basé sur les événements métier

Code

apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: dakar-backend-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: dakar-backend minReplicas: 3 maxReplicas: 50 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80 - type: Pods pods: metric: name: http_requests_per_second target: type: AverageValue averageValue: "100" behavior: scaleDown: stabilizationWindowSeconds: 300 policies: - type: Percent value: 10 periodSeconds: 60

Scaling automatique et élasticité cloud

Scaling automatique et élasticité cloud