Způsoby návrhu v cloudu

Tyto způsoby návrhu jsou užitečné při sestavování spolehlivých, škálovatelných a zabezpečených aplikací v cloudu.

Každý vzor popisuje problém, ke kterému se vztahuje, důležité informace týkající se použití tohoto vzoru a příklad s využitím Microsoft Azure. Většina vzorů obsahuje ukázky kódu nebo fragmenty kódu, které ukazují, jak model implementovat v Azure. Většina vzorů je však relevantní pro jakýkoli distribuovaný systém, ať už je hostovaný v Azure nebo na jiných cloudových platformách.

Výzvy spojené s vývojem pro cloud

Správa dat

Správa dat

Správa dat je klíčovým prvkem cloudových aplikací a ovlivňuje většinu atributů kvality. Data se obvykle hostují v různých umístěních a na více serverech kvůli výkonu, škálovatelnosti nebo dostupnosti. To může představovat různé výzvy. Je například nutné zajistit konzistenci dat a data se musí obvykle synchronizovat napříč různými umístěními.

Návrh a implementace

Návrh a implementace

Dobrý návrh zahrnuje konzistenci a soudržnost při návrhu a nasazení komponent, udržovatelnost pro zjednodušení správy a vývoje a opětovnou použitelnost umožňující použití komponent a subsystémů v jiných aplikacích a scénářích. Rozhodnutí přijatá ve fázi návrhu a implementace výrazně ovlivňují kvalitu a celkové náklady na vlastnictví aplikací a služeb hostovaných v cloudu.

Ikona Zasílání zpráv

Zasílání zpráv

Distribuovaná povaha cloudových aplikací vyžaduje infrastrukturu zasílání zpráv, která propojuje komponenty a služby, ideálně volně provázanou, aby se maximalizovala škálovatelnost. Asynchronní zasílání zpráv se běžně používá a přináší mnoho výhod, ale přináší také výzvy, jako je řazení zpráv, správa poškozených zpráv, idempotence a další.

Katalog vzorů

