Parcurs 05Lecție 7 / 8

Stabiliți limite sigure pentru recuperarea automată

Automatizați acțiuni cunoscute de recuperare, cu autoritate explicită, verificare și condiții de oprire. Separați recuperarea la execuție de modificarea software-ului.

Avansat12 minVerificat

Publicat de Cum scriem

Verificați ce ați înțelesControllerul a repornit un worker de două ori. Coada continuă să crească, iar baza de date este inaccesibilă. Ce trebuie să prevadă politica?Faceți exercițiul
Controllerul a repornit un worker de două ori. Coada continuă să crească, iar baza de date este inaccesibilă. Ce trebuie să prevadă politica?

Ce veți învăța

  • Deosebiți recuperarea automată de o corecție software permanentă.
  • Definiți o politică limitată de recuperare și verificări independente ale reușitei.
  • Recunoașteți când automatizarea trebuie să se oprească și să escaladeze.

Restabiliți o stare cunoscută

Recuperarea automată detectează o defecțiune definită și încearcă o acțiune autorizată de recuperare. Repornirea unui proces defect sau înlocuirea unei instanțe care nu funcționează corect sunt exemple posibile. Acțiunea trebuie să corespundă defecțiunii și modelului de stare al serviciului.

Kubernetes poate înlocui instanțe de lucru defecte și reconcilia starea declarată. Aceasta nu corectează logica defectuoasă a aplicației sau orice defecțiune de stocare. Recuperarea infrastructurii și corectitudinea software-ului necesită verificări diferite. Recuperarea automată Kubernetes.

Definiți obiectivul înaintea mecanismului. Restabilirea unui export înseamnă că lucrul eligibil se termină corect. Un container care rulează este doar o precondiție.

Separați trei tipuri de modificare

ModificareExempluDecizie necesară
Recuperare la execuțieÎnlocuirea unui worker defect fără stare localăO politică de recuperare aprobată în prealabil poate autoriza acțiunea
Corecție softwareRemedierea pierderii de memorie (memory leak) care oprește workerulVerificare, teste, controale de lansare și confirmare în producție
Modificare de politicăCreșterea ratei permise de repornire sau a domeniului de accesAprobarea explicită a responsabilului politicii

Un agent poate propune o corecție după recuperare. Propunerea este o modificare software nouă. Nu trebuie să moștenească autoritate nelimitată de la controllerul de recuperare.

Controllerul nu trebuie nici să își editeze propriile criterii de reușită când o verificare eșuează. Altfel, sistemul poate raporta o îmbunătățire fără a îmbunătăți serviciul.

Scrieți politica de recuperare înainte de activare

Politica următoare este fictivă. Numerele sale ilustrează alegeri de proiectare; nu sunt valori implicite recomandate.

Câmp al politiciiRegulă fictivă pentru workerul de export
DeclanșatorSemnalul heartbeat al workerului lipsește timp de 90 de secunde și există lucru în coadă
PrecondițiiAlt worker este sănătos; verificările dependențelor trec; nu există suspiciuni de compromitere sau probleme de integritate
Acțiune permisăÎnlocuiți un worker folosind artefactul aprobat în prezent
Protecția stăriiJoburile folosesc stocare durabilă și o cheie de idempotență verificată
LimităCel mult două înlocuiri în 15 minute; niciodată mai mult de una simultan
PauzăAșteptați cinci minute după înlocuire înainte de o nouă încercare
ReușităUn job sintetic se termină corect, iar coada afectată începe să se golească
Oprire și escaladareOrice precondiție nu este îndeplinită, limita este atinsă sau reușita nu poate fi verificată

Folosiți o identitate cu privilegii minime. Consemnați versiunea politicii, dovezile declanșatorului, acțiunea, resursa și rezultatul. Oferiți o metodă independentă de dezactivare a controllerului. Definiți responsabilul uman care primește escaladarea.

Testați căile de eșec și recuperarea reușită

O reîncercare poate repeta un efect secundar. Un worker poate stoca un fișier și se poate opri înainte de confirmarea jobului. Verificați idempotența înainte de a permite altă execuție. Consultați exemplul de defecțiune cloud native.

Reîncercările pot și amplifica supraîncărcarea unei dependențe. Folosiți încercări limitate, timpi maximi de așteptare și întârzieri adecvate. Evitați reîncercările sincronizate în toate instanțele. AWS explică de ce backoff și jitter ajută la reducerea acestei amplificări. Ghidul reîncercărilor.

Testați politica fictivă pe trei cazuri. Un singur worker oprit trebuie recuperat. O întrerupere a bazei de date trebuie să împiedice înlocuirile repetate. O problemă incertă de integritate trebuie să oprească automatizarea și să ceară o decizie de răspuns.

Verificați și telemetria lipsă. Absența unui heartbeat poate însemna un worker defect sau o cale de colectare defectă. Controllerul are nevoie de dovezi suficiente pentru acțiunea sa, nu de încredere într-o explicație AI.

Măsurați dacă politica ajută

Consemnați recuperările verificate, încercările nereușite, escaladările, lucrul duplicat și timpul în care utilizatorii au fost afectați. Comparați-le cu metoda anterioară de operare, în condiții similare.

Păstrați defectul de bază ca lucru de inginerie. Repornirea repetată a unui proces cu pierderi de memorie poate reduce impactul imediat, în timp ce pierderea continuă. Continuați cu îmbunătățirea sistemului prin feedback pentru a lega observația de o corecție durabilă.

Faceți exercițiul

Proiectați o politică de recuperare pentru workerul fictiv de export din această lecție. Precizați declanșatorul, excluderile, acțiunea permisă, limita reîncercărilor, pauza dintre încercări, verificarea reușitei și responsabilul escaladării. Testați-o pentru o întrerupere a bazei de date și o problemă necunoscută de integritate a datelor.

Descărcați fișa de lucru (Markdown)
Verificați ce ați înțeles ↑

Continuați învățarea

Surse și lecturi suplimentare

Lecturi asociate de la Taiga

← Lecția anterioară: Conectați livrarea la SOC și SIRT