Tervezési minták felhőkhöz

Az építészek platformszolgáltatásokat, funkciókat és kódot integrálva terveznek számítási feladatokat, hogy megfeleljenek a funkcionális és nem funkcionális követelményeknek. A hatékony számítási feladatok tervezéséhez ismernie kell ezeket a követelményeket, és olyan topológiákat és módszertanokat kell kiválasztania, amelyek a számítási feladatok korlátainak kihívásait kezelik. A felhőtervezési minták számos gyakori kihívásra nyújtanak megoldást.

A rendszertervezés nagymértékben támaszkodik a már bevált tervezési mintákra. Az infrastruktúra, a kód és az elosztott rendszerek ezen minták kombinációjával tervezhetők meg. Ezek a minták kulcsfontosságúak a megbízható, rendkívül biztonságos, költségoptimalizált, működési szempontból hatékony és nagy teljesítményű alkalmazások felhőbeli létrehozásához.

A következő felhőtervezési minták technológia-agnosztikusak, ami alkalmassá teszi őket minden elosztott rendszerre. Ezeket a mintákat Azure, más felhőplatformokon, helyszíni beállításokon és hibrid környezeteken is alkalmazhatja.

Hogyan javítják a felhőtervezési minták a tervezési folyamatot?

A felhőalapú számítási feladatok ki vannak téve az elosztott számítástechnika tévedéseinek, amelyek gyakori, de helytelen feltételezések az elosztott rendszerek működésével kapcsolatban. Ilyen hibák például a következők:

  • 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ő.

Ezek a tévhitek hibás számítási feladatterveket eredményezhetnek. A tervezési minták nem szüntetik meg ezeket a tévhiteket, de segítenek a tudatosság növelésében, a kompenzációs stratégiák biztosításában és a kockázatcsökkentésben. Minden felhőtervezési minta kompromisszumokkal rendelkezik. Koncentráljon arra, hogy miért érdemes egy adott mintát választani ahelyett, hogy hogyan implementálja.

Fontolja meg, hogyan használhatja ezeket az iparági szabványoknak megfelelő tervezési mintákat a jól megtervezett számítási feladatok tervezésének alapvető építőelemeiként. A Azure Well-Architected-keretrendszer minden tervezési mintája egy vagy több pillért jelöl. Egyes minták olyan kompromisszumokat eredményezhetnek, amelyek befolyásolják más pillérek céljait.

Minta kiválasztása

Válasszon mintát a megoldandó probléma alapján, nem pedig a használni kívánt technológia alapján. Kezdje egy adott korlátozással vagy kockázattal a számítási feladatban, például egy terhelés alatt meghiúsuló szolgáltatással, egy olyan adattárral, amely nem tud lépést tartani az olvasási lekérdezésekkel, vagy olyan függőséggel, amelyben nem lehet teljes mértékben megbízni. A minta akkor megfelelő, ha a problémakimutatás megfelel az Ön által tapasztalt kihívásnak, és amikor az általa bevezetett kompromisszumok elfogadhatók a számítási feladatban.

Mintakatalógus

A katalógus minden mintája leírja a probléma megoldását, a minta alkalmazásának szempontjait, valamint egy példát Microsoft Azure szolgáltatások és eszközök alapján. Néhány minta kódmintákat vagy kódrészleteket tartalmaz, amelyek bemutatják, hogyan implementálható a minta a Azure.

Minta Összegzés Well-Architected keretrendszer pillérei
Nagykövet 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. -Megbízhatóság

-Biztonság
Sérülésgátló réteg Egy előtér- vagy adapterréteget implementálhat egy korszerű alkalmazás és egy korábbi rendszer között. - Működési kiválóság
Aszinkron kérés–válasz A háttér-feldolgozás leválasztása egy front-end rendszerről. Ez a minta akkor hasznos, ha a háttérfeldolgozásnak aszinkronnak kell lennie, de az előtérben egyértelmű és időszerű válaszra van szükség. - Teljesítményhatékonyság
Háttérrendszerek az előtérrendszerekhez Hozzon létre külön háttérszolgáltatásokat adott előtérbeli alkalmazásokhoz vagy felületekhez. -Megbízhatóság

-Biztonság

- Teljesítményhatékonyság
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. -Megbízhatóság

-Biztonság

- Teljesítményhatékonyság
Gyorsítótár-feltöltés Igény szerint betölti az adatokat egy adattárból származó gyorsítótárba. -Megbízhatóság

- Teljesítményhatékonyság
Koreográfia Döntse el az egyes szolgáltatások, hogy mikor és hogyan dolgozzák fel az üzleti műveletet ahelyett, hogy egy központi vezénylőtől függenek. - Működési kiválóság

- Teljesítményhatékonyság
Fázisleválasztó Kezelje azokat a hibákat, amelyek kijavítása változó ideig tarthat, amikor egy alkalmazás távoli szolgáltatáshoz vagy erőforráshoz csatlakozik. -Megbízhatóság

