RousselTMLEARNING

Article · Traefik: From Discovery to Expertise

Deployment strategies: blue/green - canary - rolling

This article is available in French.

1. Choisir une stratégie #

Risque, coût et vitesse de retour arrière.

Comparaison #

Stratégies de déploiement
Traefik porte le blue/green et le canary ; le rolling update relève de l'orchestrateur.
StratégiePrincipeRetour arrièreCoût
RollingLes instances sont remplacées progressivementNouveau déploiement de l'ancienne versionFaible
Blue/greenDeux environnements complets, bascule du traficInstantané (rebasculer)Double capacité pendant la bascule
CanaryUne petite part du trafic sur la nouvelle version, puis augmentationRemettre le poids à 0Faible ; demande de bonnes métriques
MirroringCopie du trafic vers la nouvelle version, réponses ignoréesSans impact utilisateurCharge en double

2. Mise en œuvre #

Services pondérés et bascule.

Canary avec le provider fichier #

http:
  services:
    app:
      weighted:
        services:
          - name: app-v1@docker
            weight: 90
          - name: app-v2@docker
            weight: 10
        sticky:
          cookie: { name: version }      # un utilisateur reste sur la même version
  routers:
    app:
      rule: Host(`app.exemple.fr`)
      service: app

Canary dans Kubernetes (TraefikService) #

apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata: { name: app-canary, namespace: app }
spec:
  weighted:
    services:
      - { name: app-v1, port: 80, weight: 90 }
      - { name: app-v2, port: 80, weight: 10 }

Blue/green et mirroring #

Pour le blue/green, on change le service ciblé par le routeur (app-blue → app-green) ; avec le provider fichier, la bascule est prise en compte à chaud. Le mirroring copie une part du trafic vers une version de test :

http:
  services:
    app-miroir:
      mirroring:
        service: app-v1@docker
        mirrors:
          - { name: app-v2@docker, percent: 20 }

3. Bonnes pratiques #

Déployer sans crainte.

Règles #

  • Définir à l'avance les critères de réussite (taux d'erreurs, latence p95) et les surveiller par service.
  • Rendre les migrations de base de données compatibles avec les deux versions (expand / contract).
  • Automatiser la progression et le retour arrière plutôt que modifier les poids à la main : c'est le rôle de Flagger (article suivant).
  • Health checks sur les services pour que Traefik retire automatiquement une instance défaillante.

📄 Stratégies de déploiement avec Traefik : blue/green, canary et rolling →

My progress

  • ⏱ Estimated time : ≈ 6 min

Sign in to track your progress and take notes. Sign in

💬 Ask a question

Recommended Articles

Traefik : les métriques avec Prometheus et OpenTelemetry

Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...

Gestion des certificats SSL/TLS avec Let's Encrypt et ACME

Apprenez à automatiser la génération et le renouvellement de vos certificats SSL/TLS avec Let's E...

Protocole ACME : serveur ACME, challenges http-01 et dns-01, automatisation TLS

Comprendre le protocole ACME : rôle du serveur ACME (Let's Encrypt, ZeroSSL, step-ca), challenges...

Traefik : les providers (Docker, Kubernetes, Nomad, Consul, fichiers, clés-valeurs)

Les providers alimentent la configuration dynamique de Traefik : découverte des services Docker, ...

Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques

Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...

Traefik : les logs (journaux applicatifs et access logs)

Configurer les deux journaux de Traefik : le journal de fonctionnement (niveaux, format) et les a...

Traefik : le tracing distribué avec OpenTelemetry

Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les app...

HAProxy dans Kubernetes : L'Ingress Controller Haute Performance

Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...

Kubernetes : Pods, ReplicaSets et Deployments (déployer et mettre à jour)

Maîtriser les workloads Kubernetes : anatomie d'un pod, ReplicaSet, Deployment, stratégies Rollin...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!