Leerpad 05Les 7 / 8

Stel veilige grenzen aan self-healing

Automatiseer bekende herstelacties met expliciete bevoegdheid, verificatie en stopvoorwaarden. Scheid runtimeherstel van softwarewijzigingen.

Gevorderd12 minGereviewd

Gepubliceerd door Hoe we schrijven

Wat u leert

  • Onderscheid self-healing van een blijvende softwarecorrectie.
  • Definieer een begrensd herstelbeleid en onafhankelijke succescontroles.
  • Herken wanneer automatisering moet stoppen en escaleren.

Herstel een bekende toestand

Self-healing detecteert automatisch een gedefinieerde storing en probeert een geautoriseerde herstelactie uit te voeren. Voorbeelden zijn een gestopt proces herstarten of een ongezonde instantie vervangen. De actie moet passen bij de storing en het toestandsmodel van de service.

Kubernetes kan uitgevallen workloadinstanties vervangen en de gedeclareerde toestand herstellen. Dat corrigeert geen foutieve applicatielogica of elke opslagstoring. Infrastructuurherstel en correcte softwarewerking vereisen verschillende controles. Self-healing in Kubernetes.

Definieer het doel vóór het mechanisme. Een export herstellen betekent dat geldig werk correct wordt voltooid. Een draaiende container is slechts één voorwaarde.

Onderscheid drie soorten wijzigingen

WijzigingVoorbeeldVereiste beslissing
RuntimeherstelEén uitgevallen stateless worker vervangenVooraf goedgekeurd herstelbeleid kan dit autoriseren
SoftwarecorrectieHet geheugenlek verhelpen waardoor de worker stoptReview, tests, releasecontroles en verificatie in productie
BeleidswijzigingDe toegestane herstartfrequentie of toegangsscope vergrotenExpliciete goedkeuring van de beleidsverantwoordelijke

Een agent kan na herstel een correctie voorstellen. Dat voorstel is een nieuwe softwarewijziging. Het mag geen onbeperkte bevoegdheid erven van de herstelcontroller.

De controller mag ook niet zijn eigen succescriteria aanpassen als een controle mislukt. Anders kan het systeem verbetering melden zonder de service te verbeteren.

Schrijf het herstelbeleid voordat u het activeert

Het volgende beleid is fictief. De getallen illustreren ontwerpkeuzes; het zijn geen aanbevolen standaardwaarden.

BeleidsveldFictieve regel voor de exportworker
TriggerDe workerheartbeat ontbreekt 90 seconden en er staat werk in de wachtrij
VoorwaardenEen andere worker is gezond; dependencycontroles slagen; geen vermoeden van compromittering of integriteitsproblemen
Toegestane actieEén worker vervangen met het huidige goedgekeurde artefact
ToestandsbeschermingJobs gebruiken duurzame opslag en een geverifieerde idempotentiesleutel
LimietHoogstens twee vervangingen in 15 minuten; nooit meer dan één tegelijk
WachttijdNa vervanging vijf minuten wachten vóór een volgende poging
SuccesEen synthetische job wordt correct voltooid en de getroffen wachtrij begint te krimpen
Stoppen en escalerenEen voorwaarde faalt, de limiet is bereikt of succes kan niet worden geverifieerd

Gebruik een identiteit met minimale rechten. Log de beleidsversie, het triggerbewijs, de actie, de resource en het resultaat. Bied een onafhankelijke manier om de controller uit te schakelen. Benoem de menselijke verantwoordelijke die een escalatie ontvangt.

Test foutpaden en geslaagd herstel

Een herhaalde poging kan een neveneffect herhalen. Een worker kan een bestand opslaan en stoppen voordat die de job bevestigt. Controleer idempotentie voordat u een nieuwe uitvoering toestaat. Zie het cloud-nativefoutvoorbeeld.

Nieuwe pogingen kunnen een overbelaste dependency ook zwaarder belasten. Gebruik begrensde pogingen, time-outs en passende backoff. Vermijd gelijktijdige herhaalpogingen over alle instanties. AWS legt uit waarom backoff en jitter deze versterking helpen verminderen. Richtlijnen voor herhaalpogingen.

Test het fictieve beleid tegen drie gevallen. Eén gestopte worker moet herstellen. Een database-uitval moet herhaalde vervanging voorkomen. Een onzeker integriteitsprobleem moet automatisering stoppen en om een responsbeslissing vragen.

Controleer ook ontbrekende telemetrie. Een ontbrekende heartbeat kan een uitgevallen worker of een defect verzamelpad betekenen. De controller heeft voldoende bewijs voor zijn actie nodig, geen vertrouwen in een AI-verklaring.

Meet of het beleid helpt

Leg geverifieerd herstel, mislukte pogingen, escalaties, dubbel werk en de duur van gebruikersimpact vast. Vergelijk dit met de vorige beheermethode onder vergelijkbare omstandigheden.

Houd het onderliggende defect als engineeringwerk open. Een proces met een geheugenlek herhaaldelijk herstarten kan de directe impact beperken terwijl het lek blijft bestaan. Ga verder met self-improvement om de waarneming te verbinden met een blijvende correctie.

Maak de oefening

Ontwerp herstelbeleid voor de fictieve exportworker in deze les. Specificeer de trigger, uitsluitingen, toegestane actie, herhaallimiet, wachttijd, succescontrole en escalatieverantwoordelijke. Test het tegen een database-uitval en een onbekend probleem met gegevensintegriteit.

Werkblad downloaden (Markdown)

Controleer uw begrip

De controller heeft een worker twee keer herstart. De wachtrij blijft groeien en de database is onbereikbaar. Wat moet het beleid doen?

Bronnen en verder lezen

Gerelateerd leesmateriaal van Taiga