Megbízhatóságot támogató felhőtervezési minták

A számítási feladatok architektúráinak tervezésekor olyan iparági mintákat kell használnia, amelyek megoldják a gyakori kihívásokat. A minták segítségével szándékos kompromisszumokat hozhat a számítási feladatokon belül, és optimalizálhatja a kívánt eredményt. Emellett segíthetnek a konkrét problémákból eredő kockázatok csökkentésében is, amelyek hatással lehetnek a biztonságra, a teljesítményre, a költségekre és a műveletekre. Ha nem csökkentik, ezek a kockázatok végül megbízhatósági problémákat okoznak. Ezeket a mintákat valós tapasztalat támogatja, felhőalapú és üzemeltetési modellekhez tervezték, és eredendően szállítói agnosztikusak. A jól ismert minták használata a számítási feladatok tervezésének szabványosítására a működési kiválóság egyik összetevője.

Számos tervezési minta közvetlenül támogatja egy vagy több architektúraoszlopot. A megbízhatósági pillért támogató tervezési minták rangsorolják a számítási feladatok rendelkezésre állását, az önmegőrzést, a helyreállítást, az adatok és a feldolgozási integritást, valamint a működési hibák elszigetelését.

Tervezési minták a megbízhatósághoz

Az alábbi táblázat összefoglalja a megbízhatósági célokat támogató felhőtervezési mintákat.

