Megbízhatósági tervezési alapelvek

A szolgáltatáskimaradások és az üzemzavarok minden számítási feladat esetében komoly problémát jelentenek. A megbízható számítási feladatoknak túlélniük kell ezeket az eseményeket, és továbbra is folyamatosan biztosítaniuk kell a kívánt funkciókat. Rugalmasnak kell lennie, hogy elfogadható időn belül észlelhesse, ellenálljon és helyre tudja állítani a hibákat. Annak is elérhetőnek kell lennie, hogy a felhasználók az ígért minőségi szinten elérhessék a számítási feladatot az ígért időszakban.

Nem reális feltételezni, hogy a hibák nem fordulnak elő, különösen akkor, ha a számítási feladat elosztott rendszereken való futtatásra épül. Előfordulhat, hogy egyes összetevők meghibásodnak, míg mások továbbra is működnek. Egy bizonyos ponton ez hatással lehet a felhasználói élményre, ami veszélyezteti az üzleti célokat.

A számítási feladatok architektúráinak megbízhatósági garanciával kell rendelkezniük az alkalmazáskód, az infrastruktúra és a műveletek terén. A tervezési lehetőségek nem módosíthatják az üzleti követelmények által meghatározott szándékot. Az ilyen változtatásokat jelentős kompromisszumnak kell tekinteni.

A tervezési alapelvek célja, hogy útmutatást nyújtsanak a megbízhatóság olyan aspektusaihoz, amelyeket a fejlesztési életciklus során figyelembe kell vennie. Kezdje az ajánlott módszerekkel, és igazolja a követelmények egy csoportjának előnyeit. A stratégia beállítása után a megbízhatósági ellenőrzőlista használatával hajthat végre műveleteket.

Ha nem alkalmazza ezeket az alapelveket a tervezésre, a számítási feladat valószínűleg nem lesz felkészülve az éles környezetben felmerülő problémák előrejelzésére vagy kezelésére. Az eredmény lehet szolgáltatáskimaradások, amelyek pénzügyi veszteséghez vezetnek. Kritikus számítási feladatok esetén az alapelvek alkalmazásának elmulasztása veszélyeztetheti a biztonságot.

Tervezés üzleti követelményekhez

Cél ikon Gyűjtse össze az üzleti követelményeket, és koncentráljon a számítási feladat kívánt hasznosságára.

A követelményeknek ki kell terjedniük a felhasználói élményre, az adatokra, a munkafolyamatokra és a számítási feladatokra jellemző jellemzőkre. A követelményekkel kapcsolatos folyamat eredményének egyértelműen meg kell adnia az elvárásokat. A céloknak elérhetőnek kell lenniük, és egyeztetni kell a csapattal, adott befektetést figyelembe véve. Dokumentálni kell őket a technológiai döntések, implementációk és műveletek ösztönzéséhez.

Módszer Előny
A siker számszerűsítése az egyes összetevők, rendszerfolyamatok és a rendszer egésze mutatóinak meghatározásával. Ezek a célok megbízhatóbbá teszik a felhasználói folyamatokat? A metrikák számszerűsítik a várakozásokat. Lehetővé teszik az összetettségek megértését és annak meghatározását, hogy az ilyen összetettségek alsóbb rétegbeli költségei a befektetési korláton belül vannak-e.

A célértékek ideális állapotot jeleznek. Az értékeket tesztelési küszöbértékként használhatja, amelyek segítenek észlelni az állapottól való eltéréseket , és hogy mennyi ideig tart a célállapotba való visszatérés.

A megfelelőségi követelményeknek kiszámítható eredményekkel kell rendelkezniük a hatókörön belüli folyamatok esetében is. A folyamatok rangsorolása a legérzékenyebb területekre is felhívja a figyelmet.
A platformmal kapcsolatos kötelezettségvállalások ismertetése. Vegye figyelembe a szolgáltatások korlátait, kvótáit, régióit és kapacitáskorlátait . A szolgáltatói szerződések (SLA-k) szolgáltatásonként eltérőek. Nem minden szolgáltatásra és szolgáltatásra vonatkozik egyformán. Nem minden szolgáltatás vagy szolgáltatás érhető el minden régióban. Az előfizetési erőforráskorlátok többsége régiónként van megadva. Ha jól ismeri a lefedettséget és a korlátokat , könnyebben észlelheti az eltérést, és rugalmasságot és helyreállítási mechanizmusokat építhet ki.
A függőségek és azok rugalmasságra gyakorolt hatásának meghatározása. A más csapatok vagy harmadik felek által fejlesztett függő infrastruktúra, szolgáltatások, API-k és funkciók nyomon követésével meghatározhatja, hogy a számítási feladat működhet-e ezek nélkül a függőségek nélkül. Emellett segít a kaszkádolt hibák megértésében és az alárendelt műveletek javításában.

