Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
- Párosítsa újra az újrapróbálkozástaz áramkör-megszakítóval, hogy az alkalmazás újrapróbálkozhassa az átmeneti hibákat, de egy hiba fennállása esetén ne próbálkozzon újra.
- A terhelés puffereléséhez, majd a feldolgozás skálázásához kombinálja a Queue-Based Load Leveling mintát a Competing Consumers mintával.
- Rétegezze a Gateway Routing, Gateway Aggregation és Gateway Offloading mintákat egyetlen gateway-végpont mögé.
- Építsen Saga-t kompenzáló tranzakcióra alapozva, hogy fenntartsa az adatok konzisztenciáját a szolgáltatások között, amikor egy elosztott művelet a folyamat közben meghiúsul.
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.