Megbízhatósági tervezési elvek

Az üzemkimaradá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 kell élnie ezeket az eseményeket, és továbbra is folyamatosan biztosítaniuk kell a kívánt funkciókat. Rugalmasnak kell lennie, hogy képes legyen észlelni és ellenállni a hibáknak, miközben továbbra is működik. Helyreállíthatónak kell lennie, hogy ha egy fennakadás meghaladja a rugalmassági intézkedéseket, a számítási feladat visszaállítható legyen a jóváhagyott helyreállítási célokon belül. Annak is elérhetőnek kell lennie, hogy a felhasználók az ígért időszakban az ígért minőségi szinten férhessenek hozzá a számítási feladathoz.

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. Egyes összetevők meghiúsulhatnak, míg mások továbbra is működnek. Egy bizonyos ponton a felhasználói élmény is érintett lehet, 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ódban, az infrastruktúrában és a műveletekben. A tervezési lehetőségek nem módosíthatják az üzleti követelmények által meghatározott szándékot. Ezeket a változá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 megközelítésekkel, és indokolja a követelmények egy csoportjának előnyeit. A stratégia beállítása után hajtson végre műveleteket a megbízhatósági ellenőrzőlista használatával.

Ha nem alkalmazza ezeket az alapelveket a tervezésre, a számítási feladat valószínűleg nem készül fel az éles környezetben felmerülő problémák előrejelzésére vagy kezelésére. Ennek eredménye a szolgáltatás megszakadása lehet, ami pénzügyi veszteséghez vezethet. Kritikus számítási feladatok esetén, ha elmulasztják ezeknek az alapelveknek az alkalmazását, az veszélyeztetheti a biztonságot.

Tervezés az üzleti követelményekhez

Cél ikon Egyértelművé teszi a számítási feladatok hatókörét, a felhasználók növekedését, és ami a legfontosabb, hogy a csapat ígéretet tett a külső ügyfeleknek és a belső érdekelt feleknek.

A tervezés nem definiált vagy homályos eredményeken alapuló becslés. A megbízhatósághoz olyan szándékos tevékenységre van szükség, amely megfelel az elfogadható felhasználói élménynek, a tervezési korlátozásoknak, valamint a sikerességnek és a mérés módjának.

Világos, megvalósítható és dokumentált célokat tűzött ki, egyeztetett az üzleti érdekelt felekkel, és reális befektetésre és előrejelzésre alapozott. Ezek a követelmények közvetlenül tájékoztatják az architektúraválasztást a rugalmassági stratégiáktól a megfigyelhetőségi eszközökig és a skálázási tervekig.

Megközelítés Előny
Összpontosítson a megoldás hatókörének és mélységének meghatározásához szükséges információk gyűjtésére. Az üzleti célokat befolyásoló korlátozások tisztázása. Kezdje magas szintű kérdésekkel, például:

- Milyen szintű rugalmasságra, helyreállításra, megfigyelhetőségre és egyszerűségre van szükség?
– Vannak meghatározott korlátozások a költségekhez, a megfelelőséghez, a földrajzi helyhez vagy a késéshez?

Ezen információk alapján dokumentálja, hogy mi elég jó és egyszerű elérni.
A célok és a határok megértése megakadályozza a találgatásokat. Ellenkező esetben előfordulhat, hogy egy iteratív tervezési ciklusban ragad, ami felesleges erőfeszítéseket és szükségtelen költségeket eredményez.
Segít a döntéshozatalban, azáltal hogy az üzleti célokat a valós korlátokon belüli, architektúrákkal kapcsolatos kompromisszumok közös megértésévé alakítja. Mutassa be azokat a lehetőségeket, amelyek hatással vannak:

- Pénzügyi költség
- Mérnöki összetettség
- Biztonsági szempontok
- Működési többletterhelés
Ez segít az érdekelt feleknek megérteni a kéréseik költségeit, összetettségét és működési következményeit, és a reális, igazított eredmények felé irányítják őket.
Rangsorolja az egyes kritikus felhasználói folyamatok megbízhatósági eredményeinek meghatározását az általános mérésekkel szemben, mint például az üzemidő.

Azonosítsa a felhasználó számára elérhető képességeket és folyamatokat a rendszeren, és mindegyik esetében értékelje az üzleti értékét, a használati mintákat és a rugalmassági követelményeket. Hozzon létre konszenzust a folyamat szintjén annak érdekében, hogy a tervezési döntések igazodjanak az üzleti célokhoz.
Ez a beszélgetés segít elmozdítani az érdekelt feleket az tarthatatlan állításoktól, például "a webhelynek mindig fel kell készülnie" a valós funkciókhoz és eredményekhez kapcsolódó gyakorlati, megvalósítható elvárásokra. Ezek az eredmények segítenek megállapítani, hogy mi oldható meg a technológiával, és mit lehet kezelni további üzletmenet-folytonossági tervekkel.
A tervezési döntéseket időtávlatok köré szervezze.