A fejlesztők rugalmas kialakítási mintákat alkalmazhatnak a lehetséges hibák kezelésére, ha olyan külső szolgáltatásokat használ, amelyek ki lehetnek téve a hibáknak.

Tervezés a rugalmasság érdekében

Cél ikon A számítási feladatnak továbbra is teljes vagy csökkentett funkcionalitással kell működnie.

Az összetevők meghibásodására, platformkimaradásokra, teljesítménycsökkenésre, korlátozott erőforrás-rendelkezésre állásra és egyéb hibákra számíthat. Rugalmasságot építhet ki a rendszerben, hogy hibatűrő legyen, és zökkenőmentesen csökkenjen.

Módszer Előny
A kritikus útvonalon lévő összetevők megkülönböztetése a csökkentett teljesítményű állapotban használható összetevőktől. A számítási feladat nem minden összetevőjének kell egyformán megbízhatónak lennie. A kritikusság meghatározása segít az egyes összetevők kritikusságának megfelelő tervezésben. Nem fogja túlterjeszkedni az olyan összetevők rugalmasságát, amelyek némileg ronthatják a felhasználói élményt, szemben azokkal az összetevőkkel, amelyek meghibásodásuk esetén végpontok közötti problémákat okozhatnak.

A kialakítás hatékony lehet az erőforrások kritikus összetevőkhöz való kiosztásában. Hibaelkülönítési stratégiákat is implementálhat, hogy ha egy nem kritikus összetevő meghibásodik vagy csökkentett teljesítményű állapotba kerül, elkülöníthető a kaszkádolt hibák megelőzése érdekében.
Azonosítsa a rendszer lehetséges meghibásodási pontjait, különösen a kritikus összetevők esetében, és határozza meg a felhasználói folyamatokra gyakorolt hatást. Elemezheti a hibaeseteket, a robbanási sugarat és a hiba intenzitását: teljes vagy részleges leállást. Ez az elemzés az összetevő szintjén befolyásolja a hibakezelési képességek kialakítását.
Önmegőrző képességeket építhet ki a tervezési minták helyes használatával, és modularizálja a kialakítást a hibák elkülönítéséhez. A rendszer képes lesz megakadályozni, hogy egy probléma hatással legyen az alsóbb rétegbeli összetevőkre. A rendszer képes lesz enyhíteni az átmeneti és állandó hibákat, a teljesítmény szűk keresztmetszeteit és a megbízhatóságot esetlegesen befolyásoló egyéb problémákat.

A robbanási sugarat is minimalizálhatja.
Adja hozzá a kritikus összetevők (alkalmazás és infrastruktúra) vertikális felskálázásának képességét a támogatott régiókban lévő szolgáltatások kapacitáskorlátainak figyelembevételével. A számítási feladat képes lesz kezelni a változó kapacitási csúcsokat és ingadozásokat. Ez a képesség kritikus fontosságú, ha váratlan terhelés van a rendszeren, például az érvényes használat megugrása esetén. Ha a számítási feladat több régióra való felskálázásra van tervezve, akkor akár az egyetlen régióban felmerülő esetleges ideiglenes erőforrás-kapacitáskorlátokat vagy egyéb problémákat is elháríthatja.
Redundancia létrehozása rétegekben és rugalmasság a különböző alkalmazásszinteken.

A fizikai segédprogramok redundanciáját és az azonnali adatreplikálást célozza meg. A szolgáltatásokkal, műveletekkel és személyzettel foglalkozó funkcionális réteg redundanciára is törekszik.
A redundancia segít minimalizálni a meghibásodási pontok számát. Ha például egy összetevő, zónaszintű vagy regionális kimaradás van, a redundáns üzembe helyezés (aktív-aktív vagy aktív-passzív) lehetővé teszi az üzemidő-célok teljesítését.

A közvetítők hozzáadása megakadályozza az összetevők közötti közvetlen függőséget, és javítja a pufferelést. Mindkét előny megkeményíti a rendszer rugalmasságát.
Túlépítés a redundáns példányok egyéni hibáinak azonnali mérséklése és az elszabadult erőforrás-használat elleni pufferelés érdekében. A túlépítésbe való nagyobb befektetés növeli a rugalmasságot.

