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 Azure Well-Architected-keretrendszer megbízhatósági ellenőrzőlistájára vonatkozó javaslat:
| RE:07 | Önmegőrző és önjavító intézkedések végrehajtásával erősítheti a számítási feladatok rugalmasságát. A beépített funkciók és a jól bevált felhőminták segítségével a számítási feladatok továbbra is működőképesek maradnak az incidensek során és azok helyreállítása során. |
|---|
Ez az útmutató azokat a javaslatokat ismerteti, hogyan építhet önmegőrző és önjavító képességeket az alkalmazásarchitektúrába a megbízhatóság optimalizálása érdekében.
Az önmegőrző képességek rugalmasságot biztosítanak a számítási feladatokhoz. Csökkentik a teljes üzemkimaradás valószínűségét, és lehetővé teszik, hogy a számítási feladat normál vagy csökkentett állapotban működjön meghibásodás esetén. Az öngyógyító képességek segítenek elkerülni az állásidőt azáltal, hogy hibaészlelést végez, és automatikus korrekciós műveleteket végez a hibákra való reagáláshoz.
Definíciók
| Időszak | Definition |
|---|---|
| Öngyógyító | A számítási feladat képes automatikusan megoldani a problémákat az érintett összetevők helyreállításával, és szükség esetén a redundáns infrastruktúrára való feladatátvételsel. |
| Önfenntartás | A számítási feladatok rugalmasságának képessége a lehetséges problémák ellen. |
Redundancia tervezése
A számítási feladatok meghibásodásoktól való védelmének egyik leghatékonyabb stratégiája a redundancia kiépítése az összes összetevőre, és egyetlen meghibásodási pont kerülése. Az összetevők vagy a teljes számítási feladat redundáns erőforrásokra való átvétele hatékony módot kínál a rendszer legtöbb hibájának kezelésére.
Különböző szinteken építhet redundanciát, fontolja meg a redundáns infrastruktúra-összetevőket, például a számítást, a hálózatot és a tárolást, és fontolja meg a megoldás több példányának üzembe helyezését. Az üzleti követelményektől függően létrehozhat redundanciát egyetlen régión belül vagy régiók között. Azt is eldöntheti, hogy aktív-aktív vagy aktív-passzív kialakításra van-e szüksége a helyreállítási követelményeknek való megfeleléshez. További információ: Architektúrastratégiák a redundancia tervezéséhez és architektúrastratégiák rendelkezésre állási zónák és régiók használatához.
Tervezés önmegőrző célokra
A számítási feladatok önmegőrző tervezéséhez kövesse az infrastruktúra és az alkalmazásarchitektúra tervezési mintáit a számítási feladatok rugalmasságának optimalizálásához. A teljes alkalmazáskimaradás esélyének minimalizálása érdekében növelje a megoldás rugalmasságát azáltal, hogy kiküszöböli az egyes meghibásodási pontokat, és minimalizálja a hibák robbanási sugarát. A jelen cikkben ismertetett tervezési megközelítések számos lehetőséget kínálnak a számítási feladatok rugalmasságának megerősítésére és a számítási feladatok meghatározott megbízhatósági céljainak teljesítésére.
Infrastruktúra-tervezési útmutató és minták
Az infrastruktúra szintjén a redundáns architektúratervnek támogatnia kell a kritikus folyamatokat, és az erőforrásokat rendelkezésre állási zónákban vagy régiókban kell üzembe helyezni. Ha lehetséges , automatikus skálázás implementálása . Az automatikus skálázás segít megvédeni a számítási feladatokat a váratlan tevékenységkitörésekkel szemben, ami tovább erősíti az infrastruktúrát.
A Központi telepítési bélyegek vagy a Válaszfal mintával minimalizálhatja a robbanási sugarat, ha problémák merülnek fel. Ezek a minták segítenek a számítási feladat rendelkezésre állásában, ha egy adott összetevő nem érhető el. Használja az alábbi alkalmazástervezési mintákat az automatikus skálázási stratégiával kombinálva.
Üzembehelyezési bélyegek mintája: Különböző erőforráscsoport kiépítése, kezelése és monitorozása több számítási feladat vagy bérlő üzemeltetéséhez és üzemeltetéséhez. Minden egyes példányt bélyegnek vagy néha szolgáltatási egységnek, skálázási egységnek vagy cellának nevezünk.
Válaszfalminta: A szolgáltatáspéldányok különböző csoportokba , más néven készletekbe való particionálása a fogyasztói terhelés és a rendelkezésre állási követelmények alapján. Ez a kialakítás segít elkülöníteni a hibákat, és lehetővé teszi, hogy fenntartsa a szolgáltatás funkcióit egyes felhasználók számára, még egy hiba során is.
Alkalmazástervezési útmutató és minták
Kerülje a monolitikus alkalmazások létrehozását az alkalmazástervezésben. Használjon lazán összekapcsolt szolgáltatásokat vagy mikroszolgáltatásokat, amelyek jól meghatározott szabványokon keresztül kommunikálnak egymással, hogy csökkentse a kiterjedt problémák kockázatát, ha egyetlen összetevő hibás működése történik. Szabványosíthatja például a service bus használatát az összes aszinkron kommunikáció kezelésére. A kommunikációs protokollok szabványosítása biztosítja, hogy az alkalmazások tervezése egységes és egyszerűbb legyen, ami megbízhatóbbá és egyszerűbbé teszi a számítási feladat hibaelhárítását meghibásodás esetén. Gyakorlati esetben inkább az összetevők közötti aszinkron kommunikációt részesítse előnyben a szinkron kommunikációval szemben, hogy minimalizálja az időtúllépéssel kapcsolatos problémákat, például a holt betűs kommunikációt.
Az iparágban bevált mintákkal fejlesztheti tervezési szabványait, és egyszerűsítheti az architektúra jellemzőit. A megbízhatóságot támogató tervezési minták a Megbízhatósági minták című cikkben találhatók.
Tervezzen az önjavítást szem előtt tartva
A számítási feladat öngyógyításhoz való tervezéséhez hajtsa végre a hibaészlelést, hogy az automatikus válaszok aktiválódjanak, és a kritikus folyamatok zökkenőmentesen helyreálljanak. Engedélyezze a naplózást, hogy működési információkat nyújtson a hiba természetéről és a helyreállítás sikerességéről. A kritikus folyamatok öngyógyításának megközelítése az adott folyamathoz definiált megbízhatósági céloktól , valamint a folyamat összetevőitől és függőségeitől függ.
Infrastruktúra-tervezési útmutató
Az infrastruktúra szintjén a kritikus folyamatokat redundáns architektúratervnek kell támogatnia, és az azt támogató összetevők esetében engedélyezve van az automatizált feladatátvétel. Az automatizált feladatátvételt a következő szolgáltatásokhoz engedélyezheti:
Számítási erőforrások: Az Azure-beli virtuálisgép-méretezési csoportok és a legtöbb szolgáltatásként nyújtott platform (PaaS) számítási szolgáltatás konfigurálható az automatikus feladatátvételhez.
Adatbázisok: A relációs adatbázisok automatikus feladatátvételhez konfigurálhatók olyan megoldásokkal, mint az Azure SQL feladatátvevő fürtök, az Always On rendelkezésre állási csoportok vagy a PaaS-szolgáltatások beépített képességei. A NoSQL-adatbázisok hasonló fürtözési és beépített képességekkel rendelkeznek a PaaS-szolgáltatásokhoz.
Tárolás: Redundáns tárolási lehetőségek használata automatikus feladatátvétellel.
Alkalmazástervezési útmutató
A megbízhatóságot támogató tervezési minták használata mellett az öngyógyító mechanizmusok fejlesztésében segítő egyéb stratégiák a következők:
Használjon ellenőrzőpontokat a hosszú ideig futó tranzakciókhoz: Az ellenőrzőpontok rugalmasságot biztosíthatnak, ha egy hosszú ideig futó művelet meghiúsul. Amikor a művelet újraindul, például ha egy másik virtuális gép veszi fel, az az utolsó ellenőrzőponttól folytatódhat. Érdemes lehet olyan mechanizmust implementálni, amely rendszeres időközönként rögzíti a tevékenység állapotadatait. Mentse ezt az állapotot tartós tárolóba, amely a feladatot futtató folyamat bármely példánya számára elérhető. Ha a folyamat le van állítva, az elvégzett munka egy másik példány használatával folytatható az utolsó ellenőrzőpontról. Vannak olyan kódtárak, amelyek biztosítják ezt a funkciót, például az NServiceBus és a MassTransit. Transzparensen megőrzik az állapotot, ahol az intervallumok az Azure Service Bus üzenetsoraiból érkező üzenetek feldolgozásához igazodnak.
Automatizált öngyógyító műveletek implementálása: Olyan automatizált műveleteket használjon, amelyeket a monitorozási megoldás aktivál előre meghatározott állapotváltozások észlelésekor. Ha például a figyelés azt észleli, hogy egy webalkalmazás nem válaszol a kérelmekre, egy PowerShell-szkripttel automatizálhatja az appszolgáltatást. A csapat készségkészletétől és előnyben részesített fejlesztési technológiáitól függően webhookot vagy függvényt használva összetettebb automatizálási műveleteket hozhat létre. Tekintse meg az eseményalapú felhőautomatizálási referenciaarchitektúrát, amely egy függvény használatával válaszol az adatbázis-szabályozásra. Az automatizált műveletek segítségével gyorsan helyreállhat, és minimalizálhatja az emberi beavatkozás szükségességét.
Kecses lebomlási mód implementálása
Az önmegőrző és önjavító mechanizmusok ellenére előfordulhat, hogy egy vagy több összetevő olyan mértékben hibásodik meg, hogy bizonyos ideig elérhetetlenné válnak. Ezekben az esetekben ideális esetben a számítási feladat elegendő funkciót képes fenntartani ahhoz, hogy az üzleti tevékenység csökkentett állapotban folytatódjon. Ennek biztosítása érdekében tervezzen és implementáljon egy kecses lebomlási módot. Ez egy különálló munkafolyamat, amely a sikertelen összetevőkre reagálva engedélyezve van. A tervezés és megvalósítás szempontjai a következők:
- Hibaészlelés és automatikus kezdeményezés: A monitorozási és riasztási rendszereknek észlelnie kell a leromlott és sikertelen összetevőket, ezért ezek a jelek segítségével olyan munkafolyamatot hozhat létre, amely meghatározza, hogy mikor kell a kecses degradálási módra váltani. A munkafolyamatnak ezután automatikusan át kell irányítania a hívásokat az érintett összetevőkre és azokról az alternatív összetevőkre vagy más hasonló műveletekre.
- Csökkentett felhasználói élmény megvalósítása: Adjon meg egy értesítési mechanizmust a felhasználók számára a kecses degradálási módban, hogy biztosan tudják, mi marad a funkció, és mi változott. Ez általában a számítási feladat különböző funkcióihoz kapcsolódó üzenetekben jelenik meg, például egy előugró ablakban, amikor elemeket ad hozzá egy kosárhoz, például.
- Alternatív útvonalakat hozhat létre a számítási feladat alapvető funkcióinak elvégzéséhez: Tekintse át a számítási feladat kritikus folyamatait , és állapítsa meg, hogyan tarthatja fenn ezeket a folyamatokat, ha az alapvető összetevők nem érhetők el. Ha például egy adatbázis le van állítva, előfordulhat, hogy az alkalmazás gyorsítótárazott adatok használatával írásvédett módra vált. A példa további szemléltetéséhez, ha egy fizetési átjáró leállt, a gyorsítótárazott adatok használatával a felhasználók menthetik a kosárjukat, és később befejezhetik a vásárlást.
Átmeneti hibák kezelésére szolgáló mechanizmusok implementálása
Az átmeneti hibák, például a hálózati időtúllépések gyakori problémát jelentenek a felhőbeli számítási feladatok esetében, így a kezelési mechanizmusok minimalizálhatják az állásidőt és a hibaelhárítási erőfeszítéseket, miközben éles környezetben futtatja a számítási feladatokat. Mivel az átmeneti hiba miatt meghiúsuló legtöbb művelet sikeres lesz, ha elegendő idő áll rendelkezésre a művelet újrapróbálkozása előtt, az átmeneti hibák kezelésének leggyakoribb módszere az újrapróbálkozási mechanizmus használata. Az újrapróbálkozási stratégia tervezésekor vegye figyelembe a következőket:
A javaslatok és szempontok teljes áttekintéséhez tekintse meg az Átmeneti hibák tervezési útmutatóját.
Háttérfeladatok implementálása
A háttérfeladatok hatékonyan javítják a rendszer megbízhatóságát azáltal, hogy leválasztják a feladatokat a felhasználói felületről (UI). Ha nem igényel felhasználói visszajelzést vagy felhasználói visszajelzést, és nem befolyásolja a felhasználói felület válaszkészségét, valósítson meg feladatokat háttérfeladatként.
A háttérfeladatok gyakori példái a következők:
- Processzorigényes feladatok, például összetett számítások elvégzése vagy szerkezeti modellek elemzése.
- I/O-igényes feladatok, például több tárolási művelet futtatása vagy nagy fájlok indexelése.
- Batch-feladatok, például az adatok rendszeres frissítése vagy adott időpontban végzett feladatok feldolgozása.
- Hosszú ideig futó munkafolyamatok, például megrendelés teljesítése vagy szolgáltatások és rendszerek kiépítése.
A javaslatok és szempontok teljes áttekintéséhez tekintse meg a háttérfeladatok tervezési útmutatóját.
Az Azure megkönnyítése
A legtöbb Azure-szolgáltatás és ügyféloldali SDK tartalmaz újrapróbálkozési mechanizmust. Ezek azonban eltérnek, mivel mindegyik szolgáltatás különböző jellemzőkkel és követelményekkel rendelkezik, ezért minden újrapróbálkozásos mechanizmus egy adott szolgáltatásra van hangolva. További információ: Javaslatok átmeneti hibakezeléshez.
Az Azure Monitor műveletcsoportjaival értesítéseket , például e-maileket, hangüzeneteket vagy SMS-eket jeleníthet meg, és automatikus műveleteket indíthat el. Ha értesítést kap egy hibáról, aktiváljon egy Azure Automation-runbookot, az Azure Event Hubsot, egy Azure-függvényt, egy logikai alkalmazást vagy egy webhookot egy automatikus javítási művelet végrehajtásához.
Example
Például néhány minta használati eseteit a .NET megbízható webalkalmazás-mintájában tekinthet meg. Kövesse az alábbi lépéseket egy referencia-implementáció üzembe helyezéséhez.
Kapcsolódó hivatkozások
- Megbízhatósági minták
- Átmeneti hibák kezelése
- Háttérfeladatok fejlesztése
- Felhőtervezési minták
- Tervezés öngyógyításhoz
Megbízhatósági ellenőrzőlista
Tekintse meg a javaslatok teljes készletét.