Valós előrejelzéssel definiálhatja a használati elvárásokat. Például mi a várható felhasználói terhelés az indításkor? A felhasználói növekedés várhatóan lineáris, exponenciális vagy bizonytalan lesz.
Ezek az információk segítenek egy olyan architektúra megtervezésében, amely a közel távú megbízhatósági igényeket fogja kielégíteni, és elkerüli azokat a tervezési döntéseket, amelyek jelentős átdolgozást igényelnek a jövőbeli horizontok kezeléséhez. Ez a megközelítés hatással van a rugalmasság, az eseményvezérelt munkafolyamatok gondolkodására, és lehetővé teszi, hogy stratégiai döntéseket hozzon arról, hogy milyen technikai adósság keletkezik vagy kerülhető el.
Olyan függőségek tényezője , amelyek korlátozhatják a tervezés autonómiáját, például a szervezeti korlátozások.

Vegye figyelembe a központosított infrastruktúrát, a biztonsági megbízásokat, a hálózati útválasztási szabályzatokat vagy a platform azon döntéseit, amelyek közvetlenül befolyásolják a rugalmasság, a rendelkezésre állás és a helyreállítás szempontjából ígérhető feltételeket.
A kontrollon kívüli szolgáltatásoktól való függőség megértése segít a megbízhatóságra vonatkozó reális elvárások kialakításában. Biztosítja, hogy az RTO/RPO-célok és az SLO-k elérhetőek és egyértelműen kommunikálva legyenek, ezáltal elkerülve a túlígérést és csökkentve a meglepetéseket.

Rugalmasság tervezése

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, a platformkimaradásokra, a teljesítménycsökkenésre, az erőforrások korlátozott rendelkezésre állására és egyéb hibákra kell számítania. Építsen be rugalmasságot a rendszerbe, hogy az hibatűrő legyen, és fokozatosan csökkenjen a teljesítménye.

Megközelítés Előny
A kritikus útvonalon lévő összetevők megkülönböztetése a csökkentett állapotban működő ö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últervezni az olyan összetevők terhelhetőségét, amelyek kissé ronthatják a felhasználói élményt, szemben azokkal az összetevőkkel, amelyek meghibásodásuk esetén teljes rendszerkiesést okozhatnak.

A kialakítás hatékony lehet az erőforrások kritikus összetevőkre 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 á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őket, é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 kimaradás. 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 hozhat létre a tervezési minták helyes használatával, és modularizálhatja a kialakítást a hibák elkülönítése érdekében. A rendszer meg tudja akadá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 kár kiterjedtségét 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 található szolgáltatások kapacitáskorlátainak figyelembevételével. A számítási feladat képes lesz kezelni a változó kapacitásnövekedéseket és -ingadozásokat. Ez a képesség kulcsfontossá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 kiterjedő vertikális 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 különböző alkalmazásszinteken.

A fizikai segédprogramok és az azonnali adatreplikálás redundanciáját célozza meg. A szolgáltatásokra, műveletekre és személyzetre vonatkozó funkcionális réteg redundanciára is törekszik.
A redundancia segít minimalizálni az egyes meghibásodási pontokat. Ha például van összetevő, rendelkezésre állási zóna vagy regionális kimaradás, a redundáns üzembe helyezés (aktív-aktív vagy aktív-passzív) lehetővé teszi az üzemidő-célok eléré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.
Erőforrás túlbiztosítása a redundáns példányok egyéni hibáinak azonnali mitigálása és az erőforrás-felhasználás elszabadulása elleni pufferelés érdekében. A túlméretezésbe való nagyobb befektetés növeli a rugalmasságot.

A rendszer továbbra is teljes körűen fog működni egy aktív hiba során még azelőtt, hogy a méretezési műveletek megkezdhetik a hiba elhárítását. Hasonlóképpen csökkentheti annak a kockázatát, hogy váratlanul elszabadult erőforrás-felhasználás igényelje a tervezett puffert, és kritikus osztályozási időt nyerjen, mielőtt rendszerhibák vagy agresszív skálázás következne be.

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 szükség van vészrekészségi megközelítésekre az architektúra tervezésekor és a számítási feladatok műveleteiben. Az adatrétegen rendelkeznie kell olyan stratégiákkal, amelyek esetleges adatkárosodás esetén képesek helyreállítani a munkaterhelés állapotát.