A rendszer aktív hiba esetén is teljes segédprogrammal működik, még mielőtt a méretezési műveletek megkezdhetik a hiba elhárítását. Hasonlóképpen csökkentheti annak kockázatát, hogy a rendszerhibák vagy az agresszív skálázás előtt a tervezett puffert visszaigényelő, váratlanul elszabadult erőforrás-használat kritikus osztályozási időt nyerjen.

Helyreállítás tervezése

Cél ikon A számítási feladatnak képesnek kell lennie a legtöbb hiba előrejelzésére és helyreállítására minden nagyságrendben, a felhasználói élmény és az üzleti célok minimális zavarával.

Még a rendkívül rugalmas rendszereknek is katasztrófa-felkészültségi megközelítésekre van szükségük az architektúratervezés és a számítási feladatok műveletei során. Az adatrétegben olyan stratégiákkal kell rendelkeznie, amelyek javíthatják a számítási feladatok állapotát sérülés esetén.

Módszer Előny
Strukturált, tesztelt és dokumentált helyreállítási tervekkel rendelkezik, amelyek igazodnak a egyeztetett helyreállítási célokhoz. A terveknek a rendszer egészén kívül minden összetevőre ki kell terjedniük. A jól definiált folyamat gyors helyreállítást eredményez, amely megakadályozhatja a vállalkozás pénzügyeinek és hírnevének negatív hatását. A rendszeres helyreállítási próbák elvégzése a rendszerösszetevők, az adatok, valamint a feladatátvételi és feladat-visszavételi lépések helyreállításának folyamatát teszteli, hogy elkerülje a félreértéseket, amikor az idő és az adatintegritás a siker fő mértéke.
Győződjön meg arról, hogy a helyreállítási célokon belül az összes állapotalapú összetevő adatait ki tudja javítani . A biztonsági mentések elengedhetetlenek ahhoz, hogy a rendszer működőképes állapotba lépjen egy megbízható helyreállítási ponttal, például az utolsó ismert jó állapottal.

A nem módosítható és tranzakciós szempontból konzisztens biztonsági másolatok biztosítják, hogy az adatok ne módosíthatók legyenek, és hogy a visszaállított adatok ne sérüljenek.
Automatizált önjavítási képességek implementálása a tervezésben. Ez az automatizálás csökkenti a külső tényezők, például az emberi beavatkozás kockázatait, és lerövidíti a törésjavítási ciklust.
Cserélje le az állapot nélküli összetevőket nem módosítható rövid élettartamú egységekre. A rövid élettartamú egységek igény szerinti üzembe helyezése és megsemmisítése ismételhetőséget és konzisztenciát biztosít. Párhuzamos üzembehelyezési modellek használatával növekményessé teheti az új egységekre való áttérést, minimalizálva a fennakadásokat.

Tervezzen műveletekhez

Cél ikon A műveletekben balra tolódik a hibaállapotok előrejelzéséhez.

A fejlesztési életciklus korai és gyakran előforduló hibáinak tesztelése , valamint a teljesítmény megbízhatóságra gyakorolt hatásának meghatározása. A kiváltó okok elemzése és a postmortems érdekében meg kell osztania a függőségi állapotot és a folyamatban lévő hibákat a csapatok között. A megfigyelhető rendszerekből származó megállapítások, diagnosztikák és riasztások alapvető fontosságúak a hatékony incidenskezelés és a folyamatos fejlesztés szempontjából.

Módszer Előny
Megfigyelhető rendszereket hozhat létre , amelyek korrelálhatják a telemetriát. A monitorozás és a diagnosztika kulcsfontosságú műveletek. Ha valami meghibásodik, tudnia kell, hogy sikertelen volt, mikor és miért hiúsult meg. Az összetevők szintjén a megfigyelhetőség alapvető, de az összetevők és a korrelált felhasználói folyamatok összesített megfigyelhetősége holisztikus képet nyújt az állapotról. Ezekre az adatokra azért van szükség, hogy a helymegmegfelelõ mérnökök rangsorolhassák a szervizelésre irányuló erőfeszítéseiket.
Előrejelezheti a lehetséges meghibásodásokat és a rendellenes viselkedést. Fontossági sorrendbe helyezett és végrehajtható riasztások használatával láthatóvá teheti az aktív megbízhatósági hibákat.

