Canary- en lineaire deploys

Deployments automatiseren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Eén slechte release, elke gebruiker

split

  • Wijziging in betalingslogica gaat meteen naar 100% van het verkeer
  • Bug verschijnt onder live load; elke checkout faalt
  • Een 10% canary had dit in vijf minuten gepakt
  • Kosten van canary overslaan: echt geld weg
Deployments automatiseren op AWS

Wat is een canary-deploy

canary

  • Stuur een kleine slice verkeer eerst naar de nieuwe versie
  • Bekijk metrics voor een vaste wachttijd
  • Is het gezond, schuif de rest in één keer mee
  • Veelgebruikt patroon: 10% voor 5 minuten, dan 100%
Deployments automatiseren op AWS

Wat is een lineaire deploy

linear

  • Verkeer verplaatsen in gelijke stappen
  • Wacht tussen elke stap
  • Voorbeeld: 10% elke 1 minuut gedurende 10 minuten
  • Zachter dan canary; duurt wel langer
Deployments automatiseren op AWS

Canary vs. lineair, naast elkaar

  • Canary: één slice, dan alles
  • Lineair: veel kleine stappen
  • Canary vindt issues snel; lineair bouwt geleidelijk op
  • Beide pauzeren als een rollback wordt getriggerd

traffic

Deployments automatiseren op AWS

CodeDeploy-configuraties voor Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% voor 5 min, dan 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10% per minuut
  • CodeDeployDefault.LambdaAllAtOnce: direct al het verkeer
  • ECS heeft overeenkomende configuraties met ECS-prefix

label

Deployments automatiseren op AWS

Automatische rollback met CloudWatch-alarms

  • Koppel CloudWatch-alarms aan de deploymentgroep
  • Veelvoorkomende alarms: errors, duration, 5xx
  • Gaat het alarm naar de ALARM-status, dan stopt de deploy
  • CodeDeploy rolt terug naar de vorige versie

label

Deployments automatiseren op AWS

De juiste configuratie kiezen

pick

  • Routinematige laag-risicopatch → AllAtOnce
  • Hoog-risico productiechange → Canary
  • Wil je een rustige, gelijkmatige ramp-up → Linear
  • Combineer altijd met alarms voor auto-rollback
Deployments automatiseren op AWS

Laten we oefenen!

Deployments automatiseren op AWS

Preparing Video For Download...