Strategie wdrożeń: wersje, aliasy i przenoszenie ruchu

Serverless Applications with AWS Lambda

Claudio Canales

Senior DevOps Engineer

Dlaczego strategia wdrożenia ma znaczenie

  • Szybkie wykrywanie błędów.
  • Ograniczenie zasięgu awarii.
  • Szybki powrót do działania.

Ryzykowne wdrożenie a bezpieczne wdrożenie

Serverless Applications with AWS Lambda

$LATEST a opublikowane wersje

$LATEST

  • Zmienia się przy każdej aktualizacji kodu.

Wersje

  • Niezmienne migawki.
  • Łatwe do przypięcia przy rollbackach i podziale ruchu.

$LATEST a opublikowane wersje

Serverless Applications with AWS Lambda

Wersja to niezmienna migawka

  • Traktuj wersje jak artefakty wydania.
  • Każda zawiera kod i konfigurację.
  • Po opublikowaniu nie ulega zmianie.
  • Zawsze możesz wrócić do sprawdzonego stanu.

Niezmienna migawka wersji

Serverless Applications with AWS Lambda

Aliasy jako stabilne wskaźniki

  • Stabilny wskaźnik.
  • Wywołuj alias zamiast konkretnej wersji.
  • Zmieniaj cel aliasu bez modyfikowania wywołujących.

Alias wskazujący na wersję

Serverless Applications with AWS Lambda

Aliasy dev i prod

  • Świetnie sprawdzają się w środowiskach.
  • Alias dev aktualizuj często.
  • Promocja do prod to po prostu przesunięcie aliasu.

Mapowanie aliasów dev i prod

Serverless Applications with AWS Lambda

Przenoszenie ruchu z ważonymi aliasami

  • Bezpieczne testowanie na produkcji.
  • Większość ruchu trafia do bieżącej wersji.
  • Mały procent kierowany jest do kandydata.

Koncepcja ważonego routingu aliasem

Serverless Applications with AWS Lambda

Canary krok 1: 90/10

  • 90% ruchu trafia do bieżącej wersji.
  • 10% testuje kandydata pod rzeczywistym obciążeniem.
  • Obserwuj błędy i opóźnienia.

Podział canary 90/10

Serverless Applications with AWS Lambda

Canary krok 2: 50/50

  • Jeśli 10% wygląda dobrze, zwiększ wagę.
  • 50% bieżąca, 50% kandydat.
  • Problemy szybko wychodzą na jaw przy 50/50.
  • Monitorowanie jest kluczowe.

Podział canary 50/50

Serverless Applications with AWS Lambda

Canary krok 3: 100% nowa wersja

  • Skieruj cały ruch do nowej wersji.
  • Stara wersja nadal istnieje.
  • Rollback jest prosty.

Canary 100% nowa wersja

Serverless Applications with AWS Lambda

Model blue/green

  • Blue = bieżąca, stabilna wersja.
  • Green = nowa wersja kandydująca.
  • Przełączanie przez przesunięcie aliasu.
  • Ważony routing czyni przełączenie stopniowym.

Przełączenie blue/green

Serverless Applications with AWS Lambda

Rollback = przesunięcie aliasu wstecz

  • Bez ponownego wdrażania.
  • Przesuń alias do ostatniej sprawdzonej wersji.
  • Odzyskanie sprawności w sekundy, nie godziny.
  • Niezmienne wersje i stabilne aliasy współpracują ze sobą.

Rollback przez przesunięcie aliasu

Serverless Applications with AWS Lambda

Monitorowanie podczas przenoszenia ruchu

  • Błędy i przekroczenia czasu.
  • Czas wykonania i opóźnienia końcowe.
  • Ograniczenia przepustowości, jeśli używasz limitów.
  • Szybko wstrzymaj lub wycofaj zmiany.

Metryki monitorowania wdrożenia

Serverless Applications with AWS Lambda

Częsty błąd: traktowanie $LATEST jak produkcji

  • Poleganie na $LATEST obniża przewidywalność.
  • Wersje i aliasy jasno pokazują, co jest uruchomione.
  • Rollbacki są bezpieczne.

Ostrzeżenie przed dryfem $LATEST

Serverless Applications with AWS Lambda

Ignore

Serverless Applications with AWS Lambda

Lista kontrolna bezpiecznego wdrożenia

  • Opublikuj wersję.
  • Stopniowo przenoś ruch za pomocą aliasu.
  • Monitoruj wyniki.
  • Miej rollback gotowy na każdym etapie.

Diagram listy kontrolnej bezpiecznego wdrożenia

Serverless Applications with AWS Lambda

Kluczowe wnioski

  • Wersje zapewniają przewidywalność.
  • Aliasy zapewniają stabilność.
  • Ważony routing zwiększa bezpieczeństwo.
  • Rollback = przesunięcie aliasu.

Kluczowe wnioski z wdrożenia

Serverless Applications with AWS Lambda

Czas na praktykę!

Serverless Applications with AWS Lambda

Preparing Video For Download...