Închideți bucla prin îmbunătățiri verificate
TerminatTransformați dovezile din producție în cerințe, teste, modificări controlate și rezultate măsurate. Definiți ce poate însemna, în mod responsabil, un sistem software care se îmbunătățește prin feedback.
Publicat de TaigaCum scriem
Verificați ce ați înțelesUn agent reduce latența exportului omițând verificările de autorizare. Indicatorul de viteză se îmbunătățește. S-a îmbunătățit sistemul?Faceți exercițiul
Ce veți învăța
- Legați o observație operațională de o modificare de inginerie verificabilă.
- Separați recuperarea la execuție, îmbunătățirea fluxului de lucru și antrenarea modelului.
- Măsurați o îmbunătățire declarată fără a-i slăbi evaluarea.
Definiți bucla pe care doriți să o închideți
Software-ul produce dovezi în timpul utilizării: erori, întârzieri, cereri de suport, incidente, constatări de mentenanță și lucru manual repetat. Un ciclu de viață complet readuce aceste dovezi în deciziile de inginerie.
Într-un sistem software care se îmbunătățește prin feedback, automatizarea poate ajuta la identificarea, propunerea, implementarea și verificarea modificărilor. Nu înseamnă neapărat că un model se antrenează singur. Precizați ce parte se schimbă: codul aplicației, configurația, testele, instrucțiunile, fluxul de lucru sau parametrii modelului.
Recuperarea automată restabilește o stare cunoscută de funcționare. Îmbunătățirea sistemului prin feedback schimbă sistemul pentru un rezultat viitor mai bun. A doua afirmație necesită comparație și protecție împotriva regresiilor.
Urmăriți o observație prin ciclul de viață
Secvența de mai jos este o metodă de inginerie propusă. Nu afirmă că vreun produs execută autonom fiecare pas.
| Etapă | Rezultat necesar | Exemplu fictiv de export |
|---|---|---|
| Observare | Dovezi cu versiune, domeniu și incertitudine | Memoria workerului crește în timpul exporturilor mari |
| Diagnosticare | Cauză testabilă și explicații concurente | Bufferele de rânduri păstrate pot explica creșterea memoriei |
| Specificare | Rezultat dorit și constrângeri | Transmiteți rândurile în flux fără a schimba permisiunile sau rezultatul |
| Reproducere | Un test care expune defecțiunea inițială | Un export sintetic mare și reprezentativ depășește limita |
| Modificare | O corecție verificabilă | Eliberați bufferele rândurilor deja procesate în timpul transmiterii în flux |
| Evaluare | Defecțiunea veche este tratată; alte cerințe sunt păstrate | Trec testul de memorie, comparația rezultatului, verificările autorizării și reîncercării |
| Lansare | Acces limitat la versiune, cu criterii de recuperare | Lansare limitată a unui artefact identificat |
| Verificare | Dovezi comparabile din producție și un responsabil | Memoria se stabilizează, iar corectitudinea și latența rămân acceptabile |
Păstrați legăturile între aceste rezultate. O acțiune post-incident care spune „îmbunătățiți monitorizarea” este greu de verificat. Un semnal definit, un responsabil, un prag și un răspuns testat fac terminarea observabilă.
Păstrați evaluarea independentă de propunere
Un agent poate crea un patch și propune teste. Echipa trebuie totuși să inspecteze dacă testele detectează problema inițială. Păstrați un set de evaluare cu versiuni, pe care modificarea nu îl poate slăbi în tăcere.
Pentru pierderea fictivă de memorie, comparați sarcini de lucru și versiuni echivalente. Includeți exporturi mari, anulare, reîncercare și cazuri de refuz al accesului. Folosiți date sintetice care reprezintă structurile relevante fără a expune înregistrări despre clienți.
Respingeți un export mai rapid dacă omite înregistrări, ocolește autorizarea sau depășește costul permis. Definiți constrângerile înainte de optimizare. Altfel, sistemul poate îmbunătăți indicatorul ales, înrăutățind serviciul.
Dacă schimbați instrucțiunile sau modelul unui agent, evaluați comportamentul pe sarcini reprezentative și defecțiuni cunoscute. Păstrați disponibilă versiunea anterioară. Actualizarea instrucțiunilor nu dovedește că modelul de bază a învățat din incident.
Lansați și măsurați rezultatul
O lansare canary oferă unui grup limitat acces la o versiune candidată. Comparați semnalele versiunii candidate cu cele de control și definiți când extindeți sau opriți lansarea. Traficul rar sau sarcinile de lucru diferite pot face comparația neconcludentă. Ghidul lansărilor canary.
Echipa fictivă înregistrează o referință inițială dintr-o sarcină sintetică fixă. Testează corecția, lansează în limite aprobate și verifică perioade comparabile din producție. Dacă dovezile rămân insuficiente, consemnează incertitudinea în loc să declare un câștig.
Măsurați și lucrul manual repetat. Automatizarea poate reduce munca repetitivă, dar necesită și mentenanță și gestionarea eșecurilor. Includeți costurile când evaluați rezultatul. Ghid pentru reducerea muncii repetitive.
Faceți consemnarea feedbackului utilizabilă
Folosiți aceste câmpuri pentru exercițiu: observație și versiune; referință inițială; cauză propusă; criterii de acceptare; verificări de regresie; modificare și evaluare; limita lansării; rezultat măsurat; responsabil și următoarea reevaluare.
Taiga Maintaining leagă constatările din depozitul de cod de lucrul de remediere. Inițiativele leagă modificarea intenționată de planificare și livrare. Acestea oferă părți ale unui lanț de dovezi. Responsabilul serviciului trebuie totuși să verifice instalarea și rezultatul operațional. Maintaining, Initiatives.
O fabrică de software matură conectează acest lucru între produse. Păstrați vizibile drepturile de decizie și criteriile de evaluare pe măsură ce automatizarea crește. Dovada finală este un serviciu mai bun, verificat, nu un număr mai mare de modificări generate.
Faceți exercițiul
Completați consemnarea de feedback din această lecție pentru pierderea fictivă de memorie (memory leak). Definiți o referință inițială, un test de acceptare, verificări de regresie, limita lansării, măsurarea în producție și un responsabil. Adăugați o regulă de respingere a unui export mai rapid, dar mai puțin corect.
Descărcați fișa de lucru (Markdown)Debifarea acestei opțiuni șterge tot progresul salvat în acest browser.
Progresul rămâne în acest browser. Fără cont, fără urmărire.
Surse și lecturi suplimentare
- Google SRE: Postmortem Culture ↗
- Google SRE: Canarying Releases ↗
- Google SRE: Eliminating Toil ↗
- Taiga docs: Maintaining ↗
- Taiga docs: Initiatives ↗