Megbízhatósági tesztelési stratégia kialakítására vonatkozó javaslatok
Az Azure Well-Architected Framework megbízhatósági ellenőrzőlistájára vonatkozó javaslatra vonatkozik:
RE:08 | Tesztelje a rugalmasságot és a rendelkezésre állási forgatókönyveket a káosztervezés alapelveinek alkalmazásával a teszt- és éles környezetekben. A teszteléssel biztosíthatja, hogy a kecses teljesítménycsökkenés implementálási és skálázási stratégiái hatékonyak legyenek az aktív hibás működés és a szimulált terheléstesztelés végrehajtásával. |
---|
Ez az útmutató a számítási feladatok megbízhatóságának ellenőrzésére és optimalizálására szolgáló megbízhatósági tesztelési stratégia kialakítására vonatkozó javaslatokat ismerteti. A megbízhatósági tesztelés a számítási feladatok rugalmasságára és rendelkezésre állására összpontosít, különösen azokra a kritikus folyamatokra, amelyeket a megoldás tervezésekor azonosít. Ez az útmutató általános tesztelési útmutatót és útmutatást nyújt, amely a hibainjektálásra és a káosztervezésre vonatkozik.
Definíciók
Időszak | Definíció |
---|---|
Rendelkezésre állás | Az az idő, amely alatt az alkalmazás számítási feladatai kifogástalan állapotban futnak jelentős állásidő nélkül. |
Véletlenszerű tesztelés | Az alkalmazások és szolgáltatások valós stressznek és hibáknak való alávetésének gyakorlata. A káosztervezés célja a megbízhatatlan feltételekkel és a hiányzó függőségekkel szembeni rugalmasság kiépítése és ellenőrzése. |
Hibainjektálás | A rendszer rugalmasságának tesztelésére irányuló hiba bevezetése. |
Helyreállíthatóság | A rugalmasság szinonimája. |
Rugalmasság | Az alkalmazás számítási feladatai képesek ellenállni a meghibásodási módoknak és helyreállni. |
Kulcsfontosságú tervezési stratégiák
Általános tesztelési útmutató
Rendszeresen végezzen tesztelést a meglévő küszöbértékek, célok és feltételezések ellenőrzéséhez. Ha jelentős változás történik a számítási feladatban, futtassa a rendszeres tesztelést. A legtöbb tesztelést a tesztelési és előkészítési környezetekben végezheti el. Emellett hasznos a tesztek egy részhalmazának futtatása az éles rendszeren. Tervezze meg a kulcsfontosságú tesztkörnyezetek egy-az-egyhez paritását az éles környezettel.
Automatizálja a tesztelést a tesztelés konzisztens lefedettségének és reprodukálhatóságának biztosítása érdekében. Automatizálhatja a gyakori tesztelési feladatokat, és integrálhatja őket a buildfolyamatokba. A szoftver manuális tesztelése fárasztó és hibaérzékeny, de manuális feltáró tesztelést is végezhet. Azokban az esetekben, amikor automatizált tesztelést kell fejlesztenie, manuális tesztelés használatával határozza meg a fejlesztendő tesztek hatókörét.
A rugalmas és rendelkezésre állási tesztek végrehajtásához a fejlesztési ciklus korai szakaszában alkalmazza a balról balra tartó tesztelési megközelítést.
Adaptáljon egy egyszerű dokumentációs formátumot, így mindenki könnyen megértheti az egyes rendszeres tesztek folyamatát és eredményeit.
Ossza meg a dokumentált eredményeket a megfelelő csapatokkal, például az operatív csapatokkal, a technológiai vezetőkkel, az üzleti érdekelt felekkel és a vészhelyreállítási érdekelt felekkel. Az eredményeknek tájékoztatniuk kell a megbízhatósági célok pontosítását, például a szolgáltatásiszint-célkitűzéseket (SLO-kat), a szolgáltatói szerződéseket (SLA-kat), a helyreállítási időkorlátokat (KPO-kat) és a helyreállításipont-célkitűzéseket (RPO-kat).
Hozzon létre egy rendszeres tesztelési ütemezést a biztonsági mentésekhez. Állítsa vissza az adatokat elkülönített rendszerekre, hogy a biztonsági másolatok érvényesek legyenek, és hogy a visszaállítások működőképesek legyenek.
Dokumentálja és ossza meg a helyreállítási idő metrikáit a vészhelyreállítási érdekelt felekkel, hogy a helyreállítással kapcsolatos elvárások megfelelőek legyenek.
Az iparági szabványoknak megfelelő üzembehelyezési tesztelési eljárások segítségével biztosíthatja, hogy automatizált, kiszámítható és hatékony üzembe helyezési folyamatokkal rendelkezzen.
Tesztelje, hogy a számítási feladat képes-e ellenállni az átmeneti hibáknak. További információ: Javaslatok átmeneti hibák kezelésére.
Tesztelje, hogy a számítási feladat képes-e reagálni a terhelési minták változásaira és a használati csúcsokra. Ez az információ segít a skálázási stratégia tesztelésében. A terhelés- és stressztesztelésről további információt a Tesztelési javaslatok című témakörben talál.
Tesztelje, hogyan kezeli a számítási feladat a függő szolgáltatásokban vagy más függőségekben előforduló hibákat hibainjektálás használatával.
Tesztelje és ellenőrizze, hogy az önjavító és önmegőrző kialakítás hogyan reagál a hibás működésre. Automatizált és manuális helyreállítási műveletek tesztelése.
Tesztelje vészhelyreállítási tervét , hogy reagáljon a katasztrofális hibákra és más jelentős eseményekre.
Tesztelje a számítási feladat azon képességét, hogy zökkenőmentesen csökkenjen, és hibainjektálással minimalizálja az alkatrészek meghibásodásának robbanási sugarát.
Kihasználhatja a tervezett és nem tervezett kimaradások előnyeit
Ha a számítási feladat tervezett karbantartás vagy nem tervezett üzemkimaradás miatt offline állapotban van, egyedülálló lehetőség van a tesztelés elvégzésére és a számítási feladatok jobb megértésére. Az alábbi szakaszok az egyes forgatókönyvekhez nyújtanak javaslatokat.
Tervezett karbantartás
Ha tervezett karbantartási időszakokkal rendelkezik a frissítésekhez vagy javításokhoz, tesztelheti azokat az összetevőket és folyamatokat, amelyek nem vesznek részt a karbantartási munkában. Teszteket végezhet anélkül, hogy a számítási feladat váratlanul leromlott lenne, vagy teljesen offline állapotba lenne állítva. Ha a karbantartási időszak alatt elegendő ideje van, tesztelheti a karbantartásban részt vevő összetevőket és folyamatokat is a karbantartási munka befejezése után.
Nem tervezett szolgáltatáskimaradás
Az alábbi, prioritás szerint rendezett lépések végrehajtásával minden szolgáltatáskimaradási incidenssel többet tudhat meg a számítási feladatról, és javíthatja rugalmasságát:
A számítási feladat online állapotba kerülése az ügyfelek számára. Ehhez elvégezhet egy áthidaló megoldást a problémára, megoldhatja a problémát, vagy elindíthatja a helyreállítási folyamatokat.
Határozza meg a szolgáltatáskimaradás kiváltó okát, és hárítsa el. Ha a vizsgálat részeként meg tudja oldani a kiváltó okot, dokumentálja a kiváltó okot és a javításhoz megtett intézkedéseket. Ha a probléma egy későbbi időpontban további karbantartási időszakot igényel, győződjön meg arról, hogy a kockázatcsökkentési intézkedések megfelelően tudják kezelni a várt terhelést. Ehhez alaposan tesztelje azt. Győződjön meg arról, hogy elegendő monitorozást állított be a kockázatcsökkentési intézkedések fedezésére.
Ha lehetséges, keresse meg ugyanazokat a problémákat vagy konfigurációs hiányosságokat, amelyeket hasonló problémák érinthetnek a számítási feladat összes összetevőjében. Használja ki ezt a lehetőséget, hogy proaktívan kezelje ezeket az összetevőket. Tekintse át az incidenselőzményeket, és észlelje a számítási feladat hasonló problémáinak mintáit.
Az eredmények segítségével javíthatja a tesztelési stratégiát. Győződjön meg arról, hogy sikeresen megoldotta a kiváltó okot és a hasonló problémákat ugyanazon hiba közvetlen tesztelésével.
Hibainjektálási és káosztervezési útmutató
A hibainjektálási tesztelés a káosztervezés alapelveit követi, kiemelve, hogy a számítási feladat képes reagálni az összetevők hibáira. Üzem előtti és éles környezetekben végezze el a hibainjektálási tesztelést. Tesztelés alkalmazása az infrastruktúra- és alkalmazásrétegekre. Alkalmazza a megismert, hibamód-elemzés végrehajtására vonatkozó javaslatokat , hogy csak azokat a hibákat tesztelje, amelyeket rangsorol, és hogy rendelkezik-e a hibák kezelésére szolgáló kockázatcsökkentési stratégiával. A káosztervezés fő irányelvei a következők:
Legyen proaktív. Ne várjon, amíg hibák történnek. A hibák előrejelzéséhez végezzen káoszkísérleteket a problémák felderítéséhez és kijavításához, mielőtt azok hatással lennének az éles környezetre.
Fogadja el a hibát. Fogadja el és tanuljon a rendszerben előforduló hibákból. A hibákat az összetett rendszerek természetes részének tekintheti, és felhasználhatja őket a rendszer megbízhatóságának megismerésére és javítására.
Megszakítja a rendszert. A rugalmasság teszteléséhez szándékosan szúrjon be hibákat vagy stresszt a rendszerbe. Valós hibák vagy fennakadások szimulálása a számítási feladat helyreállítási képességeinek teszteléséhez és javításához.
Azonosítsa és kezelje a meghibásodási pontok korai szakaszát. A tesztelés során tekintse át és frissítse a hibamód-elemzést a hibák ellenőrzéséhez és kezeléséhez a dokumentációban. A számítási feladatok rendelkezésre állásának növelése és az állásidő minimalizálása érdekében alkalmazza a megbízhatósági megközelítéseket, például a redundanciát és a szegmentálást.
Telepítse a védőkorlátokat és a kecses kockázatcsökkentést. A rendelkezésre állás növelése érdekében implementáljon biztonsági intézkedéseket, például az áramkör-megszakító mintát vagy a szabályozási mintát. A hibák során az üzletmenet folytonosságát lehetővé tevő, kecses teljesítménycsökkenési megközelítések implementálása.
Minimalizálja a robbanási sugarat. Alkalmazzon hibaelkülönítési stratégiákat annak érdekében, hogy a hatóköre még meghibásodás esetén is korlátozott legyen. A rendszer továbbra is minimális hatással van az ügyfelekre.
Építsd ki az immunitást. Káoszmérnöki kísérletek használatával javíthatja a számítási feladatok meghibásodások megelőzésére és helyreállítására való képességét.
A káosztechnika a számítási feladatok csapatkultúrájának szerves része, és egy folyamatos gyakorlat, nem pedig egy rövid távú taktikai erőfeszítés egyetlen szolgáltatáskimaradásra válaszul. Kövesse ezt a standard módszert a káoszkísérletek tervezésekor:
- Kezdje egy hipotézissel. Minden kísérletnek egyértelmű céllal kell rendelkeznie, például tesztelnie kell egy adott folyamat azon képességét, hogy ellenálljon egy adott összetevő elvesztésének.
- Az alapkonfiguráció viselkedésének mérése. Győződjön meg arról, hogy konzisztens megbízhatósági és teljesítménymetrikákkal rendelkezik az adott kísérletben részt vevő folyamathoz és összetevőkhöz, hogy összehasonlíthassa a csökkentett teljesítményű állapotot a kísérlet futtatásakor.
- Hiba vagy hibák beszúrása. A kísérletnek szándékosan olyan összetevőket kell céloznia, amelyek gyorsan helyreállíthatók, és tájékozott elvárásnak kell lennie arról, hogy a hibainjektálás milyen hatással lesz a kísérlet robbanási sugarának szabályozására.
- Az eredményként kapott viselkedés monitorozása. Gyűjtsön telemetriai adatokat az egyes folyamatösszetevőkről és a végpontok közötti folyamat viselkedéséről, amelyeket a kísérlet a hiba hatásainak megfelelő megértésére céloz. Hasonlítsa össze a gyűjtött metrikákat az alapkonfiguráció metrikáival, hogy teljes képet kapjon a hibainjektálási eredményekről.
- Dokumentálja a folyamatot és a megfigyeléseket. Ha részletes nyilvántartást vezet a kísérletekről, azzal tájékoztatja a jövőbeli döntéseket a számítási feladatok tervezéséről, biztosítva, hogy orvosolja az idővel feltárt hiányosságokat.
- Azonosítsa az eredményt, és cselekedjen. Tervezze meg a javítási lépéseket, amelyeket továbbfejlesztésekként adhat hozzá a számítási feladatok hátralékához. Győződjön meg arról, hogy a tervfejlesztési terveket a többi üzemelő példány folyamatainak megfelelően felülvizsgálják és tesztelik nem éles környezetekben.
Rendszeres időközönként ellenőrizze a folyamatot, az architektúra-döntéseket és a kódot, hogy gyorsan észlelje a műszaki adósságot, integrálja az új technológiákat, és alkalmazkodjon a változó követelményekhez.
Hibainjektálási kísérletek végrehajtásakor:
- Győződjön meg arról, hogy a figyelés működik, és a riasztások be vannak állítva.
- Ellenőrizze a közvetlenül felelős személy (DRI) hozzárendelésének folyamatát egy incidens tulajdonjogának átvétele érdekében.
- Győződjön meg arról, hogy a dokumentáció és a vizsgálati folyamatok naprakészek.
Integrálja az alábbi javaslatokat és szempontokat a káosztesztelési stratégia optimalizálásához:
A rendszer előfeltételeinek kivetése. A teszteléssel megpróbálja javítani a számítási feladatok rugalmasságát és a számítási feladatok tervezési stratégiáit. Keresse meg azokat a lehetőségeket, amelyekkel hibákat szúrhat be olyan összetevőkbe és folyamatokba, amelyekről feltételezi, hogy megbízhatóak a korábbi tapasztalatok alapján. Előfordulhat, hogy nem megbízhatók az új számítási feladatban.
Ellenőrizze a módosításokat, például a topológiát, a platformot és az erőforrásokat. Alapos tesztelés nélkül, beleértve a hibainjektálási tesztelést, előfordulhat, hogy a módosítások elvégzése után hiányos képet ad a számítási feladatról. Előfordulhat például, hogy véletlenül új függőségeket vezet be, vagy megszakítja a meglévő függőségeket olyan módokon, amelyek nem jelennek meg azonnal.
Használjon SLA-puffereket. Korlátozza a káosztesztelést, hogy az SLA-kon belül maradjon, és elkerülje a kimaradásokból származó potenciális hírnevet vagy pénzügyi hatásokat. A folyamat- és összetevő-helyreállítási célok segítenek meghatározni a tesztelés hatókörét.
Hozzon létre egy hibakeretet a káosz és a hibainjektálás befektetéseként. A hibakeret a különbség az SLO 100%-ának elérése és az SLO-ban elfogadott megállapodás elérése között.
Állítsa le a kísérletet, ha túllép a hatókörön. Az ismeretlen eredmények a káoszkísérletek várt eredményei. Törekedjen arra, hogy egyensúlyt teremtsen a jelentős eredményadatok gyűjtése és a lehető legkevesebb éles felhasználót érintő adatok között.
Szorosan együttműködik a fejlesztői csapatokkal az injektált hibák relevanciájának biztosítása érdekében. Használjon korábbi incidenseket vagy problémákat útmutatóként. Vizsgálja meg a függőségeket, és értékelje ki az eredményeket, amikor eltávolítja ezeket a függőségeket.
Azonosíthatja és dokumentálhatja a számítási feladat különböző összetevői között korábban felderítetlen függőségeket, amelyek káosztesztelés során derülnek ki.
Szükség szerint módosítsa a helyreállítási terveket, hogy figyelembe vegyék a káosztesztelés során felfedezett függőségeket.
Használja a kísérletek és tesztek eredményeit az új kísérletek és tesztek alapjául. A váratlan viselkedések felmerülésekor az új tesztek közvetlenül megcélozhatják ezeket a viselkedéseket, és lehetővé teszik, hogy javítási stratégiákat tervezzen hozzájuk.
Kompromisszum: A hibainjektálás éles környezetben történő tesztelése zavaró lehet, és állásidőt okozhat. Legyen átlátható az érdekeltekkel ennek a lehetőségnek a kapcsán, és győződjön meg arról, hogy rendelkezik biztosítékokkal a kísérletek leállításához és a tervek visszaállításához a bevezetett hibák gyors visszafordítása érdekében. A nem tervezett üzemkimaradások elleni védelem érdekében győződjön meg arról, hogy megfelelő redundanciát tervez, és hogy az érdekelt felek tisztában legyenek a költségekkel.
Azure-beli segítségnyújtás
Az Azure Test Plans egy könnyen használható, böngészőalapú tesztkezelési megoldás, amely biztosítja a tervezett manuális teszteléshez, a felhasználói elfogadás teszteléséhez, a feltáró teszteléshez és az érdekelt felek visszajelzéseinek gyűjtéséhez szükséges összes képességet.
Az Azure Chaos Studio egy felügyelt szolgáltatás, amely káosztervezést használ a felhőalkalmazások és -szolgáltatások rugalmasságának méréséhez, megértéséhez és javításához. Az Azure Chaos Studio általánosan elérhetővé vált az Ignite 2023-ban, és számos funkcióval rendelkezik, amelyek segítségével megkezdheti a hibainjektálást és a rugalmassági tesztelést az alkalmazáshoz az Azure-infrastruktúrával.
Kapcsolódó hivatkozások
- Azure-alkalmazások biztonsági mentése és vészhelyreállítása
- Megbízhatósági tesztelés ellenőrzőlistája
- Alkalmazások tesztelése a rendelkezésre állás és a rugalmasság érdekében
Megbízhatósági ellenőrzőlista
Tekintse meg a javaslatok teljes készletét.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: