Wdrożenia kanarkowe i liniowe

Automatyzacja wdrożeń na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Jedno nieudane wdrożenie, wszyscy użytkownicy

podział

  • Zmiana logiki płatności trafia od razu do 100% ruchu
  • Błąd ujawnia się pod realnym obciążeniem — każda transakcja się nie udaje
  • Wdrożenie kanarkowe na 10% ruchu wykryłoby to w pięć minut
  • Koszt pominięcia wdrożenia kanarkowego: realna strata pieniędzy
Automatyzacja wdrożeń na AWS

Czym jest wdrożenie kanarkowe?

wdrożenie kanarkowe

  • Najpierw wyślij niewielką część ruchu do nowej wersji
  • Obserwuj metryki przez określony czas oczekiwania
  • Jeśli wszystko jest w porządku, przekieruj resztę ruchu naraz
  • Typowy wzorzec: 10% przez 5 minut, potem 100%
Automatyzacja wdrożeń na AWS

Czym jest wdrożenie liniowe?

wdrożenie liniowe

  • Przekierowuj ruch w równych krokach
  • Czekaj między kolejnymi krokami
  • Przykład: 10% co minutę przez 10 minut
  • Płynniejsze niż kanarkowe, ale trwa dłużej
Automatyzacja wdrożeń na AWS

Kanarkowe kontra liniowe

  • Kanarkowe: jedna część, potem całość
  • Liniowe: wiele małych kroków
  • Kanarkowe szybko wykrywa problemy, liniowe zwiększa ruch stopniowo
  • Oba zatrzymują się, gdy nastąpi wycofanie wersji

ruch

Automatyzacja wdrożeń na AWS

Konfiguracje CodeDeploy dla Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% przez 5 min, potem 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10% na minutę
  • CodeDeployDefault.LambdaAllAtOnce: cały ruch od razu
  • ECS ma odpowiadające konfiguracje z prefiksem ECS

etykieta

Automatyzacja wdrożeń na AWS

Automatyczne wycofanie wersji z alarmami CloudWatch

  • Podepnij alarmy CloudWatch do grupy wdrożenia
  • Typowe alarmy: błędy, czas trwania, 5xx
  • Gdy alarm przejdzie w stan ALARM, wdrożenie się zatrzymuje
  • CodeDeploy wycofuje wersję do poprzedniej

etykieta

Automatyzacja wdrożeń na AWS

Wybór właściwej konfiguracji

wybór

  • Rutynowa poprawka niskiego ryzyka → AllAtOnce
  • Zmiana produkcyjna wysokiego ryzyka → Canary
  • Potrzebujesz płynnego, stopniowego wzrostu → Linear
  • Zawsze łącz z alarmami dla automatycznego wycofania wersji
Automatyzacja wdrożeń na AWS

Czas na praktykę!

Automatyzacja wdrożeń na AWS

Preparing Video For Download...