Olyan megbízható folyamatokba és infrastruktúrába fektethet be, amelyek gyorsabb osztályozást eredményeznek.
A webhely-megbízhatósági mérnökök azonnal értesítést kapnak, hogy mérsékelhessék a folyamatban lévő élő webhelyeseményeket , és proaktív módon mérsékelhessék a prediktív riasztások által azonosított lehetséges hibákat, mielőtt élő incidensekké válnának.
Hibák szimulálása és tesztek futtatása éles és éles környezetben. Előnyös az éles környezetben előforduló hibák észlelése, hogy reális elvárásokat állítson be a helyreállításhoz. Ez lehetővé teszi, hogy olyan tervezési döntéseket hozzon, amelyek kecsesen reagálnak a hibákra. Emellett lehetővé teszi az üzleti metrikákhoz beállított küszöbértékek tesztelését is.
Az automatizálást szem előtt tartva hozhat létre összetevőket, és a lehető legtöbb automatizálást végezheti el. Az automatizálás minimalizálja az emberi hibák lehetőségét, és konzisztenciát biztosít a teszteléshez, az üzembe helyezéshez és a műveletekhez.
A rutinműveletek tényezője és a rendszer stabilitására gyakorolt hatásuk . Előfordulhat, hogy a számítási feladathoz folyamatban lévő műveletek tartoznak, például az alkalmazásváltozatok, a biztonsági és megfelelőségi auditok, az összetevők frissítései és a biztonsági mentési folyamatok. A módosítások vizsgálata biztosítja a rendszer stabilitását.
Folyamatosan tanuljon az éles környezetben történt incidensekből. Az incidensek alapján meghatározhatja a tervezés és a műveletek hatását és felügyeletét, amelyek az előgyártás során észrevétlenek lehetnek. Végső soron valós eseményeken alapuló fejlesztéseket hajthat végre.

Legyen egyszerű

Cél ikon Kerülje az architektúraterv, az alkalmazáskód és a műveletek túltervezését.

Gyakran ez az, amit eltávolít ahelyett, amit hozzáad, ami a legmegbízhatóbb megoldásokhoz vezet. Az egyszerűség csökkenti az irányítás felületét, minimalizálja a hatékonysági hiányosságokat és a lehetséges helytelen konfigurációkat vagy a váratlan interakciókat. Másrészt az túlsimítás egyetlen meghibásodási pontot is jelenthet. Kiegyensúlyozott megközelítés fenntartása.

Módszer Előny
Csak akkor adjon hozzá összetevőket az architektúrához, ha segítenek elérni a cél üzleti értékeket. Tartsa a kritikus útvonalat soványnak. Az üzleti követelmények megtervezése egyszerű megoldáshoz vezethet, amely könnyen implementálható és kezelhető. Kerülje a túl sok kritikus összetevőt, mert mindegyik jelentős meghibásodási pont.
Szabványokat hozhat létre a kód implementálásában, üzembe helyezésében és folyamataiban, és dokumentálja őket. A szabványok érvényesítésének lehetőségeinek azonosítása automatizált érvényesítésekkel. A szabványok konzisztenciát biztosítanak, és minimalizálják az emberi hibákat. Az olyan megközelítések, mint a szabványos elnevezési konvenciók és a kódstílus-útmutatók segíthetnek a minőség fenntartásában, és megkönnyítik az objektumok azonosítását a hibaelhárítás során.
Értékelje ki, hogy az elméleti megközelítések a használati esetekre vonatkozó gyakorlati kialakításra vonatkoznak-e. A túl részletes alkalmazáskód szükségtelen függőséghez, extra műveletekhez és nehéz karbantartáshoz vezethet.
Dolgozzon ki elég kódot. Meg tudja akadályozni a nem hatékony implementációkból eredő problémákat, például a váratlan erőforrás-használatot, a felhasználói vagy adatfolyam-hibákat és a kódhibákat.

Ezzel szemben a megbízhatósági problémáknak kód-felülvizsgálatokhoz kell vezetnie, hogy a kód elég rugalmas legyen a problémák kezeléséhez.
Használja ki a platform által biztosított funkciókat és az előre összeállított eszközöket, amelyek segítenek hatékonyan teljesíteni az üzleti célokat. Ez a megközelítés minimálisra csökkenti a fejlesztési időt. Emellett a hasonló számítási feladatokhoz használt kipróbált és tesztelt eljárásokra is támaszkodhat .

Következő lépések