Architektonické vzory aplikací na AWS
Nasazování aplikací na AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Tvůj instruktor
Proč záleží na správné architektuře
Architektura je soubor
kompromisů
, ne jediná správná odpověď
Každou volbu určují tři otázky:
Jak těsně jsou komponenty
provázány
?
Kde žije
stav
?
Je komunikace
synchronní, nebo asynchronní
?
Vzor přizpůsob
zátěži
, ne módním trendům
Páteční noční kaskáda
Pomalé platební API zablokuje celý checkout
Každá služba na něj synchronně čekala
Řešení je jiná architektura, ne rychlejší API
Proč architektura rozhoduje o nasazení
Zvolený vzor určuje, jak aplikace
škáluje a selhává
Těsně provázaný návrh se pod zátěží hroutí
Správný vzor činí nasazení předvídatelným
Stejný kód, velmi odlišné chování v produkci
Základní architektonické vzory
Monolitická
: jeden nasaditelný celek, jednoduchý start
Mikroslužby
: nezávislé služby nasazované odděleně
Událostmi řízená
: komponenty reagují na události, ne na přímá volání
Fanout
je podvzor: jedna událost osloví mnoho konzumentů
Stavová vs. bezstavová architektura
Bezstavová
: mezi požadavky se neuchovávají data klienta
Jakákoli instance zvládne jakýkoli požadavek
Stavová
: instance si pamatuje předchozí interakce
Bezstavovost umožňuje
horizontální škálování
Sdílený stav přesuň do
DynamoDB
nebo
ElastiCache
Těsné vs. volné provázání
Těsné provázání
: volající čeká na odpověď volaného
Jedna pomalá služba zablokuje celý řetězec
Volné provázání
: mezi službami stojí fronta
Amazon SQS
Producent pracuje dál, i když je konzument nedostupný
Synchronní vs. asynchronní komunikace
Synchronní
: volající čeká na výsledek
Použij, když volající potřebuje odpověď okamžitě
Asynchronní
: volající předá práci a vrátí se
Použij pro pomalou, nárazovou nebo nekritickou práci
Vzory odolnosti pro volání třetích stran
Opakování s exponenciálním zpožděním
: mezi pokusy se čeká stále déle
Jistič (circuit breaker)
: volání selhávající služby se dočasně zastaví
Fronta nedoručených zpráv (DLQ)
: zprávy, které selhávají opakovaně, se odloží
Kombinuj je; plošné opakování výpadky zhoršuje
Pojďme cvičit!
Nasazování aplikací na AWS
Preparing Video For Download...