Canary- en lineaire deploys
Deployments automatiseren op AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Eén slechte release, elke gebruiker
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
Wat is een canary-deploy
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%
Wat is een lineaire deploy
Verkeer verplaatsen in
gelijke stappen
Wacht tussen elke stap
Voorbeeld:
10% elke 1 minuut
gedurende 10 minuten
Zachter dan canary; duurt wel langer
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
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
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
De juiste configuratie kiezen
Routinematige laag-risicopatch →
AllAtOnce
Hoog-risico productiechange →
Canary
Wil je een rustige, gelijkmatige ramp-up →
Linear
Combineer altijd met
alarms
voor auto-rollback
Laten we oefenen!
Deployments automatiseren op AWS
Preparing Video For Download...