Canary a lineární nasazení
Automatizace deploymentů na AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Jedno špatné nasazení, všichni uživatelé
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
Co je canary nasazení
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 %
Co je lineární nasazení
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
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
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
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
Výběr správné konfigurace
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
Pojďme cvičit!
Automatizace deploymentů na AWS
Preparing Video For Download...