- Teljesítményhatékonyság
Bizonylat ellenőrzése A nagy méretű üzeneteket jogcímellenőrzésre és hasznos adatra oszthatja fel, hogy elkerülje az üzenetbusz túlterhelését. -Megbízhatóság

-Biztonság

- Költségoptimalizálás

- Teljesítményhatékonyság
Kompenzáló tranzakció Vonja vissza a végül konzisztens műveletet alkotó lépések sorozatával végzett munkát. -Megbízhatóság
Versengő fogyasztók Engedélyezze több egyidejű felhasználó számára, hogy feldolgozzák az ugyanazon az üzenetcsatornán kapott üzeneteket. -Megbízhatóság

- Költségoptimalizálás

- Teljesítményhatékonyság
Számítási erőforrás-összevonás Több tevékenység vagy művelet összesítése egyetlen számítási egységbe. - Költségoptimalizálás

- Működési kiválóság

- Teljesítményhatékonyság
CQRS Külön műveletek, amelyek adatokat olvasnak azoktól, amelyek különböző interfészek használatával frissítik az adatokat. - Teljesítményhatékonyság
Ü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. - Működési kiválóság

- Teljesítményhatékonyság
Event Sourcing Csak hozzáfűző tárolóval rögzíthet egy teljes eseménysorozatot, amely leírja a tartomány adatain végrehajtott műveleteket. -Megbízhatóság

- Teljesítményhatékonyság
Külső konfigurációs tároló A konfigurációs adatok áthelyezése egy alkalmazástelepítési csomagból egy központi helyre. - Működési kiválóság
Összevont identitás A hitelesítést delegálhatja egy külső identitásszolgáltatónak. -Megbízhatóság

-Biztonság

- Teljesítményhatékonyság
Kapuőr Védje az alkalmazásokat és szolgáltatásokat dedikált gazdapéldány használatával a kérelmek ellenőrzésére és megtisztítására, mielőtt azokat a privát háttérrendszerek felé továbbítja. -Biztonság

- Teljesítményhatékonyság
Átjáró-összesítés Több egyéni kérést összesíthet egyetlen kérésbe egy átjáró segítségével. -Megbízhatóság

-Biztonság

- Működési kiválóság

- Teljesítményhatékonyság
Átjáró tehermentesítése A megosztott vagy specializált szolgáltatásműködést kiszervezheti egy átjáró proxyra. -Megbízhatóság

-Biztonság

- Költségoptimalizálás

- Működési kiválóság

- Teljesítményhatékonyság
Átjáró útválasztása Kérelmek átirányítása több szolgáltatáshoz egyetlen végpont használatával. -Megbízhatóság

- Működési kiválóság

- Teljesítményhatékonyság
Geode Háttérszolgáltatások üzembe helyezése földrajzilag elosztott csomópontokon. Minden csomópont bármely régióból képes kezelni az ügyfélkéréseket. -Megbízhatóság

- Teljesítményhatékonyság
Egészségügyi végpont-figyelés 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. -Megbízhatóság

- Működési kiválóság

- Teljesítményhatékonyság
Idempotens fogyasztó Kezelje az ismétlődő üzenetkézbesítést, hogy az üzenetek többszöri feldolgozása ugyanolyan hatással legyen, mint az egyszer történő feldolgozásra. -Megbízhatóság
Indextábla Indexek létrehozása az adattárak mezői fölé, amelyek gyakran hivatkoznak a lekérdezésekre. -Megbízhatóság

- Teljesítményhatékonyság
Vezető választás Koordinálja az elosztott alkalmazás műveleteit úgy, hogy egy példányt választ vezetővé. A vezető az együttműködő feladatpéldányok gyűjteményét kezeli. -Megbízhatóság
Materializált nézet Előre feltöltött nézeteket hozhat létre egy vagy több adattár adatai felett, ha az adatok nem megfelelően vannak formázva a szükséges lekérdezési műveletekhez. - Teljesítményhatékonyság
Üzenetkezelési híd Hozzon létre egy közvetítőt az egyébként nem kompatibilis üzenetkezelő rendszerek közötti kommunikáció engedélyezéséhez. - Költségoptimalizálás

- Működési kiválóság
Csövek és szűrők Egy összetett feldolgozást végrehajtó feladatot lebonthat különálló, újrahasznosítható elemek sorává. -Megbízhatóság
Prioritási várólista Rangsorolja a szolgáltatásoknak küldött kérelmeket, hogy a magasabb prioritású kérelmek gyorsabban dolgozzanak fel. -Megbízhatóság

- Teljesítményhatékonyság
Publisher-Előfizető Lehetővé teszi, hogy egy alkalmazás aszinkron módon jelentse be az eseményeket több felhasználónak anélkül, hogy a feladókat a fogadókhoz kapcsolják. -Megbízhatóság

-Biztonság

