Canary a lineární nasazení

Automatizace deploymentů na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Jedno špatné nasazení, všichni uživatelé

rozdělení

  • Změna platební logiky se nasadí okamžitě na 100 % provozu
  • Chyba se projeví až při reálném zatížení; každá platba selže
  • 10% canary by ji odhalilo během pěti minut
  • Cena za vynechání canary: ztracené peníze
Automatizace deploymentů na AWS

Co je canary nasazení

canary

  • Nejdřív poslat malou část provozu na novou verzi
  • Sledovat metriky po pevně stanovenou dobu
  • Pokud je vše v pořádku, přesunout zbytek najednou
  • Běžný vzorec: 10 % po dobu 5 minut, pak 100 %
Automatizace deploymentů na AWS

Co je lineární nasazení

lineární

  • Přesouvat provoz ve stejných krocích
  • Mezi jednotlivými kroky čekat
  • Příklad: 10 % každou minutu po dobu 10 minut
  • Plynulejší než canary, ale celkově trvá déle
Automatizace deploymentů na AWS

Canary vs. lineární nasazení – porovnání

  • Canary: jedna část, pak všechno
  • Lineární: mnoho malých kroků
  • Canary odhalí problémy rychle, lineární postupuje pozvolna
  • Obojí se zastaví, pokud se spustí rollback

provoz

Automatizace deploymentů na AWS

Konfigurace CodeDeploy pro Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10 % po dobu 5 min, pak 100 %
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10 % každou minutu
  • CodeDeployDefault.LambdaAllAtOnce: okamžitě celý provoz
  • ECS má odpovídající konfigurace s předponou ECS

popisek

Automatizace deploymentů na AWS

Automatický rollback s CloudWatch alarmy

  • Připojit CloudWatch alarmy ke skupině nasazení
  • Běžné alarmy: chyby, doba trvání, 5xx
  • Pokud alarm přejde do stavu ALARM, nasazení se zastaví
  • CodeDeploy provede rollback na předchozí verzi

popisek

Automatizace deploymentů na AWS

Výběr správné konfigurace

výběr

  • Rutinní oprava s nízkým rizikem → AllAtOnce
  • Rizikovější změna v produkci → Canary
  • Potřeba plynulého postupného nasazení → Linear
  • Vždy kombinovat s alarmy pro automatický rollback
Automatizace deploymentů na AWS

Pojďme cvičit!

Automatizace deploymentů na AWS

Preparing Video For Download...