Tervezési minták felhőkhöz
Az építészek platformszolgáltatások, funkciók és kód kombinálásával tervezik meg a számítási feladatokat, hogy teljesítsék a számítási feladatok funkcionális és nem funkcionális követelményeit. A számítási feladatok tervezéséhez ismernie kell ezeket a számítási feladatokat, majd topológiákat kell választania, és meg kell oldania a számítási feladat korlátai által támasztott kihívásokat. Felhőtervezési minták, amelyek számos gyakori kihívással foglalkoznak.
A rendszertervezés nagymértékben támaszkodik a tervezési mintákra. Az infrastruktúra, a kód és az elosztott rendszerek mind tervezési minták kombinációjára vannak tervezve. Ezek a tervezési minták hasznosak megbízható, biztonságos, költségoptimalizált, működési szempontból megfelelő és teljesítményű alkalmazások létrehozásához a felhőben.
Ezek a tervezési minták nem jellemzőek semmilyen technológiára, és bármilyen elosztott rendszerre vonatkoznak, akár az Azure-ban, akár más felhőplatformokon üzemeltetve, és némelyik akár a helyszíni vagy hibrid számítási feladatokra is kiterjedhet.
A felhőtervezési minták segítenek a tervezési folyamatban
A felhőalapú számítási feladatok hajlamosak az elosztott számítástechnika buktatóira. Néhány példa a felhőtervezési hibákra:
- A hálózat megbízható
- A késés nulla
- A sávszélesség végtelen
- A hálózat biztonságos
- A topológia nem változik
- Van egy rendszergazda
- Az összetevők verziószámozása egyszerű
- A megfigyelhetőség megvalósítása késleltethető
A tervezési minták nem szüntetik meg az ilyen fogalmakat, de segíthetnek a tudatosság, a kompenzációk és a kockázatcsökkentések kialakításában. Minden felhőminta saját kompromisszumokkal rendelkezik. Nagyobb figyelmet kell fordítania arra, hogy miért választ ki egy adott mintát, mint hogy hogyan valósítsa meg.
Egy jól megtervezett számítási feladat figyelembe veszi, hogy ezeket az iparági tervezési mintákat hogyan kell használni a számítási feladatok tervezésének alapvető építőelemeiként. Minden Azure Well-Architected pillér megjelenik ezekben a tervezési mintákban, amelyek gyakran kompromisszumokat vezetnek be más pillérek céljaival szemben.
Mintakatalógus
A katalógus minden mintája leírja a minta problémáját, a minta alkalmazásának szempontjait és a Microsoft Azure-on alapuló példát. Néhány minta kódmintákat vagy kódrészleteket tartalmaz, amelyek bemutatják, hogyan implementálható a minta az Azure-ban.
Minta | Összegzés | Az Azure Well-Architected Framework alappillérei |
---|---|---|
Ambassador | Olyan segítő szolgáltatásokat hozhat létre, amelyek egy otthoni használatra szánt szolgáltatás vagy alkalmazás nevében küldenek hálózati kéréseket. |
|
Anti-Corruption Layer | Egy előtér- vagy adapterréteget implementálhat egy korszerű alkalmazás és egy korábbi rendszer között. |
|
Aszinkron kérés-válasz | Leválaszthatja a háttérbeli feldolgozást az előtérbeli gazdagépről, ha a háttérbeli feldolgozásnak aszinkronnak kell lennie, de az előtér egyértelmű választ igényel. |
|
Backends for Frontends | Hozzon létre külön háttérszolgáltatásokat, amelyeket meghatározott előtérbeli alkalmazások vagy felületek használnak. |
|
Bulkhead | Az alkalmazás elemeit elkülönítheti készletekbe, hogy ha az egyik meghibásodik, a többi továbbra is működjön. |
|
Cache-Aside | Igény szerint betölti az adatokat egy adattárból származó gyorsítótárba. |
|
Koreográfia | Központi vezénylő használata helyett hagyja, hogy az egyes szolgáltatások döntsenek az üzleti műveletek feldolgozásának idejéről és módjáról. |
|
Circuit Breaker | Ha távoli szolgáltatáshoz vagy erőforráshoz csatlakozik, kezelheti azokat a hibákat, amelyek javítása esetleg sok időt venne igénybe. |
|
Claim Check | A nagy méretű üzeneteket jogcímellenőrzésre és hasznos adatra oszthatja fel, hogy elkerülje az üzenetbusz túlterhelését. |
|
Compensating Transaction | Visszavonhat egy sorozatnyi, együttesen végül konzisztens műveletet meghatározó lépés által végrehajtott munkát. |
|
Competing Consumers | Lehetővé teheti több párhuzamos felhasználó számára, hogy feldolgozzák az ugyanazon az üzenetkezelési csatornán fogadott üzeneteket. |
|
Compute Resource Consolidation | Több tevékenység vagy művelet összesítése egyetlen számítási egységbe. |
|
CQRS | Különböző felületek használatával elkülönítheti az adatolvasó műveleteket az adatfrissítő műveletektől. |
|
Üzembehelyezési bélyegzők | Üzembe helyezheti az alkalmazás-összetevők (többek között az adattárak) több, egymástól független másolatát. |
|
Peremhálózati számítási feladatok konfigurálása | Központosítsa a konfigurációt, hogy megoldhassa a több rendszer és eszköz konfigurálásának kihívását az üzlethelyiségben. | |
Event Sourcing | Használhat egy csak hozzáfűzéssel bővíthető tárat az egy tartomány adatain elvégzett műveleteket leíró események teljes sorozatának rögzítésére. |
|
External Configuration Store | A konfigurációs adatokat áthelyezheti az alkalmazás üzembehelyezési csomagjából egy központi helyre. |
|
Federated Identity | A hitelesítést delegálhatja egy külső identitásszolgáltatónak. |
|
Gatekeeper | Védheti az alkalmazásokat és szolgáltatásokat egy dedikált üzemeltető példány segítségével, amely közvetítőként szolgál az ügyfelek és az alkalmazás vagy szolgáltatás között, érvényesíti és vírusmentesíti a kéréseket, valamint közvetíti a kéréseket és az adatokat közöttük. |
|
Gateway Aggregation | Több egyéni kérést összesíthet egyetlen kérésbe egy átjáró segítségével. |
|
Gateway Offloading | A megosztott vagy specializált szolgáltatásműködést kiszervezheti egy átjáró proxyra. |
|
Gateway Routing | Átirányíthatja a kéréseket több szolgáltatásra egyetlen végpont használatával. |
|
Geode | Földrajzi csomópontok készletébe helyezhet üzembe háttérszolgáltatásokat, amelyek mindegyike bármely régióban bármely ügyfélkérelmet képes kiszolgálni. |
|
Health Endpoint Monitoring | Rendszeres időközönként működés-ellenőrzéseket implementálhat egy alkalmazásban, amelyhez az elérhetővé tett végpontokon keresztül hozzáférhetnek külső eszközök. |
|
Index Table | Indexeket hozhat létre a lekérdezések által gyakran hivatkozott adattárbeli mezőkről. |
|
Leader Election | Koordinálhat egy elosztott alkalmazásban az együttműködő feladatpéldányokból álló gyűjtemény által végrehajtott műveleteket, ha vezetőnek választ meg egy példányt, amely vállalja a többi példány kezelésével járó felelősséget. |
|
Materialized View | Létrehozhat előre kitöltött nézeteket egy vagy több adattár adataiból, ha az adatok formázása nem ideális a szükséges lekérdezési műveletekhez. |
|
Üzenetkezelési híd | Hozzon létre egy közvetítőt, amely lehetővé teszi a protokoll vagy formátum miatt egyébként nem kompatibilis üzenetkezelő rendszerek közötti kommunikációt. |
|
Pipes and Filters | Egy összetett feldolgozást végrehajtó feladatot lebonthat különálló, újrahasznosítható elemek sorává. |
|
Priority Queue | Priorizálhatja a szolgáltatásoknak küldött kéréseket úgy, hogy a magasabb prioritású kéréseket a rendszer gyorsabban fogadja és dolgozza fel, mint az alacsonyabb prioritásúakat. |
|
Közzétevő/előfizető | Engedélyezheti egy alkalmazás számára, hogy több érdeklődő fogyasztó számára aszinkron módon, a küldők és a fogadók összekapcsolása nélkül jelentsen be eseményeket. |
|
karantén | Győződjön meg arról, hogy a külső eszközök megfelelnek a csapat által elfogadott minőségi szintnek, mielőtt engedélyt kapnak arra, hogy felhasználhassák őket a számítási feladatban. |
|
Queue-Based Load Leveling | Használhat egy pufferként szolgáló üzenetsort egy feladat és az általa meghívott szolgáltatás között, hogy kiegyenlítse az időszakos nagy terheléseket. |
|
Sebességkorlát minta | A szabályozási korlátokhoz kapcsolódó szabályozási hibák elkerülése és minimalizálása, valamint az átviteli sebesség pontosabb előrejelzése érdekében korlátozza a mintát. |
|
Retry | Engedélyezheti egy alkalmazás számára a szolgáltatásokhoz vagy hálózati erőforrásokhoz való csatlakozáskor jelentkező előre jelzett, átmeneti meghibásodások kezelését egy korábban meghiúsult művelet transzparens módon való ismételt megkísérlésével. |
|
Monda | Elosztott tranzakciós forgatókönyvekben kezelheti az adatkonzisztenciát a mikroszolgáltatások között. A saga olyan tranzakciók sorozata, amelyek frissítik az egyes szolgáltatásokat, és közzétenek egy üzenetet vagy eseményt a következő tranzakciós lépés aktiválásához. |
|
Scheduler Agent Supervisor | Koordinálhat egy műveletkészletet egy elosztott szolgáltatáskészleten és más távoli erőforrásokon. |
|
Sequential Convoy | A kapcsolódó üzeneteket meghatározott sorrendben dolgozhatja fel, más üzenetcsoportok feldolgozásának akadályozása nélkül. |
|
Sharding | Egy adattárat horizontális partíció- vagy szilánkkészletté oszthat fel. |
|
Sidecar | Egy alkalmazás összetevőit külön folyamatban vagy tárolóban helyezheti üzembe, így elkülönítést és beágyazást biztosíthat. |
|
Static Content Hosting | A statikus tartalmakat egy felhőalapú társzolgáltatásban helyezheti üzembe, amely közvetlenül az ügyfélnek közvetíti azt. |
|
Strangler Fig | Növekményesen migrálhat egy korábbi rendszert oly módon, hogy egyes funkciódarabokat fokozatosan új alkalmazásokra és szolgáltatásokra cserél. |
|
Szabályozás | Szabályozhatja egy alkalmazáspéldány, egyéni bérlő vagy teljes szolgáltatás által használt erőforrások felhasználását. |
|
Valet Key | Jogkivonatot vagy kulcsot használhat, amely korlátozott közvetlen hozzáférést biztosít az ügyfelek számára egy adott erőforráshoz vagy szolgáltatáshoz. |
|
Következő lépés
Tekintse át a tervezési mintákat az Azure Well-Architected pillér szempontjából, amelyet a minta optimalizálni kíván.