- Költségoptimalizálás

- Működési kiválóság

- Teljesítményhatékonyság
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 a számítási feladat felhasználja őket. -Biztonság

- Működési kiválóság
Sorrendalapú terheléskiegyenlítés Használjon olyan üzenetsort, amely puffert hoz létre egy feladat és egy szolgáltatás között az időszakos nagy terhelések kezeléséhez. -Megbízhatóság

- Költségoptimalizálás

- Teljesítményhatékonyság
Sebességkorlátozás Az erőforrások felhasználásának szabályozásával elkerülheti vagy minimalizálhatja a szabályozási hibákat. -Megbízhatóság
Újrapróbálkozás Engedélyezze az alkalmazások számára a várt ideiglenes hibák kezelését a sikertelen műveletek újrapróbálkozásával. -Megbízhatóság
Saga Elosztott tranzakciós forgatókönyvekben kezelheti az adatkonzisztenciát a mikroszolgáltatások között. -Megbízhatóság
Ütemezési ügynök felügyelő Műveletek egy csoportjának koordinálása elosztott szolgáltatások és erőforrások között. -Megbízhatóság

- Teljesítményhatékonyság
Szekvenciális konvoj A kapcsolódó üzenetek egy meghatározott sorrendben történő feldolgozása más üzenetcsoportok blokkolása nélkül. -Megbízhatóság
Darabolás Egy adattárat horizontális partíció- vagy szilánkkészletté oszthat fel. -Megbízhatóság

- Költségoptimalizálás
Oldalkocsi Helyezzen üzembe összetevőket egy külön folyamatba vagy tárolóba, hogy elkülönítést és beágyazást biztosítson. -Biztonság

- Működési kiválóság
Statikus tartalom üzemeltetése Statikus tartalom üzembe helyezése felhőalapú tárolási szolgáltatásban közvetlen ügyfélkézbesítés céljából. - Költségoptimalizálás
Strangler füge Növekményesen migráljon egy régi rendszert úgy, hogy fokozatosan lecseréli a funkciók egy részét új alkalmazásokra és szolgáltatásokra. -Megbízhatóság

- Költségoptimalizálás

- Működési kiválóság
Szabályozás Az alkalmazásokból, bérlőkből vagy szolgáltatásokból származó erőforrások felhasználásának szabályozása. -Megbízhatóság

-Biztonság

- Költségoptimalizálás

- Teljesítményhatékonyság
Valet Key Jogkivonat vagy kulcs használatával korlátozott, közvetlen hozzáférést biztosíthat az ügyfeleknek egy adott erőforráshoz vagy szolgáltatáshoz. -Biztonság

- Költségoptimalizálás

- Teljesítményhatékonyság

Minták egyesítése

A minták összeállíthatók. Egyetlen minta egyetlen problémát old meg, de a számítási feladatok általában egyszerre több problémával szembesülnek, így gyakran több mintát is alkalmazhat együtt. Egyes minták más mintákra is épülnek, vagy természetes módon együtt használhatók, hogy betöltsenek egy olyan rést, amelyet egyetlen minta önmagában nyitva hagy. Vegye figyelembe az alábbi példákat:

Antiminták

A tervezési minta egy alkalmazható gyakorlatot ír le. Az antipattern egy elkerülendő gyakorlatot ír le. Az antipatternek gyakran ésszerű kialakításként indulnak el, amelyek teszteléskor vagy alacsony méretekben működnek, de a terhelés növekedésével csökkentik a megbízhatóságot vagy a teljesítményt. Az antipattern felismerése segít kiszúrni egy meglévő tervben lévő problémát, és kiválasztani egy olyan mintát, amely megoldja azt. A teljes listát a felhőalkalmazások antipatternjei című témakörben találja.

AI-ügynökök vezénylési mintái

Az előző felhőtervezési minták az elosztott rendszerek gyakori kihívásaival foglalkoznak, de a több autonóm ügynököt használó AI-számítási feladatok speciális koordinációs megközelítéseket igényelnek. Az olyan hagyományos minták, mint a Scheduler Agent Supervisor vagy a Koreográfia, alapvető fogalmakat biztosítanak. Az AI-ügynökök azonban olyan egyedi kihívásokat vezetnek be, mint a nemdeterminisztikus kimenetek, a dinamikus érvelési képességek és a speciális összetevők közötti intelligens átadás szükségessége.

A több autonóm ügynököt tartalmazó AI-számítási feladatok esetében lásd az AI-ügynökök vezénylési mintáit. Ezek a minták kiegészítik a katalógus felhőtervezési mintáit azáltal, hogy az intelligens, autonóm összetevők speciális koordinációs követelményeit kezelik, amelyek együtt dolgoznak az összetett eredmények elérésén.

Következő lépések

Tekintse át a tervezési mintákat a Well-Architected keretrendszer pillérének szemszögéből, amelyet a minta optimalizálni kíván.