Vzor Souhrn Kategorie
Ambassador Vytvoří služby pomocných rutin, které odesílají síťové požadavky jménem aplikace nebo služby uživatele. Návrh a implementace
Efektivita provozu
Anti-Corruption Layer Implementuje adaptační vrstvu mezi moderní aplikací a systémem starší verze. Návrh a implementace
Efektivita provozu
Asynchronní požadavek-odpověď Oddělte back-endové zpracování od front-endového hostitele – back-endové zpracování back-endu musí být asynchronní, ale front-end pořád potřebuje jasnou odpověď. Zasílání zpráv
Backends for Frontends Vytvoří samostatné back-endové služby pro konkrétní front-endové aplikace nebo rozhraní. Návrh a implementace
Bulkhead Izoluje prvky aplikace do fondů, takže pokud jeden selže, ostatní budou i nadále fungovat. Spolehlivost
Cache-Aside Na vyžádání načte data z úložiště dat do mezipaměti. Správa dat
Efektivita výkonu
Choreografie Zajistěte si nezávislost na centrálním orchestrátoru a dejte každé službě na výběr, kdy a jak se zpracuje obchodní operace. Zasílání zpráv
Efektivita výkonu
Circuit Breaker Zpracovává chyby, jejichž oprava při připojení ke vzdálené službě nebo prostředku může trvat různě dlouho. Spolehlivost
Kontrola deklarace identity Rozdělte velkou zprávu na kontrolu deklarace identity a datovou část, abyste zabránili zahlcení sběrnice zpráv. Zasílání zpráv
Compensating Transaction Vrátit zpět akce provedené sérii kroků, které společně definují operaci s konečnou konzistencí. Spolehlivost
Competing Consumers Umožňuje několika souběžným příjemcům zpracovávat zprávy přijaté ve stejném kanálu pro zasílání zpráv. Zasílání zpráv
Compute Resource Consolidation Konsoliduje několik úloh nebo operací do jedné výpočetní jednotky. Návrh a implementace
CQRS Odděluje operace, které načítají data, od operací, které aktualizují data, a to s využitím samostatných rozhraní. Správa dat
Návrh a implementace
Efektivita výkonu
Stampy nasazení Nasaďte několik nezávislých kopií aplikačních komponent, včetně úložišť dat. Spolehlivost,
Efektivita výkonu
Konfigurace úlohy Edge Velké množství systémů a zařízení v dílně může ztěžovat konfiguraci úloh. Návrh a implementace
Event Sourcing Využívá úložiště s možností jenom přidávat pro záznam úplné posloupnosti událostí, které popisují akce s daty v doméně. Správa dat
Efektivita výkonu
External Configuration Store Přesouvá informace o konfiguraci z balíčku pro nasazení aplikace do centralizovaného umístění. Návrh a implementace
Efektivita provozu
Federated Identity Deleguje ověřování na externího zprostředkovatele identity. Zabezpečení
Gatekeeper Chrání aplikace a služby pomocí vyhrazené hostitelské instance, která slouží jako zprostředkovatel mezi klienty a aplikací nebo službou, ověřuje a upravuje požadavky a předává mezi nimi požadavky a data. Zabezpečení
Gateway Aggregation Používá bránu k agregaci několika jednotlivých požadavků do jednoho. Návrh a implementace
Efektivita provozu
Gateway Offloading Přesměrovává zpracování sdílených nebo specializovaných funkcí služby na proxy brány. Návrh a implementace
Efektivita provozu
Gateway Routing Směruje žádosti na několik služeb s využitím jednoho koncového bodu. Návrh a implementace
Efektivita provozu
Geody Nasaďte back-endové služby do sady geografických uzlů, z nichž každý může obsloužit jakoukoli žádost klienta v libovolné oblasti. Spolehlivost,
Efektivita provozu
Health Endpoint Monitoring Implementuje v aplikaci funkční kontroly, ke kterým mají externí nástroje v pravidelných intervalech přístup prostřednictvím zveřejněných koncových bodů. Spolehlivost,
Efektivita provozu
Index Table Vytváří indexy přes pole v úložištích dat, na která často odkazují dotazy. Správa dat
Efektivita výkonu
Leader Election Koordinuje akce prováděné kolekcí instancí spolupracujících úloh v distribuované aplikaci. Zvolí jednu instanci jako vedoucí a ta potom přijme zodpovědnost za správu ostatních instancí. Návrh a implementace
Spolehlivost
Materialized View Generuje předem vyplněná zobrazení nad daty v jednom nebo několika úložištích dat v případě, že data nejsou pro požadované operace dotazů ideálně naformátovaná. Správa dat
Efektivita provozu,
Efektivita výkonu
Pipes and Filters Rozdělí úlohu, která provádí komplexní zpracování, do řady samostatných prvků, které je možné využít znovu. Návrh a implementace
Zasílání zpráv
Priority Queue Určuje prioritu požadavků odeslaných službám, aby se požadavky s vyšší prioritou přijímaly a zpracovávaly rychleji než požadavky s nižší prioritou. Zasílání zpráv
Efektivita výkonu
Vydavatel/odběratel Umožňuje aplikaci oznamovat události několika příjemcům asynchronně, bez párování odesílatelů s příjemci. Zasílání zpráv
Queue-Based Load Leveling Použije frontu, která funguje jako vyrovnávací paměť mezi úlohou a službou, kterou vyvolá, pro ulehčení občasných velkých zátěží. Spolehlivost,
Zasílání zpráv
Odolnost
Efektivita výkonu
Vzor limitu rychlosti Model omezení, který vám pomůže vyhnout se chybám omezování souvisejícím s těmito limity nebo je minimalizovat, a pomůže vám přesněji předpovědět propustnost. Spolehlivost
Retry Umožňuje aplikaci řešit předpokládaná dočasná selhání při pokusu o připojení k prostředku služby nebo síťovému prostředku, a to transparentním opakováním operace, která původně selhala. Spolehlivost
Saga Správa konzistence dat napříč mikroslužbami ve scénářích distribuovaných transakcí Saga je posloupnost transakcí, která aktualizuje každou službu a publikuje zprávu nebo událost pro aktivaci dalšího kroku transakce. Zasílání zpráv
Scheduler Agent Supervisor Koordinuje sadu akcí napříč distribuovanou sadu služeb a dalších vzdálených prostředků. Zasílání zpráv
Spolehlivost
Sequential Convoy Zpracovává sadu souvisejících zpráv v definovaném pořadí, aniž by docházelo k blokování zpracování dalších skupin zpráv. Zasílání zpráv
Sharding Rozděluje úložiště dat do sady horizontálních oddílů. Správa dat
Efektivita výkonu
Sidecar Nasazuje komponenty aplikace do samostatného procesu nebo kontejneru s cílem poskytnout izolaci a zapouzdření. Návrh a implementace
Efektivita provozu
Static Content Hosting Nasazuje statický obsah do služby cloudového úložiště, která ho může doručit přímo klientovi. Návrh a implementace
Správa dat
Efektivita výkonu
Strangler Fig Přírůstkově migruje starší verzi systému, a to postupným nahrazením jednotlivých konkrétních funkcí novými aplikacemi a službami. Návrh a implementace
Efektivita provozu
Omezování Řídí spotřebu prostředků používaných instancí aplikace, jednotlivým tenantem nebo celou služby. Spolehlivost,
Efektivita výkonu
Valet Key Používá token nebo klíč, který klientům poskytuje omezený přímý přístup ke konkrétnímu prostředku nebo službě. Správa dat
Zabezpečení