Put 05Lekcija 7 / 8

Postavite sigurne granice za self-healing

Automatizirajte poznate radnje oporavka s izričitim ovlastima, provjerom i uvjetima zaustavljanja. Odvojite oporavak tijekom rada od promjene softvera.

Napredno12 minPregledano

Objavljuje Kako pišemo

Provjerite razumijevanjeKontroler je dvaput ponovno pokrenuo radni proces. Red čekanja nastavlja rasti, a baza podataka je nedostupna. Što pravilo treba učiniti?Napravite vježbu
Kontroler je dvaput ponovno pokrenuo radni proces. Red čekanja nastavlja rasti, a baza podataka je nedostupna. Što pravilo treba učiniti?

Što ćete naučiti

  • Razlikovati self-healing od trajnog ispravka softvera.
  • Odrediti ograničeno pravilo oporavka i neovisne provjere uspjeha.
  • Prepoznati kada automatizacija mora stati i eskalirati.

Oporavite se od poznatog stanja

Self-healing automatski otkriva definiran kvar i pokušava provesti ovlaštenu radnju oporavka. Primjeri mogu biti ponovno pokretanje neuspjelog procesa ili zamjena instance koja ne radi ispravno. Radnja mora odgovarati kvaru i modelu stanja usluge.

Kubernetes može zamijeniti neuspjele instance radnog opterećenja i uskladiti stanje s deklariranim stanjem. To ne ispravlja pogrešnu logiku aplikacije ni svaki kvar pohrane. Oporavak infrastrukture i ispravnost softvera trebaju različite provjere. Kubernetes self-healing.

Odredite cilj prije mehanizma. Obnova izvoza znači da se rad koji ispunjava uvjete ispravno dovršava. Pokrenut kontejner samo je jedan preduvjet.

Odvojite tri vrste promjena

PromjenaPrimjerPotrebna odluka
Oporavak tijekom radaZamjena jednog neuspjelog radnog procesa bez stanjaUnaprijed odobreno pravilo oporavka može ovlastiti tu radnju
Ispravak softveraIspravak curenja memorije koje zaustavlja radni procesPregled, testovi, kontrole izdavanja i produkcijska provjera
Promjena pravilaPovećanje dopuštene učestalosti ponovnog pokretanja ili opsega pristupaIzričito odobrenje osobe odgovorne za pravilo

Agent može predložiti ispravak nakon oporavka. Taj prijedlog nova je promjena softvera. Ne smije naslijediti neograničene ovlasti kontrolera oporavka.

Kontroler također ne smije uređivati vlastite kriterije uspjeha kada provjera ne uspije. Inače sustav može prijaviti poboljšanje bez poboljšanja usluge.

Napišite pravilo oporavka prije uključivanja

Sljedeće je pravilo izmišljeno. Brojevi prikazuju odluke o dizajnu; nisu preporučene standardne postavke.

Polje pravilaIzmišljeno pravilo za radni proces izvoza
OkidačNema signala aktivnosti radnog procesa 90 sekundi, a postoje zadaci na čekanju
PreduvjetiDrugi radni proces ispravno radi; provjere ovisnosti prolaze; nema sumnje na kompromitaciju ili pogrešku integriteta
Dopuštena radnjaZamijeniti jedan radni proces trenutačno odobrenim artefaktom
Zaštita stanjaZadaci upotrebljavaju trajnu pohranu i provjeren ključ idempotentnosti
OgraničenjeNajviše dvije zamjene u 15 minuta; nikad više od jedne istodobno
Razdoblje čekanjaPričekati pet minuta nakon zamjene prije novog pokušaja
UspjehSintetički zadatak ispravno se dovršava, a zahvaćeni red čekanja počinje se prazniti
Zaustavljanje i eskalacijaBilo koji preduvjet nije ispunjen, ograničenje je dosegnuto ili se uspjeh ne može provjeriti

Upotrijebite identitet s najmanjim potrebnim ovlastima. Zabilježite verziju pravila, dokaze okidača, radnju, resurs i rezultat. Osigurajte neovisan način isključivanja kontrolera. Odredite odgovornu osobu koja prima eskalaciju.

Testirajte putove kvara i uspješan oporavak

Ponovni pokušaj može ponoviti nuspojavu. Radni proces može spremiti datoteku i stati prije potvrde zadatka. Provjerite idempotentnost prije dopuštanja novog izvršavanja. Pogledajte primjer cloud native kvara.

Ponovni pokušaji mogu dodatno opteretiti već preopterećenu ovisnost. Upotrijebite ograničene pokušaje, vremenska ograničenja i prikladno povećavanje odgode. Izbjegavajte sinkronizirane ponovne pokušaje kroz cijelu skupinu instanci. AWS objašnjava zašto povećavanje odgode i slučajni pomak pomažu smanjiti to pojačavanje. Smjernice za ponovne pokušaje.

Testirajte izmišljeno pravilo u tri slučaja. Jedan zaustavljeni radni proces trebao bi se oporaviti. Nedostupnost baze podataka trebala bi spriječiti ponovljenu zamjenu. Nejasna pogreška integriteta trebala bi zaustaviti automatizaciju i zatražiti odluku o reakciji.

Provjerite i nedostajuću telemetriju. Izostanak signala aktivnosti može značiti kvar radnog procesa ili puta prikupljanja. Kontroler treba dovoljno dokaza za svoju radnju, a ne povjerenje u AI objašnjenje.

Izmjerite pomaže li pravilo

Zabilježite provjerene oporavke, neuspjele pokušaje, eskalacije, udvostručen rad i vrijeme tijekom kojeg su korisnici bili zahvaćeni. Usporedite to s prethodnim načinom rada u sličnim uvjetima.

Zadržite temeljni nedostatak kao inženjerski zadatak. Ponavljano pokretanje procesa iz kojeg curi memorija može smanjiti neposredni učinak dok se curenje nastavlja. Nastavite sa samopoboljšavanjem kako biste povezali opažanje s trajnim ispravkom.

Napravite vježbu

Osmislite pravilo oporavka za izmišljeni radni proces izvoza iz ove lekcije. Odredite okidač, izuzeća, dopuštenu radnju, ograničenje pokušaja, razdoblje čekanja, provjeru uspjeha i osobu odgovornu za eskalaciju. Testirajte ga pri nedostupnosti baze podataka i nepoznatoj pogrešci integriteta podataka.

Preuzmi radni list (Markdown)
Provjerite razumijevanje ↑

Nastavite učiti

Izvori i dodatno čitanje

Povezani Taigini materijali

← Prethodna lekcija: Povežite isporuku sa SOC-om i SIRT-om