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.
Udgivet af TaigaSå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
| Ændring | Eksempel | Nødvendig beslutning |
|---|---|---|
| Gendannelse under drift | Erstat én fejlet stateless worker | En forhåndsgodkendt gendannelsespolitik kan autorisere dette |
| Softwarerettelse | Ret det hukommelseslæk, der stopper workeren | Review, tests, releasekontroller og verifikation i produktion |
| Politikændring | Øg den tilladte genstartsfrekvens eller adgangens omfang | Udtrykkelig 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.
| Politikfelt | Fiktiv regel for eksportworker |
|---|---|
| Udløser | Workerens heartbeat har manglet i 90 sekunder, og der er arbejde i køen |
| Forudsætninger | En anden worker er sund; afhængighedskontroller består; ingen mistanke om kompromittering eller integritetsfejl |
| Tilladt handling | Erstat én worker med det aktuelt godkendte artefakt |
| Beskyttelse af tilstand | Jobs bruger vedvarende lagring og en verificeret idempotensnøgle |
| Grænse | Højst to udskiftninger på 15 minutter; aldrig mere end én ad gangen |
| Ventetid | Vent fem minutter efter udskiftning før et nyt forsøg |
| Succes | Et syntetisk job afsluttes korrekt, og den berørte kø begynder at blive afviklet |
| Stop og eskalér | En 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
Kilder og videre læsning
- Kubernetes: Self-Healing ↗
- AWS Builders’ Library: Timeouts, retries, and backoff with jitter ↗
- Google SRE: Automation at Google ↗
Relateret læsning fra Taiga
Fjerner du dette valg, slettes al fremgang gemt i denne browser.
Fremgangen bliver i denne browser. Ingen konto, ingen sporing.