Mintázat Összefoglalás
Ambassador A hálózati kommunikáció beágyazása és kezelése a hálózati kommunikációhoz kapcsolódó, horizontális feladatok kiszervezésével. Az eredményként kapott segítő szolgáltatások az ügyfél nevében kezdeményeznek kommunikációt. Ez a közvetítési pont lehetővé teszi, hogy megbízhatósági mintákat adjon a hálózati kommunikációhoz, például újrapróbálkozást vagy pufferelést.
Backends for Frontends A számítási feladat szolgáltatási rétegének személyre szabottsá tétele egy adott előtér-felületre kizárólagos különálló szolgáltatások létrehozásával. Az elkülönítés miatt előfordulhat, hogy az egyik ügyfelet támogató szolgáltatási réteg meghibásodása nem befolyásolja egy másik ügyfél hozzáférésének elérhetőségét. Ha eltérően kezeli a különböző ügyfeleket, rangsorolhatja a megbízhatósági erőfeszítéseket a várt ügyfélhozzáférési minták alapján.
Bulkhead Szándékos és teljes szegmentálást vezet be az összetevők között, hogy elkülönítse a meghibásodások robbanási sugarát. Ez a hibaelkülönítési stratégia csak a problémát tapasztaló válaszfal hibáit próbálja meg tartalmazni, megakadályozva a többi válaszfalra gyakorolt hatást.
Cache-Aside Optimalizálja a gyakran olvasható adatokhoz való hozzáférést egy igény szerint feltöltött gyorsítótár bevezetésével. Ezt követően a rendszer a gyorsítótárat használja ugyanazon adatok későbbi kéréseihez. A gyorsítótárazás adatreplikálást hoz létre, és korlátozott módon használható a gyakran használt adatok rendelkezésre állásának megőrzésére, ha a forrásadattár átmenetileg nem érhető el. Emellett, ha a gyorsítótár hibásan működik, a számítási feladat visszaeshet a forrásadattárba.
Circuit Breaker Megakadályozza a hibásan működő vagy nem elérhető függőségekre irányuló folyamatos kéréseket. Ezzel a mintával megelőzheti a hibás függőségek túlterhelését. Ezzel a mintával kecses lebomlást is aktiválhat a számítási feladatban. Az áramkör-megszakítókat gyakran automatikus helyreállítással párosítják, hogy önmegőrzést és önjavítást is biztosítsanak.
Claim Check Elkülöníti az adatokat az üzenetkezelési folyamattól, így külön lekérheti az üzenethez kapcsolódó adatokat. Az üzenetbuszok nem ugyanazt a megbízhatóságot és vészhelyreállítást biztosítják, mint amelyek gyakran szerepelnek a dedikált adattárakban, így az adatok üzenettől való elkülönítése nagyobb megbízhatóságot biztosíthat a mögöttes adatok számára. Ez az elkülönítés lehetővé teszi az üzenetsorok vészhelyreállítási megközelítését is.
Compensating Transaction Mechanizmust biztosít a hibák utáni helyreállításhoz a korábban alkalmazott műveletek hatásainak megfordításával. Ez a minta kompenzációs műveletek használatával oldja meg a kritikus számítási feladatok útvonalainak működési hibáit, amelyek olyan folyamatokat is magukban foglalhatnak, mint például az adatok közvetlen visszaállítása, a tranzakciózárak feltörése vagy akár a natív rendszer viselkedésének végrehajtása a hatás megfordítása érdekében.
Competing Consumers Elosztott és egyidejű feldolgozást alkalmaz az üzenetsor elemeinek hatékony kezelésére. Ez a modell redundanciát épít ki az üzenetsor-feldolgozásban úgy, hogy replikaként kezeli a fogyasztókat, így a példányhiba nem akadályozza meg, hogy más felhasználók feldolgozhassák az üzenetsor-üzeneteket.
Event Sourcing Az állapotváltozásokat események sorozataként kezeli, és nem módosítható, csak hozzáfűző naplókban rögzíti őket. Ezt a mintát akkor használhatja, ha a változások megbízható előzményei kulcsfontosságúak egy összetett üzleti folyamatban. Emellett az állapotrekonstrukciót is megkönnyíti, ha helyre kell állítania az állapottárolókat.
Federated Identity Megbízhatóságot delegál egy olyan identitásszolgáltatónak, amely kívül esik a számítási feladaton a felhasználók kezeléséhez és az alkalmazás hitelesítésének biztosításához. A felhasználók felügyeletének és hitelesítésének kiszervezése az ilyen összetevők megbízhatóságát az identitásszolgáltatóra váltódik, amely általában magas SLA-val rendelkezik. Emellett a számítási feladatok vészhelyreállítása során a hitelesítési összetevőket valószínűleg nem kell a számítási feladat helyreállítási tervének részeként kezelni.
Gateway Aggregation Leegyszerűsíti az ügyfél és a számítási feladat közötti interakciót azáltal, hogy egyetlen kérelemben összesíti a több háttérszolgáltatás hívásait. Ez a topológia lehetővé teszi, hogy az átmeneti hibakezelést egy elosztott implementációról egy központosított implementációra váltsa át.
Gateway Offloading A kérés feldolgozásának kiszervezése átjáróeszközre a kérés háttércsomópontra történő továbbítása előtt és után. A felelősség átjáróra való kiszervezése csökkenti az alkalmazáskód összetettségét a háttércsomópontokon. Bizonyos esetekben a kiszervezés teljesen lecseréli a funkciókat egy megbízható platform által biztosított szolgáltatásra.
Gateway Routing A bejövő hálózati kéréseket különböző háttérrendszerekhez irányítja a kérési szándékok, az üzleti logika és a háttérbeli rendelkezésre állás alapján. Az átjáró-útválasztással a forgalmat csak kifogástalan állapotú csomópontokra irányíthatja a rendszerben.
Geodéziai Olyan rendszereket helyez üzembe, amelyek aktív-aktív rendelkezésre állási módban működnek több földrajzi régióban. Ez a minta adatreplikálással támogatja azt az ideális megoldást, amelyet bármely ügyfél bármely földrajzi példányhoz csatlakoztathat. Segíthet a számítási feladatnak ellenállni egy vagy több regionális kimaradásnak.
Health Endpoint Monitoring Lehetővé teszi a rendszer állapotának vagy állapotának monitorozását egy kifejezetten erre a célra tervezett végpont felfedésével. Ezzel a végponttal kezelheti a számítási feladat állapotát, valamint riasztásokat és irányítópultokat készíthet. Azt is használhatja jelként az önjavító szervizeléshez.
Index Table Optimalizálja az adatok lekérését az elosztott adattárakban azáltal, hogy lehetővé teszi az ügyfelek számára a metaadatok keresését, hogy az adatok közvetlenül lekérhetők legyenek, így nem kell teljes adattárvizsgálatokat végezni. Mivel az ügyfelek egy keresési folyamaton keresztül mutatnak a szegmensükre, partíciójukra vagy végpontjukra, ezzel a mintával megkönnyítheti az adathozzáférés feladatátvételi megközelítését.
Leader Election Egy elosztott alkalmazás példányainak vezetőjét hozza létre. A vezető koordinálja a cél elérésével kapcsolatos felelősségeket. Ez a minta a munka megbízható átirányításával mérsékli a csomóponthibák hatását. A feladatátvételt konszenzusos algoritmusokkal is implementálja, amikor egy vezető meghibásodik.
Pipes and Filters Az összetett adatfeldolgozást önálló szakaszok sorozatára bontja egy adott eredmény elérése érdekében. Az egyes fázisok egyetlen felelősségi körébe koncentrált figyelem kerül, és elkerüli a zavaró adatfeldolgozást.
Priority Queue Biztosítja, hogy a magasabb prioritású elemek feldolgozása és befejezése az alacsonyabb prioritású elemek előtt történik. Ha az elemeket üzleti prioritás alapján választja el, a megbízhatósági erőfeszítéseket a legkritikusabb munkára összpontosíthatja.
Közzétevő/előfizető Az architektúra összetevőit úgy választja el, hogy egy köztes üzenetközvetítőn vagy eseménybuszon keresztüli kommunikációra cseréli a közvetlen ügyfél-szolgáltatás vagy ügyfél-szolgáltatások közötti kommunikációt.
Queue-Based Load Leveling A bejövő kérések vagy feladatok szintjét úgy szabályozza, hogy puffereli őket egy üzenetsorba, és lehetővé teszi, hogy az üzenetsor-feldolgozó szabályozott ütemben kezelje őket. Ez a megközelítés rugalmasságot biztosíthat a hirtelen megugrási igények ellen azáltal, hogy leválasztja a feladatok érkezését a feldolgozásuktól. Elkülönítheti az üzenetsor-feldolgozás hibáit is, hogy ne befolyásolják a bevitelt.
Sebességkorlátozás Szabályozza az ügyfélkérések sebességét a szabályozási hibák csökkentése és a kötetlen újrapróbálkozási forgatókönyvek elkerülése érdekében. Ez a taktika azzal védi az ügyfelet, hogy tudomásul veszi a szolgáltatással való kommunikáció korlátait és költségeit, amikor a szolgáltatás úgy van kialakítva, hogy elkerülje a megadott korlátok elérését. A művelet a szolgáltatásnak adott időszakban küldött műveletek számának és/vagy méretének szabályozásával működik.
Retry Bizonyos műveletek újrapróbálásával elhárítja az átmeneti vagy időszakos hibákat, szabályozott módon. Az elosztott rendszerek átmeneti hibáinak enyhítése kulcsfontosságú módszer a számítási feladatok rugalmasságának javításához.
Saga elosztott tranzakciók A hosszú ideig futó és potenciálisan összetett tranzakciókat úgy koordinálja, hogy a munkát kisebb, független tranzakciók sorozatába bontja. Minden tranzakciónak kompenzáló műveletekkel is rendelkeznie kell a végrehajtási hibák visszafejtéséhez és az integritás fenntartásához. Mivel a monolitikus tranzakciók több elosztott rendszeren általában lehetetlenek, ez a minta konzisztenciát és megbízhatóságot biztosít az atomitás és a kompenzáció implementálásával.
Scheduler Agent Supervisor Hatékonyan osztja el és terjeszti a feladatokat a rendszeren belül megfigyelhető tényezők alapján. Ez a minta állapotmetrikákkal észleli a hibákat, és a hibás működés hatásainak mérséklése érdekében átirányítja a feladatokat egy kifogástalan állapotú ügynökhöz.
Sequential Convoy Egyidejű üzenetküldési bejövő forgalmat tart fenn, ugyanakkor támogatja a feldolgozást egy meghatározott sorrendben. Ez a minta kiküszöbölheti a nehezen hárítható versenyhelyzeteket, a vitatott üzenetkezelést vagy más kerülő megoldásokat a helytelenül rendezett üzenetek kezelésére, amelyek hibás működéshez vezethetnek.
Sharding A terhelést egy adott logikai célhelyre irányítja az adott kérés kezeléséhez, lehetővé téve a közös elhelyezést az optimalizáláshoz. Mivel az adatok vagy a feldolgozás el van különítve a szegmenstől, az egyik szegmens meghibásodása el van különítve a szegmenstől.
Strangler Fig Egy futó rendszer összetevőinek módszeres cseréjét teszi lehetővé új összetevőkre, gyakran a rendszer migrálása vagy modernizálása során. Ennek a mintának a növekményes megközelítése segíthet csökkenteni a kockázatokat az átmenet során.
Szabályozás Korlátozza az erőforrásra vagy összetevőre irányuló bejövő kérések sebességét vagy átviteli sebességét. A korlátokat úgy tervezheti meg, hogy megakadályozza az erőforrás-kimerülést, amely hibás működéshez vezethet. Ezt a mintát vezérlő mechanizmusként is használhatja egy kecses lebomlási tervben.

Következő lépések

Tekintse át az Azure Well-Architected Framework többi pillérét támogató felhőtervezési mintákat: