Způsoby návrhu v cloudu
Architekti navrhují úlohy kombinováním služeb platformy, funkcí a kódu pro splnění funkčních a nefunkčních požadavků v úlohách. Návrh úloh vyžaduje pochopení těchto požadavků na úlohy a následný výběr topologií a přístupů k řešení problémů, které představují omezení úlohy. Vzory návrhu cloudu, které řeší řadu běžných problémů.
Návrh systémů je úzce spojen s návrhovými vzory. Infrastruktura, kód a distribuované systémy jsou navržené podle kombinace vzorů návrhu. Tyto vzory návrhu jsou užitečné pro vytváření spolehlivých, zabezpečených, nákladově optimalizovaných, provozních a výkonných aplikací v cloudu.
Tyto vzory návrhu nejsou specifické pro žádnou technologii a jsou relevantní pro jakýkoli distribuovaný systém, ať už je hostovaný v Azure, jiných cloudových platformách a některé můžou dokonce rozšířit na místní nebo hybridní úlohy.
Vzory návrhu cloudu pomáhají procesu návrhu
Cloudové úlohy jsou náchylné k pádům distribuovaného computingu. Mezi příklady fallacií návrhu cloudu patří:
- Síť je spolehlivá.
- Latence je nula.
- Šířka pásma je nekonečná.
- Síť je zabezpečená.
- Topologie se nemění.
- Je tu jeden správce.
- Správa verzí součástí je jednoduchá.
- Implementace pozorovatelnosti může být zpožděná.
Vzory návrhu neodstraňuje pojmy, jako jsou tyto, ale můžou pomoct zvýšit povědomí, kompenzace a zmírnění jejich rizik. Každý model cloudu má své vlastní kompromisy. Potřebujete věnovat pozornost tomu, proč vybíráte určitý vzor, než jak ho implementovat.
Dobře navržená úloha zohledňuje, jak by se tyto vzory návrhu pro celé odvětví měly používat jako základní stavební bloky pro návrh pracovního zatížení. Každý pilíř Azure Well-Architected je reprezentován v těchto vzorech návrhu, často s vzorem návrhu, který představuje kompromisy s cíli jiných pilířů.
Katalog vzorů
Každý vzor v tomto katalogu popisuje problém, který model řeší, důležité informace o použití vzoru a příklad založený na Microsoft Azure. Některé vzory zahrnují ukázky kódu nebo fragmenty kódu, které ukazují, jak implementovat vzor v Azure.
Vzor | Shrnutí | Pilíře architektury Azure Well-Architected |
---|---|---|
Ambassador | Vytvoří služby pomocných rutin, které odesílají síťové požadavky jménem aplikace nebo služby uživatele. |
|
Anti-Corruption Layer | Implementuje adaptační vrstvu mezi moderní aplikací a systémem starší verze. |
|
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ěď. |
|
Backends for Frontends | Vytvořte samostatné back-endové služby, které budou používat konkrétní front-endové aplikace nebo rozhraní. |
|
Bulkhead | Izolujte prvky aplikace do fondů, aby v případě selhání jednoho prvku fungovaly i ostatní. |
|
Cache-Aside | Načtěte data na vyžádání do mezipaměti z úložiště dat. |
|
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. |
|
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. |
|
Kontrola deklarace identity | Rozdělte velkou zprávu na kontrolu deklarace identity a datovou část, abyste zabránili zahlcení sběrnice zpráv. |
|
Compensating Transaction | Vrátit zpět akce provedené sérii kroků, které společně definují operaci s konečnou konzistencí. |
|
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. |
|
Compute Resource Consolidation | Sloučení více úkolů nebo operací do jedné výpočetní jednotky. |
|
CQRS | Odděluje operace, které načítají data, od operací, které aktualizují data, a to s využitím samostatných rozhraní. |
|
Stampy nasazení | Nasaďte několik nezávislých kopií aplikačních komponent, včetně úložišť dat. |
|
Konfigurace úloh Edge | Centralizovaná konfigurace, která řeší výzvu při konfiguraci více systémů a zařízení v obchodě. | |
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ě. |
|
External Configuration Store | Přesouvá informace o konfiguraci z balíčku pro nasazení aplikace do centralizovaného umístění. |
|
Federated Identity | Deleguje ověřování na externího zprostředkovatele identity. |
|
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. |
|
Gateway Aggregation | Používá bránu k agregaci několika jednotlivých požadavků do jednoho. |
|
Gateway Offloading | Přesměrovává zpracování sdílených nebo specializovaných funkcí služby na proxy brány. |
|
Gateway Routing | Směruje žádosti na několik služeb s využitím jednoho koncového bodu. |
|
geode | 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. |
|
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ů. |
|
Index Table | Vytváří indexy přes pole v úložištích dat, na která často odkazují dotazy. |
|
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í. |
|
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á. |
|
Zasílání zpráv most | Vytvořte prostředníka, který umožní komunikaci mezi systémy zasílání zpráv, jež jsou jinak nekompatibilní kvůli protokolu nebo formátu. |
|
Pipes and Filters | Rozdělí úlohu, která provádí komplexní zpracování, do řady samostatných prvků, které je možné využít znovu. |
|
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. |
|
Vydavatel/odběratel | Umožňuje aplikaci oznamovat události několika příjemcům asynchronně, bez párování odesílatelů s příjemci. |
|
karantény | Před oprávněním k jejich využívání v úloze se ujistěte, že externí prostředky splňují úroveň kvality odsouhlasené týmem. |
|
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ěží. |
|
Model omezení rychlosti | Omezení vzorce, které vám pomůžou vyhnout se nebo minimalizovat chyby omezování související s těmito omezeními omezování a které vám pomůžou přesněji předpovídat propustnost. |
|
Opakovat | 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. |
|
Sága | Správa konzistence dat napříč mikroslužbami ve scénářích distribuovaných transakcí Saga je posloupnost transakcí, které aktualizují každou službu a publikují zprávu nebo událost pro aktivaci dalšího kroku transakce. |
|
Scheduler Agent Supervisor | Koordinuje sadu akcí napříč distribuovanou sadu služeb a dalších vzdálených prostředků. |
|
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. |
|
Sharding | Rozděluje úložiště dat do sady horizontálních oddílů. |
|
Sidecar | Nasazuje komponenty aplikace do samostatného procesu nebo kontejneru s cílem poskytnout izolaci a zapouzdření. |
|
Static Content Hosting | Nasazuje statický obsah do služby cloudového úložiště, která ho může doručit přímo klientovi. |
|
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. |
|
Omezování | Řídí spotřebu prostředků používaných instancí aplikace, jednotlivým tenantem nebo celou služby. |
|
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ě. |
|
Další krok
Prohlédněte si vzory návrhu z pohledu pilíře Azure Well-Architected, který se snaží optimalizovat.