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: