Læringssti 05Lektion 7 / 8

Sæt sikre grænser for self-healing

Automatisér kendte gendannelseshandlinger med tydelig bemyndigelse, verifikation og stopbetingelser. Skeln mellem gendannelse under drift og ændring af software.

Avanceret12 minReviewet

Udgivet af Sådan skriver vi

Det lærer du

  • Skeln mellem self-healing og en varig softwarerettelse.
  • Definér en afgrænset gendannelsespolitik og uafhængige kontroller af succes.
  • Genkend, hvornår automatisering skal stoppe og eskalere.

Gendan en kendt tilstand

Self-healing opdager automatisk en defineret fejl og forsøger en autoriseret gendannelseshandling. Eksempler kan være at genstarte en fejlet proces eller erstatte en usund instans. Handlingen skal passe til fejlen og tjenestens tilstandsmodel.

Kubernetes kan erstatte fejlede workloadinstanser og bringe systemet i overensstemmelse med den deklarerede tilstand. Det retter ikke fejlbehæftet applikationslogik eller alle lagringsfejl. Gendannelse af infrastruktur og korrekt software kræver forskellige kontroller. Kubernetes self-healing.

Definér målet før mekanismen. En gendannet eksport betyder, at relevante opgaver afsluttes korrekt. En kørende container er blot én forudsætning.

Skeln mellem tre slags ændringer

ÆndringEksempelNødvendig beslutning
Gendannelse under driftErstat én fejlet stateless workerEn forhåndsgodkendt gendannelsespolitik kan autorisere dette
SoftwarerettelseRet det hukommelseslæk, der stopper workerenReview, tests, releasekontroller og verifikation i produktion
PolitikændringØg den tilladte genstartsfrekvens eller adgangens omfangUdtrykkelig godkendelse fra politikkens ejer

En agent kan foreslå en rettelse efter gendannelse. Forslaget er en ny softwareændring. Det må ikke arve ubegrænset bemyndigelse fra gendannelsescontrolleren.

Controlleren må heller ikke redigere sine egne succeskriterier, når en kontrol fejler. Ellers kan systemet rapportere forbedring uden at forbedre tjenesten.

Skriv gendannelsespolitikken, før den aktiveres

Følgende politik er fiktiv. Tallene illustrerer designvalg; de er ikke anbefalede standardværdier.

PolitikfeltFiktiv regel for eksportworker
UdløserWorkerens heartbeat har manglet i 90 sekunder, og der er arbejde i køen
ForudsætningerEn anden worker er sund; afhængighedskontroller består; ingen mistanke om kompromittering eller integritetsfejl
Tilladt handlingErstat én worker med det aktuelt godkendte artefakt
Beskyttelse af tilstandJobs bruger vedvarende lagring og en verificeret idempotensnøgle
GrænseHøjst to udskiftninger på 15 minutter; aldrig mere end én ad gangen
VentetidVent fem minutter efter udskiftning før et nyt forsøg
SuccesEt syntetisk job afsluttes korrekt, og den berørte kø begynder at blive afviklet
Stop og eskalérEn forudsætning fejler, grænsen nås, eller succes kan ikke verificeres

Brug en identitet med færrest mulige rettigheder. Log politikversion, udløserens dokumentation, handling, ressource og resultat. Sørg for en uafhængig måde at deaktivere controlleren på. Definér den menneskelige ansvarlige, der modtager eskaleringen.

Test fejlforløb såvel som vellykket gendannelse

Et nyt forsøg kan gentage en sideeffekt. En worker kan gemme en fil og stoppe, før den kvitterer for jobbet. Verificér idempotens, før du tillader endnu en udførelse. Se cloud native-fejleksemplet.

Nye forsøg kan også forstærke belastningen på en overbelastet afhængighed. Brug begrænsede forsøg, timeouts og passende backoff. Undgå synkroniserede forsøg på tværs af alle instanser. AWS forklarer, hvorfor backoff og jitter kan begrænse denne forstærkning. Vejledning om nye forsøg.

Test den fiktive politik mod tre tilfælde. En enkelt stoppet worker bør blive gendannet. Et databaseudfald bør forhindre gentagen udskiftning. En usikker integritetsfejl bør stoppe automatiseringen og anmode om en beredskabsbeslutning.

Kontrollér også manglende telemetri. Et manglende heartbeat kan betyde en fejlet worker eller en fejlet indsamlingsvej. Controlleren skal have tilstrækkelig dokumentation for sin handling, ikke blot tillid til en AI-forklaring.

Mål, om politikken hjælper

Registrér verificerede gendannelser, mislykkede forsøg, eskaleringer, dobbeltarbejde og tid med brugerpåvirkning. Sammenlign med den tidligere driftsmetode under tilsvarende forhold.

Bevar den underliggende fejl som en udviklingsopgave. Gentagen genstart af en proces med hukommelseslæk kan begrænse den umiddelbare påvirkning, mens lækket fortsætter. Fortsæt med self-improvement for at forbinde observationen med en varig rettelse.

Lav øvelsen

Design en gendannelsespolitik for lektionens fiktive eksportworker. Angiv udløser, undtagelser, tilladt handling, grænse for nye forsøg, ventetid, succeskontrol og eskaleringsansvarlig. Test den mod et databaseudfald og en ukendt dataintegritetsfejl.

Download arbejdsark (Markdown)

Kontrollér din forståelse

Controlleren har genstartet en worker to gange. Køen vokser stadig, og databasen kan ikke nås. Hvad skal politikken gøre?

Kilder og videre læsning

Relateret læsning fra Taiga