Priporočila za oblikovanje strategije testiranja zanesljivosti
Velja za to Power Platform priporočilo kontrolnega seznama dobro zasnovane zanesljivosti:
RE:06 | Preizkusite scenarije odpornosti in razpoložljivosti z uporabo načel inženiringa kaosa v svojih testnih in proizvodnih okoljih. S testiranjem zagotovite, da so vaše elegantne strategije izvajanja degradacije učinkovite z izvajanjem aktivnega testiranja okvare in simuliranega obremenitvenega testiranja. |
---|
Ta priročnik opisuje priporočila za oblikovanje strategije testiranja zanesljivosti za potrditev in optimizacijo zanesljivosti vaše delovne obremenitve. Testiranje zanesljivosti se osredotoča na prožnost in razpoložljivost vaše delovne obremenitve, zlasti na kritične tokove, ki jih prepoznate, ko oblikujete svojo rešitev. Ta priročnik ponuja splošne smernice za testiranje in smernice, ki so specifične za vstavljanje napak in inženiring kaosa.
Definicije
Trajanje | Definicija |
---|---|
Razpoložljivost | Količina časa, ko se delovna obremenitev aplikacije izvaja v zdravem stanju brez večjih izpadov. |
Inženiring kaosa | Praksa izpostavljanja aplikacij in storitev obremenitvam in napakam v resničnem svetu. Cilj inženiringa kaosa je zgraditi in potrditi odpornost na nezanesljive pogoje in manjkajoče odvisnosti. |
Vbrizgavanje napake | Dejanje vnašanja napake v sistem za testiranje odpornosti sistema. |
Popravljivost | Sinonim za odpornost. |
Prožnost | Sposobnost delovne obremenitve aplikacije, da zdrži načine okvare in si jih opomore. |
Ključne strategije oblikovanja
Testiranje je bistvenega pomena za zagotovitev, da vaša delovna obremenitev izpolnjuje svoje cilje glede zanesljivosti in lahko elegantno obravnava napake. Vstavljanje napak je vrsta testiranja, ki namerno vnaša napake ali stres v vaš sistem za simulacijo scenarijev iz resničnega sveta. Z uporabo tehnik vstavljanja napak in inženiringa kaosa lahko proaktivno odkrijete in odpravite težave, preden vplivajo na vaše proizvodno okolje. V tem razdelku so splošna navodila za testiranje, vstavljanje napak in inženiring kaosa za vašo delovno obremenitev.
Splošna navodila za testiranje
Redno izvajajte testiranje za potrditev obstoječih pragov, ciljev in predpostavk. Ko pride do večje spremembe vaše delovne obremenitve, zaženite redno testiranje. Izvedite večino testiranj v testnih in uprizoritvenih okoljih. Prav tako je koristno zagnati podmnožico testov glede na proizvodni sistem.
Avtomatizirajte testiranje, da zagotovite dosledno pokritost testa in ponovljivost. Avtomatizirajte običajna opravila testiranja in jih integrirajte v svoje gradbene procese. Ročno testiranje programske opreme je dolgočasno in dovzetno za napake, vendar lahko izvedete ročno raziskovalno testiranje. V primerih, ko morate razviti avtomatizirano testiranje, uporabite ročno testiranje, da določite obseg testov, ki jih želite razviti.
Sprejmite pristop testiranja s premikanjem v levo, da izvedete testiranje odpornosti in razpoložljivosti zgodaj v razvojnem ciklu.
Prilagodite preprosto obliko dokumentacije, tako da bodo vsi zlahka razumeli postopek in rezultate vsakega rednega testa.
Delite dokumentirane rezultate z ustreznimi ekipami, kot so operativne ekipe, tehnološko vodstvo, poslovni deležniki in deležniki za obnovitev po katastrofi. Rezultati bi morali biti podlaga za izboljšanje ciljev zanesljivosti, kot so cilji ravni storitev (SLO), sporazumi o ravni storitev (SLA), cilji časa obnovitve (RTO) in cilji točke obnovitve (RPO).
Ustvarite redno preskusno kadenco za svoje varnostne kopije. Obnovite podatke v izolirane sisteme, da zagotovite, da so varnostne kopije veljavne in da obnovitve delujejo.
Dokumentirajte in delite metrike časa obnovitve s svojimi zainteresiranimi stranmi za obnovitev po katastrofi, da zagotovite, da so pričakovanja glede obnovitve ustrezna.
Uporabite industrijske standardne postopke testiranja uvajanja, da zagotovite avtomatiziran, predvidljiv in učinkovit postopek uvajanja.
Preizkusite sposobnost svoje delovne obremenitve, da prenese prehodne okvare. Za več informacij glejte Priporočila za ravnanje s prehodnimi napakami.
Preizkusite, kako vaša delovna obremenitev obravnava napake v odvisnih storitvah ali drugih odvisnostih z vstavljanjem napak.
Preizkusite svoj načrt za obnovitev po katastrofi da se odzovete na katastrofalne okvare in druge večje incidente.
Preizkusite zmožnost vaše delovne obremenitve, da se elegantno zmanjša in zmanjša radij eksplozije okvare komponente z uporabo vbrizgavanja napak.
Izkoristite načrtovane in nenačrtovane izpade
Ko je vaša delovna obremenitev brez povezave zaradi načrtovanega vzdrževanja ali nenačrtovanega izpada, imate edinstveno priložnost, da izvedete testiranje in izboljšate svoje razumevanje svoje delovne obremenitve. Naslednji razdelki podajajo priporočila za vsak scenarij.
Načrtovano vzdrževanje
Ko imate načrtovana vzdrževalna okna za posodobitve ali popravke, lahko preizkusite komponente in tokove, ki niso vključeni v vzdrževalno delo. Izvedite preizkuse brez morebitnega tveganja, da bi nepričakovano zmanjšali delovno obremenitev ali ga popolnoma prekinili. Če imate med vzdrževalnim obdobjem dovolj časa, lahko komponente in tokove, ki so vključeni v vzdrževanje, preizkusite tudi po zaključku vzdrževalnih del.
Nenačrtovan izpad
Uporabite vsak incident izpada kot priložnost, da izveste več o svoji delovni obremenitvi in izboljšate njeno odpornost tako, da sledite tem korakom, razvrščenim po prioriteti:
Svojim uporabnikom povrnite delovno obremenitev na spletu. Morda boste morali izvesti rešitev za težavo, odpraviti težavo ali sprožiti postopke obnovitve.
Ugotovite glavni vzrok izpada in ga odpravite. Če lahko glavni vzrok odpravite v okviru preiskave, dokumentirajte glavni vzrok in ukrepe, ki ste jih sprejeli, da bi ga odpravili. Če težava pozneje zahteva ponovno vzdrževalno obdobje, se prepričajte, da vaši ukrepi za ublažitev prenesejo pričakovano obremenitev, tako da jo temeljito preizkusite. Prepričajte se, da ste nastavili zadosten nadzor, ki pokriva vaše ukrepe za ublažitev.
Če je primerno, poiščite isto težavo ali konfiguracijske slabosti, na katere bi lahko vplivale podobne težave, v vseh komponentah vaše delovne obremenitve. Izkoristite to priložnost za proaktivno obravnavanje teh komponent. Oglejte si svojo zgodovino incidentov, da odkrijete vzorce podobnih težav v vaši delovni obremenitvi.
Uporabite svoje ugotovitve za izboljšanje svoje strategije testiranja. Prepričajte se, da ste uspešno odpravili glavni vzrok in podobne težave z neposrednim testiranjem iste napake.
Vstavljanje napak in smernice za inženiring kaosa
Testiranje vbrizgavanja napak sledi načelom inženiringa kaosa s poudarjanjem sposobnosti delovne obremenitve, da se odzove na okvare komponent. Izvedite testiranje vbrizgavanja napak v predprodukcijskih in proizvodnih okoljih. Uporabite informacije, iz katerih ste se naučili izvajanje analize načina okvare da zagotovite, da testirate samo napake, ki jim dajete prednost, in da imate strategije za ublažitev, ki obravnavajo napake.
Ključne smernice inženiringa kaosa so:
Bodite proaktivni. Ne čakajte, da se zgodijo neuspehi. Poskusite predvideti napake z izvajanjem poskusov kaosa, da odkrijete in odpravite težave, preden vplivajo na vaše produkcijsko okolje.
Sprejmite neuspeh. Sprejmite in se učite iz napak, ki se pojavljajo v vašem sistemu. Na napake glejte kot na naravni del kompleksnih sistemov in jih uporabite kot priložnosti za učenje in izboljšanje zanesljivosti vašega sistema.
Razbiti sistem. Namerno vnašajte napake ali stres v svoj sistem, da preizkusite njegovo odpornost. Simulirajte napake ali motnje v resničnem svetu, da preizkusite in izboljšate zmožnosti obnovitve delovne obremenitve.
Zgradite imuniteto. Uporabite poskuse inženiringa kaosa, da izboljšate zmožnost vaše delovne obremenitve za preprečevanje in okrevanje po okvarah.
Inženiring kaosa je sestavni del timske kulture delovne obremenitve in stalna praksa, ne pa kratkoročno taktično prizadevanje kot odgovor na en sam izpad. Pri načrtovanju poskusov kaosa sledite tej standardni metodi:
Začnite s hipotezo. Vsak poskus mora imeti jasen cilj, kot je testiranje sposobnosti toka, da prenese izgubo določene komponente.
Izmerite osnovno vedenje. Zagotovite, da imate dosledne meritve zanesljivosti in zmogljivosti za tok in komponente, vključene v poskus, da jih primerjate s poslabšanim stanjem med izvajanjem preizkusa.
Vnesite napako ali napake. Poskus mora namerno ciljati na specifične komponente, ki jih je mogoče hitro obnoviti, in imeti morate utemeljeno pričakovanje o učinku, ki ga bo povzročilo vbrizgavanje napake, da boste lažje nadzorovali radij eksplozije poskusa.
Spremljajte posledično vedenje. Zberite telemetrijo o posameznih komponentah toka in vedenju toka od konca do konca, ki je cilj poskusa, da pravilno razumete učinke napake. Primerjajte meritve, ki jih zberete, z osnovnimi meritvami za popolno sliko rezultatov vstavljanja napak.
Dokumentirajte proces in opažanja. Vodenje podrobnih zapisov o vaših poskusih bo prispevalo k prihodnjim odločitvam o zasnovi delovne obremenitve in zagotovilo, da boste odpravili vrzeli, ki so se sčasoma pokazale.
Ugotovite in ukrepajte glede na rezultat. Načrtujte popravljalne korake, ki jih je mogoče dodati zaostanku delovne obremenitve kot izboljšave. Zagotovite, da so načrti za izboljšanje zasnove pregledani in preizkušeni v neprodukcijskih okoljih v skladu z enakimi postopki kot druge uvedbe.
Občasno preverjajte svoje procese, izbire arhitekture in kodo, da hitro zaznate tehnični dolg, vključite nove tehnologije in se prilagodite spreminjajočim se zahtevam.
Ko izvajate poskuse z vbrizgavanjem napak:
Potrdite, da je nadzor vzpostavljen in da so opozorila nastavljena.
Potrdite svoj postopek dodeljevanja neposredno odgovornega posameznika (DRI), da prevzame odgovornost za incident.
Zagotovite, da so vaša dokumentacija in postopki preiskave posodobljeni.
Vključite naslednja priporočila in premisleke, da optimizirate svojo strategijo testiranja kaosa:
Izzovite sistemske predpostavke. S testiranjem poskušate izboljšati odpornost vaše delovne obremenitve in strategij načrtovanja delovne obremenitve. Poiščite priložnosti za vnos napak v komponente in tokove, za katere na podlagi preteklih izkušenj domnevate, da so zanesljivi. Morda niso zanesljivi pri vaši novi delovni obremenitvi.
Potrdi spremembo. Brez temeljitega testiranja, vključno s testiranjem vstavljanja napak, boste po opravljenih spremembah morda imeli nepopolno sliko svoje delovne obremenitve. Na primer, lahko uvedete nove odvisnosti, ki niso takoj očitne.
Uporabite medpomnilnike SLA. Omejite testiranje kaosa, da ostanete znotraj svojih SLA in se izognete morebitnim škodljivim učinkom izpadov. Vaš tok in cilji obnovitve komponent pomagajo določiti obseg vašega testiranja.
Vzpostavite proračun za napake kot naložbo v kaos in injiciranje napak. Vaš proračun napak je razlika med doseganjem 100 % SLO in doseganjem dogovorjenega SLO.
Prekinite poskus, če presega obseg. Neznani rezultati so pričakovan rezultat poskusov kaosa. Prizadevajte si doseči ravnovesje med zbiranjem obsežnih podatkov o rezultatih in vplivanjem na čim manj uporabnikov proizvodnje.
Tesno sodelujte z razvojnimi skupinami, da zagotovite ustreznost vstavljenih napak. Uporabite pretekle dogodke ali težave kot vodilo. Preglejte odvisnosti in ocenite rezultate, ko te odvisnosti odstranite.
Prepoznajte in dokumentirajte prej neodkrite odvisnosti med različnimi komponentami znotraj vaše delovne obremenitve, ki so razkrite s testiranjem kaosa.
Po potrebi prilagodite obnovitvene načrte, da upoštevate odvisnosti, odkrite med testiranjem kaosa.
Uporabite rezultate svojih poskusov in testov kot osnovo za nove poskuse in teste. Ko se pojavijo nepričakovana vedenja, lahko novi testi neposredno ciljajo na ta vedenja in vam dajo priložnost, da zanje oblikujete sanacijske strategije.
Kompromis: Preskušanje vbrizgavanja napak v proizvodnji je lahko moteče in lahko povzroči izpade. Bodite pregledni z zainteresiranimi stranmi glede te možnosti in zagotovite, da imate vzpostavljene zaščitne ukrepe za prekinitev poskusov in načrte za povrnitev, da hitro odpravite napake, ki jih uvedete.
Power Platform olajšanje
Statične rezultate lahko uporabite v Power Automate za vrnitev fiksnega rezultata za preizkus delovne obremenitve.
Power Apps Testni mehanizem (predogled) je Power Platform komponenta CLI, ki jo lahko uporabite za preizkušanje samostojnih aplikacij platna Power Apps.
Azure Test Plans je preprosta rešitev za upravljanje preskusov, ki temelji na brskalniku in zagotavlja vse zmogljivosti, potrebne za načrtovano ročno preskušanje, preskušanje sprejemljivosti uporabnikov, raziskovalno preskušanje in zbiranje povratnih informacij zainteresiranih skupin.
Če vaša delovna obremenitev vključuje vire Azure, lahko uporabite Azure Chaos Studio, upravljano storitev, ki uporablja inženiring kaosa, da vam pomaga meriti, razumeti in izboljšati odpornost aplikacij v oblaku in storitev.
Kontrolni seznam zanesljivosti
Oglejte si celoten sklop priporočil.