Canary- och linjära utrullningar

Automatisera driftsättningar på AWS

Dunieski Otano

Amazon Web Services Solutions Architect

En dålig release, alla användare

delning

  • En ändring i betalningslogiken rullas ut direkt till 100% av trafiken
  • En bugg dyker upp under skarp belastning; alla utcheckningar misslyckas
  • En canary på 10% hade upptäckt felet på fem minuter
  • Priset för att hoppa över canary-testet: riktiga pengar går förlorade
Automatisera driftsättningar på AWS

Vad är en canary-utrullning

canary

  • Skicka en liten del av trafiken till den nya versionen först
  • Övervaka mätvärden under en fast väntetid
  • Om allt ser bra ut, flytta resten på en gång
  • Vanligt mönster: 10% i 5 minuter, sedan 100%
Automatisera driftsättningar på AWS

Vad är en linjär utrullning

linjär

  • Flytta trafik i lika stora steg
  • Vänta mellan varje steg
  • Exempel: 10% varje minut i 10 minuter
  • Mjukare än canary, men tar längre tid totalt
Automatisera driftsättningar på AWS

Canary jämfört med linjär, sida vid sida

  • Canary: en del, sedan allt
  • Linjär: många små steg
  • Canary upptäcker problem snabbt; linjär trappas upp gradvis
  • Båda pausar om en återställning utlöses

trafik

Automatisera driftsättningar på AWS

CodeDeploy-konfigurationer för Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% i 5 min, sedan 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10% per minut
  • CodeDeployDefault.LambdaAllAtOnce: all trafik direkt
  • ECS har motsvarande konfigurationer med ECS-prefix

etikett

Automatisera driftsättningar på AWS

Automatisk återställning med CloudWatch-larm

  • Koppla CloudWatch-larm till utrullningsgruppen
  • Vanliga larm: fel, varaktighet, 5xx
  • Om larmet går in i tillståndet ALARM stoppas utrullningen
  • CodeDeploy återställer till föregående version

etikett

Automatisera driftsättningar på AWS

Att välja rätt konfiguration

val

  • Rutinmässig lågriskpatch → AllAtOnce
  • Högriskändring i produktion → Canary
  • Vill ha en jämn, gradvis upptrappning → Linear
  • Kombinera alltid med larm för automatisk återställning
Automatisera driftsättningar på AWS

Nu kör vi en övning!

Automatisera driftsättningar på AWS

Preparing Video For Download...