Cesta 05Lekcia 7 / 8

Stanovte bezpečné hranice self-healing

Automatizujte známe obnovovacie akcie s výslovným oprávnením, overením a podmienkami zastavenia. Oddeľte obnovu za behu od zmeny softvéru.

Pokročilá úroveň12 minSkontrolované

Vydáva Ako píšeme

Overte si porozumenieKontrolér reštartoval worker dvakrát. Front naďalej rastie a databáza je nedostupná. Čo má politika urobiť?Vykonajte cvičenie
Kontrolér reštartoval worker dvakrát. Front naďalej rastie a databáza je nedostupná. Čo má politika urobiť?

Čo sa naučíte

  • Rozlišovať self-healing od trvalej opravy softvéru.
  • Definovať ohraničenú politiku obnovy a nezávislé kontroly úspechu.
  • Rozpoznať, kedy sa automatizácia musí zastaviť a eskalovať.

Obnovujte službu pri známom zlyhaní

Self-healing automaticky odhalí definované zlyhanie a pokúsi sa vykonať povolenú obnovovaciu akciu. Príkladom môže byť reštart zlyhaného procesu alebo nahradenie nefunkčnej inštancie. Akcia musí zodpovedať zlyhaniu a stavovému modelu služby.

Kubernetes môže nahradiť zlyhané inštancie úloh a zosúladiť stav s deklaráciou. Neopravuje tým chybnú logiku aplikácie ani nerieši každé zlyhanie úložiska. Obnova infraštruktúry a správnosť softvéru potrebujú odlišné kontroly. Kubernetes self-healing.

Pred mechanizmom definujte cieľ. Obnovenie exportu znamená, že sa oprávnená práca dokončí správne. Bežiaci kontajner je iba jedným predpokladom.

Oddeľte tri druhy zmien

ZmenaPríkladPožadované rozhodnutie
Obnova za behuNahradiť jeden zlyhaný bezstavový workerMôže to povoliť vopred schválená politika obnovy
Oprava softvéruOpraviť únik pamäte, ktorý zastavuje workerKontrola, testy, riadenie vydania a produkčné overenie
Zmena politikyZvýšiť povolenú frekvenciu reštartov alebo rozsah prístupuVýslovné schválenie osobou zodpovednou za politiku

Agent môže po obnove navrhnúť opravu. Tento návrh je novou softvérovou zmenou. Nesmie zdediť neobmedzené oprávnenia od kontroléra obnovy.

Kontrolér tiež nesmie pri neúspešnej kontrole upravovať vlastné kritériá úspechu. Inak môže systém hlásiť zlepšenie bez zlepšenia služby.

Napíšte politiku obnovy pred jej zapnutím

Nasledujúca politika je fiktívna. Jej čísla ilustrujú návrhové rozhodnutia; nie sú odporúčanými predvolenými hodnotami.

Pole politikyFiktívne pravidlo exportného workera
Spúšťacia podmienkaHeartbeat workera chýba 90 sekúnd a vo fronte čaká práca
PredpokladyĎalší worker je funkčný; kontroly závislostí uspeli; nie je podozrenie na kompromitáciu ani narušenie integrity
Povolená akciaNahradiť jeden worker aktuálne schváleným artefaktom
Ochrana stavuÚlohy používajú trvalé úložisko a overený kľúč idempotentnosti
LimitNajviac dve nahradenia za 15 minút; nikdy viac než jedno naraz
PrestávkaPo nahradení počkať päť minút pred ďalším pokusom
ÚspechSyntetická úloha sa dokončí správne a dotknutý front sa začne vyprázdňovať
Zastavenie a eskaláciaZlyhá ktorýkoľvek predpoklad, dosiahne sa limit alebo nemožno overiť úspech

Použite identitu s najmenšími potrebnými oprávneniami. Logujte verziu politiky, dôkazy spúšťacej podmienky, akciu, zdroj a výsledok. Poskytnite nezávislý spôsob vypnutia kontroléra. Určte človeka, ktorý prijíma eskaláciu.

Testujte zlyhania aj úspešnú obnovu

Opakovanie môže zopakovať vedľajší účinok. Worker môže uložiť súbor a zastaviť sa pred potvrdením úlohy. Pred povolením ďalšieho vykonania overte idempotentnosť. Pozrite si príklad zlyhania v cloud native.

Opakovania môžu tiež zhoršiť preťaženie závislosti. Používajte obmedzený počet pokusov, časové limity a primeraný backoff. Vyhnite sa synchronizovaným opakovaniam všetkých inštancií. AWS vysvetľuje, prečo backoff a jitter pomáhajú obmedziť toto zosilnenie záťaže. Odporúčania na opakovanie.

Otestujte fiktívnu politiku v troch prípadoch. Jeden zastavený worker sa má obnoviť. Výpadok databázy má zabrániť opakovanému nahrádzaniu. Nejasné narušenie integrity má zastaviť automatizáciu a vyžiadať rozhodnutie o reagovaní.

Overte aj chýbajúcu telemetriu. Neprítomnosť heartbeat môže znamenať zlyhaný worker alebo zlyhanú cestu zberu. Kontrolér potrebuje dostatočné dôkazy pre svoju akciu, nie dôveru vo vysvetlenie AI.

Merajte, či politika pomáha

Zaznamenávajte overené obnovy, neúspešné pokusy, eskalácie, duplicitnú prácu a čas dosahu na používateľov. Porovnávajte ich s predchádzajúcim prevádzkovým postupom za podobných podmienok.

Základnú chybu ponechajte ako inžiniersku prácu. Opakovaný reštart procesu s únikom pamäte môže znížiť bezprostredný dosah, zatiaľ čo únik pokračuje. Pokračujte lekciou self-improvement, ktorá prepája pozorovanie s trvalou opravou.

Vykonajte cvičenie

Navrhnite politiku obnovy pre fiktívny exportný worker z tejto lekcie. Určte spúšťaciu podmienku, výnimky, povolenú akciu, limit opakovaní, prestávku medzi pokusmi, kontrolu úspechu a osobu zodpovednú za eskaláciu. Otestujte ju pri výpadku databázy a neznámom narušení integrity údajov.

Stiahnuť pracovný list (Markdown)
Overte si porozumenie ↑

Pokračovať v učení

Zdroje a ďalšie čítanie

Súvisiace čítanie od Taigy

← Predchádzajúca lekcia: Prepojte dodávanie so SOC a SIRT