Déploiements canari et linéaire

Automatiser les déploiements sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Une mauvaise version, tous les utilisateurs

split

  • Changement de logique de paiement déployé à 100 % d'emblée
  • Un bug survient en charge réelle ; tous les paiements échouent
  • Un canari à 10 % l'aurait détecté en cinq minutes
  • Coût de l'absence de canari : perte d'argent réelle
Automatiser les déploiements sur AWS

Qu'est-ce qu'un déploiement canari

canary

  • Envoyer une petite part du trafic vers la nouvelle version d'abord
  • Surveiller les métriques pendant une période d'attente fixe
  • Si OK, basculer le reste d'un coup
  • Schéma courant : 10 % pendant 5 minutes, puis 100 %
Automatiser les déploiements sur AWS

Qu'est-ce qu'un déploiement linéaire

linear

  • Faire monter le trafic par incréments égaux
  • Attendre entre chaque palier
  • Exemple : 10 % chaque minute pendant 10 minutes
  • Plus fluide que canari ; plus long au total
Automatiser les déploiements sur AWS

Canari vs linéaire, côte à côte

  • Canari : une tranche, puis tout le reste
  • Linéaire : beaucoup de petits pas
  • Canari détecte vite ; linéaire monte progressivement
  • Les deux se mettent en pause si un rollback est déclenché

traffic

Automatiser les déploiements sur AWS

Configurations CodeDeploy pour Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes : 10 % pendant 5 min, puis 100 %
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute : +10 % par minute
  • CodeDeployDefault.LambdaAllAtOnce : tout le trafic immédiatement
  • ECS propose des configurations équivalentes préfixées ECS

label

Automatiser les déploiements sur AWS

Rollback automatique avec alarmes CloudWatch

  • Associer des alarmes CloudWatch au groupe de déploiement
  • Alarmes courantes : erreurs, durée, 5xx
  • Si l'alarme passe à l'état ALARM, le déploiement s'arrête
  • CodeDeploy effectue un rollback vers la version précédente

label

Automatiser les déploiements sur AWS

Choisir la bonne configuration

pick

  • Correctif de routine à faible risque → AllAtOnce
  • Changement de prod à haut risque → Canary
  • Besoin d'une montée en charge fluide → Linear
  • Toujours coupler avec des alarmes pour l'auto-rollback
Automatiser les déploiements sur AWS

Passons à la pratique !

Automatiser les déploiements sur AWS

Preparing Video For Download...