Stel veilige grenzen aan self-healing
Automatiseer bekende herstelacties met expliciete bevoegdheid, verificatie en stopvoorwaarden. Scheid runtimeherstel van softwarewijzigingen.
Gepubliceerd door TaigaHoe 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
| Wijziging | Voorbeeld | Vereiste beslissing |
|---|---|---|
| Runtimeherstel | Eén uitgevallen stateless worker vervangen | Vooraf goedgekeurd herstelbeleid kan dit autoriseren |
| Softwarecorrectie | Het geheugenlek verhelpen waardoor de worker stopt | Review, tests, releasecontroles en verificatie in productie |
| Beleidswijziging | De toegestane herstartfrequentie of toegangsscope vergroten | Expliciete 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.
| Beleidsveld | Fictieve regel voor de exportworker |
|---|---|
| Trigger | De workerheartbeat ontbreekt 90 seconden en er staat werk in de wachtrij |
| Voorwaarden | Een andere worker is gezond; dependencycontroles slagen; geen vermoeden van compromittering of integriteitsproblemen |
| Toegestane actie | Eén worker vervangen met het huidige goedgekeurde artefact |
| Toestandsbescherming | Jobs gebruiken duurzame opslag en een geverifieerde idempotentiesleutel |
| Limiet | Hoogstens twee vervangingen in 15 minuten; nooit meer dan één tegelijk |
| Wachttijd | Na vervanging vijf minuten wachten vóór een volgende poging |
| Succes | Een synthetische job wordt correct voltooid en de getroffen wachtrij begint te krimpen |
| Stoppen en escaleren | Een 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
Bronnen en verder lezen
- Kubernetes: Self-Healing ↗
- AWS Builders’ Library: Timeouts, retries, and backoff with jitter ↗
- Google SRE: Automation at Google ↗
Gerelateerd leesmateriaal van Taiga
Als u deze selectie wist, verwijdert u alle voortgang die in deze browser is opgeslagen.
Voortgang blijft in deze browser. Geen account, geen tracking.