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 datSprá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 implementaceDobrý 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. |
|
Zasílání zprávDistribuovaná 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í |
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro