Wzorce architektury aplikacji na AWS
Wdrażanie aplikacji na AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Poznaj swojego instruktora
Dlaczego właściwa architektura ma znaczenie
Architektura to zestaw
kompromisów
, nie jedna właściwa odpowiedź
Każdy wybór kształtują trzy pytania:
Jak ściśle są
powiązane
komponenty?
Gdzie przechowywany jest
stan
?
Czy komunikacja jest
synchroniczna, czy asynchroniczna
?
Dopasuj wzorzec do
obciążenia
, a nie do trendów
Piątkowa kaskada awarii
Wolne API płatności blokowało cały proces zakupu
Każda usługa synchronicznie czekała na odpowiedź
Rozwiązaniem jest zmiana architektury, nie szybsze API
Jak architektura wpływa na wdrożenie
Wybrany wzorzec decyduje o tym, jak aplikacja
skaluje się i reaguje na awarie
Ściśle powiązany projekt załamuje się pod obciążeniem
Właściwy wzorzec sprawia, że wdrożenie staje się przewidywalne
Ten sam kod, zupełnie inne zachowanie na produkcji
Podstawowe wzorce architektury
Monolityczna
: jedna jednostka wdrożeniowa, prosta na start
Mikroserwisy
: niezależne usługi, wdrażane osobno
Sterowana zdarzeniami
: komponenty reagują na zdarzenia, nie na bezpośrednie wywołania
Fanout
to podwzorzec: jedno zdarzenie trafia do wielu odbiorców
Stanowa vs bezstanowa
Bezstanowa
: brak danych klienta między żądaniami
Każda instancja może obsłużyć dowolne żądanie
Stanowa
: instancja pamięta wcześniejsze interakcje
Bezstanowość umożliwia
skalowanie poziome
Wspólny stan przenieś do
DynamoDB
lub
ElastiCache
Ścisłe vs luźne powiązanie
Ścisłe powiązanie
: wywołujący czeka na odpowiedź wywoływanego
Jedna wolna usługa blokuje cały łańcuch
Luźne powiązanie
: między usługami stoi kolejka
Amazon SQS
Producent działa dalej, nawet gdy konsument jest niedostępny
Synchroniczna vs asynchroniczna
Synchroniczna
: wywołujący blokuje się i czeka na wynik
Stosuj, gdy odpowiedź jest potrzebna natychmiast
Asynchroniczna
: wywołujący przekazuje zadanie i wraca do pracy
Stosuj przy zadaniach wolnych, nieregularnych lub niepiln ych
Wzorce odporności przy wywołaniach zewnętrznych
Ponowna próba z wykładniczym wycofaniem
: coraz dłuższe przerwy między próbami
Wyłącznik
: tymczasowe wstrzymanie wywołań do niesprawnej usługi
Kolejka niedostarczonych wiadomości
: przechowuje wiadomości, których nie udało się przetworzyć
Łącz te wzorce; masowe ponowne próby nasilają awarie
Czas na praktykę!
Wdrażanie aplikacji na AWS
Preparing Video For Download...