Rugalmasság tervezése

Befejeződött
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 és egyéb hibákra kell számítania. Rugalmasságot építhet ki a rendszerben, hogy hibatűrő legyen, és kecsesen csökkenjen.

Példaforgatókönyv

A Contoso Air egy kereskedelmi légitársaság, amely házon belüli fejlesztési részlegekkel rendelkezik. A fő LOB-alkalmazás egy foglalási megoldás, amellyel az ügyfelek közvetlenül a Contoso Air-szel foglalhatnak járatokat. Az alkalmazás az Azure-ban készült, és Azure-alkalmazás Service, Cosmos DB, Azure Functions, Azure Logic Apps és Azure Service Bus szolgáltatást használ.

Hibakockázatok meghatározása

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óra és a rendszerfolyamatokra gyakorolt hatást.

Elemezze a meghibásodási esetet, a robbanási sugarat és a hiba intenzitását az egyes lehetséges meghibásodási pontok esetében. A meghibásodási esetek és azok intenzitása a viszonylag alacsony hatású forgatókönyvektől, például a háttérfolyamat ideiglenes elvesztésétől a katasztrófákból eredő teljes körű kimaradásokig terjedhet. Az elemzés végrehajtásával meghatározhatja a hibakezelési képességek tervezését az összetevő szintjén.

A Contoso kihívása

  • A LOB alkalmazás számos kulcsfontosságú funkciót kínál a marketingtől a kereskedelemig. A jegyvásárlási felhasználói folyamat a legkritikusabb folyamat. A számítási feladatokért felelős csapat megállapította, hogy több megbízhatósági intézkedést kell végrehajtani annak érdekében, hogy a folyamat rugalmasságra legyen optimalizálva.
  • A csapat tervezett ideje van az olyan fejlesztésekre, mint az összetevők leválasztása és a folyamatok újratervezése, de biztosítani szeretné, hogy ezt az időt arra használják, hogy a legnagyobb értékű fejlesztésekre összpontosítsanak.

A megközelítés és az eredmények alkalmazása

  • A csapat potenciális hibapontként azonosítja a külső fizetési átjárót. Az átjáró magas rendelkezésre állású, de előfordulhat, hogy a felhasználók időnként átmeneti hibákat tapasztalnak, amelyek hálózati problémákból vagy rendkívül magas kérések sorozatából erednek. Előfordulhat, hogy az átjáró elutasít bizonyos kéréseket, ha több egyidejű kérés is túlterhelte.
  • A csapat megállapítja, hogy a felhasználóknak újra kell küldeniük a kéréseket, amikor az átjáró elutasítja a kezdeti kéréseiket, ami negatív felhasználói élményt okoz.

Önmegőrző mechanizmusok megvalósítása

Ö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.

Ha önmegőrző képességeket épít be a rendszerbe, megakadályozhatja, 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.

A Contoso kihívása

  • A csapat szeretné minimalizálni az átmeneti hibák kockázatát, ami miatt a fizetési átjáró elutasítja a felhasználók kéréseit. A hibafeltételek egy részének átmeneti jellege miatt nagy a valószínűsége annak, hogy ugyanaz a kérés sikeres lesz, ha újra be van adva.

A megközelítés és az eredmények alkalmazása

  • A csapat egyéni logikát fejleszt a folyamatban, hogy rövid késleltetés után újrapróbálkozzék a tranzakció, amikor egy újrapróbálkozható hiba észlelhető.
  • A megoldástervet úgy módosítjuk, hogy az újrapróbálkozási mintát is beépítse, kissé növelve az újrapróbálkozások közötti várakozási időt, amíg a kérés sikeresen fel nem dolgozódik, vagy eléri a hibák maximális számát.
  • A csapat emellett úgy dönt, hogy az Azure Service Bus eseményvezérelt megközelítésével leválasztja a folyamat felhasználói interakcióját és háttérbeli fizetésfeldolgozási funkcióit. Ha az üzenet feldolgozása során (az újrapróbálkozások maximális száma után) helyreállíthatatlan hibák lépnek fel, a háttérfeldolgozó leállítja a kérés feldolgozását, így az üzenet a várólistán marad, hogy később újra feldolgozható legyen.

Átfogó redundancia és rugalmasság kiépítése

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 egy vagy több összetevőt, rendelkezésre állási zónát vagy egy teljes régiót érintő kimaradás van, a redundáns (aktív-aktív vagy aktív-passzív) üzembe helyezés 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.

A Contoso kihívása

  • Az újrapróbálkozási és a fizetési átjáró hívásainak a Felhasználói felületről a Service Bus használatával történő leválasztása jelentősen megnövelte ennek a folyamatnak a megbízhatóságát, de az üzleti érdekelt felek továbbra is aggódnak az elsődleges régió katasztrofális meghibásodása miatt bekövetkező adatvesztés miatt.

A megközelítés és az eredmények alkalmazása

  • A csapat úgy dönt, hogy prémium szintű Service Busra frissít. Ezzel kihasználhatják a szint rendelkezésre állási zónáinak támogatási funkcióit. Ezzel a funkcióval az adatok több példánya három fizikailag elkülönített létesítményben (rendelkezésre állási zónákban) van tárolva, és a szolgáltatás elegendő kapacitással rendelkezik ahhoz, hogy azonnal megbirkózzon egy adatközpont teljes, katasztrofális veszteségével.
  • Emellett a csapat úgy konfigurálja az Azure Service Bus geo-vészhelyreállítást, hogy folyamatosan replikálja az adatokat egy másodlagos régióba, amelyet az elsődleges régió teljes meghibásodása esetén használnak majd.

Tesztelje tudását

1.

Milyen képességeket kell megterveznie a számítási feladatban, hogy az ellenálló legyen a működési hibákkal szemben?

2.

Mi a példa a redundancia hozzáadására a számítási feladatban?

3.

A számítási feladatokkal kapcsolatos csapatnak tisztában kell lennie azzal, hogy egy DDoS-támadás hogyan befolyásolhatja a számítási feladatot. Mit kell tennie a csapatnak a tesztelés előtt?