Megközelítés Előny
Strukturált, tesztelt és dokumentált helyreállítási tervekkel rendelkezik, amelyek igazodnak a kialkudott helyreállítási célokhoz. A terveknek a rendszer egésze mellett az összes összetevőre is ki kell terjedniük. Egy jól definiált folyamat gyors helyreállításhoz vezet, amely megakadályozhatja, hogy negatív hatással legyen vállalkozása pénzügyeire és hírnevére. A rendszeres helyreállítási próbák során 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 teszteljük, hogy elkerüljük a félreértéseket, amikor az idő és az adatok integritása a siker fő mértéke.
Győződjön meg arról, hogy a helyreállítási célokon belül minden állapotalapú összetevő adatait kijavíthatja . A biztonsági mentések elengedhetetlenek ahhoz, hogy a rendszer működőképes állapotba kerüljön egy megbízható helyreállítási ponttal, például az utolsó ismert jó állapottal.

A nem módosítható és tranzakciósan 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 öngyógyító 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 létrehozása, amelyeket igény szerint fel lehet dobni és megsemmisíteni, ismételhetőséget és konzisztenciát biztosít. A 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.

Tervezés műveletekhez

Cél ikon Helyezze előbbre a műveletek során a meghibásodási feltételek felismerését.

Tesztelje a hibákat korai és gyakran a fejlesztési életciklus során, és határozza meg a teljesítmény megbízhatóságra gyakorolt hatását. A kiváltó okok elemzése és az utóelemzések érdekében, a csapatok között megosztottan kell biztosítani a láthatóságot a függőségi állapotról és a folyamatban lévő hibákról. A megfigyelhető rendszerekből származó elemzések, diagnosztikák és riasztások alapvető fontosságúak a hatékony incidenskezelés és a folyamatos fejlesztés szempontjából.

Megközelítés Előny
Megfigyelhető rendszerek létrehozása , 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 nem sikerült. 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 helymegismelő mérnökök rangsorolhassák a szervizelésre irányuló erőfeszítéseiket.
A lehetséges meghibásodások és rendellenes viselkedés előrejelzése. Az aktív megbízhatósági hibák láthatóvá tétele rangsoros és végrehajtható riasztások használatával.

Olyan megbízható folyamatokba és infrastruktúrába fektethet be, amelyek gyorsabb osztályozáshoz vezetnek.
A webhely-megbízhatósági mérnökök azonnal értesítést kaphatnak, hogy enyhítsék a folyamatban lévő élő webhelyeseményeket , és proaktív módon mérsékeljék a prediktív riasztások által azonosított lehetséges hibákat, mielőtt élő incidensekká válnak.
Hibák szimulálása és tesztek futtatása éles és előéles környezeti környezetben. Előnyös, ha az éles környezetben hibák jelentkeznek, így reális elvárásokat állíthat 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 összetevőket az automatizálás szem előtt tartásával hozhatja létre, é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 teremt 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 . A számítási feladatra folyamatos műveletek vonatkozhatnak, például az alkalmazások felülvizsgálatára, a biztonsági és megfelelőségi auditokra, az összetevők frissítésére és a biztonsági mentési folyamatokra. Ezeknek a változásoknak a vizsgálata biztosítja a rendszer stabilitását.
Folyamatosan tanulj az éles környezetben történt incidensekből. Az incidensek alapján meghatározhatja azokat a tervezési és üzemeltetési hatásokat és felügyeleteket, 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úra kialakításának, az alkalmazáskódnak és a műveleteknek a túltervezését.

Gyakran az vezet a legmegbízhatóbb megoldásokhoz, ha valamit eltávolítunk, nem pedig hozzáadunk. Az egyszerűség csökkenti a felületi területet a vezérléshez, minimalizálva a hatékonysághiányt és a lehetséges helytelen konfigurációkat vagy váratlan interakciókat. Másrészt a túlzott leegyszerűsítés egyedi hibapontokat vezethet be. Kiegyensúlyozott megközelítés fenntartása.

Megközelítés Előny
Csak akkor vegye fel az összetevőket az architektúrába, ha segítenek elérni a cél üzleti értékeket. Tartsa a kritikus útvonalat hatékonynak. Az üzleti követelmények tervezé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 ellenőrzé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 eszközök azonosítását a hibaelhárítás során.
Értékelje ki, hogy az elméleti megközelítések gyakorlatias kialakítássá alakíthatók-e, amely alkalmazható a használati eseteire. A túl részletes alkalmazáskód szükségtelen egymásrautaltsághoz, extra műveletekhez és nehéz karbantartáshoz vezethet.
Dolgozzon ki elég kódot. Megelőzheti a nem hatékony implementációkból eredő problémákat, például a váratlan erőforrás-felhasználást, a felhasználói vagy adatfolyamhibákat és a kódhibákat.

Ezzel szemben a megbízhatósági problémák kódvizsgálatokhoz vezetnek, 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