Lista de verificare pentru pregătirea în producție

Traducerea articolului a fost pregătită special pentru studenții cursului „Practicile și instrumentele DevOps”, care începe deja astăzi!

Lista de verificare pentru pregătirea în producție

Ați lansat vreodată un nou serviciu în producție? Sau poate ați gestionat servicii de acest gen? Dacă da, ce v-a ghidat? Ce este bine pentru producție și ce este rău? Cum îi instruiți pe noii membri ai echipei în privința lansărilor sau a întreținerii serviciilor existente?

Cele mai multe companii, în ceea ce privește practicile de operare industrială, ajung în cele din urmă la abordări de tip „Vestul Sălbatic”. Fiecare echipă, prin încercări și greșeli, își aleg singură instrumentele și cele mai bune practici. Dar acest lucru afectează adesea nu doar succesul proiectelor, ci și inginerii.

Metoda încercării și erorii creează un mediu în care căutarea vinovaților și transferul responsabilității devin comune. Comportamentul acesta face din ce în ce mai greu să învățăm din greșeli și să nu le repetăm.

Organizațiile de succes:

  • sunt conștiente de necesitatea unor ghiduri pentru producție,
  • studiază cele mai bune practici,
  • încep discuții despre pregătirea pentru producție în timpul dezvoltării de noi sisteme sau componente,
  • asigură respectarea normelor de pregătire pentru producție.

Pregătirea pentru producție include procesul de „revizuire”. Revizuirea poate fi realizată sub formă de listă de verificare sau set de întrebări. Revizuirea poate fi efectuată manual, automat sau prin ambele metode. În loc de liste statice de cerințe, putem crea șabloane de liste de verificare, care să fie adaptate la nevoile specifice. Astfel, inginerii pot beneficia de un mod de a moșteni cunoștințe și flexibilitate suficientă atunci când este necesar.

Când să verificați serviciul pentru pregătirea pentru producție?

Verificarea pregătirii pentru producție ar trebui efectuată nu doar imediat înainte de lansare, ci și atunci când se predă unui alt echipe de operare sau unui nou angajat.

Faceți verificări atunci când:

  • Lansați un nou serviciu în producție.
  • Predați operarea unui serviciu de producție către altă echipă, cum ar fi SRE.
  • Predați operarea unui serviciu de producție noilor angajați.
  • Organizați suport tehnic.

Lista de verificare pentru pregătirea pentru producție

Cu ceva timp în urmă, ca exemplu, am a publicat lista de verificare pentru pregătirea pentru producție. Deși această listă a fost creată în colaborare cu clienții Google Cloud, va fi utilă și aplicabilă și dincolo de Google Cloud.

Proiectare și dezvoltare

  • Dezvoltați un proces de construire reproducibil, care să nu necesite acces la servicii externe și să nu depindă de defecțiunile sistemelor externe.
  • În perioada de proiectare și dezvoltare, definiți și stabiliți SLO pentru serviciile dumneavoastră.
  • Documentați așteptările referitoare la disponibilitatea serviciilor externe de care depindeți.
  • Evitați punctele unice de eșec eliminând dependențele de o singură resursă globală. Replicați resursa sau utilizați o alternativă de rezervă atunci când resursa nu este disponibilă (de exemplu, o valoare codificată fix).

Managementul configurației

  • Configurarea statică, mică și nesecurizată poate fi transmisă prin parametrii liniei de comandă. Pentru tot restul, utilizați servicii de stocare a configurației.
  • Configurarea dinamică ar trebui să aibă setări de rezervă în caz de indisponibilitate a serviciului de configurare.
  • Configurarea mediului de dezvoltare nu ar trebui să fie legată de configurația de producție. Altfel, acest lucru ar putea duce la accesul din mediul de dezvoltare la serviciile de producție, ceea ce poate cauza probleme de confidențialitate și scurgeri de date.
  • Documentați ceea ce poate fi configurat dinamic și descrieți comportamentul de rezervă în cazul în care sistemul de livrare a configurației nu este disponibil.

Gestionarea versiunilor

  • Documentați în detaliu procesul de lansare. Descrieți cum lansările afectează SLO (de exemplu, creșterea temporară a latențelor din cauza rateurilor cache-ului).
  • Documentați lansările canar.
  • Dezvoltați un plan de analiză a lansărilor canar și, atunci când este posibil, mecanisme de revenire automată.
  • Asigurați-vă că revenirea poate folosi aceleași procese ca și desfășurarea.

Potrivit pentru monitorizare (Observabilitate)

  • Asigurați-vă că se colectează un set de metrici necesare pentru SLO.
  • Asigurați-vă că se poate distinge între datele client și cele server. Acest lucru este important pentru identificarea cauzelor defectelor.
  • Configurați alertele pentru a reduce efortul de muncă. De exemplu, eliminați alertele cauzate de operațiuni de rutină.
  • Dacă utilizați Stackdriver, activați metricile platformei GCP în tablourile de bord. Configurați alertele pentru dependențele GCP.
  • Întotdeauna distribuiți trasarea de intrare. Chiar dacă nu participați la trasare, acest lucru va permite serviciilor de nivel inferior să depisteze problemele din producție.

Protecție și securitate

  • Asigurați-vă că toate conexiunile externe sunt criptate.
  • Asigurați-vă că proiectele dvs. de producție au configurarea IAM corectă.
  • Folosiți rețele pentru a izola grupurile de instanțe de mașini virtuale.
  • Folosiți VPN pentru a vă conecta în siguranță la rețelele îndepărtate.
  • Documentați și monitorizați accesul utilizatorilor la date. Asigurați-vă că tot accesul utilizatorilor la date este verificat și înregistrat.
  • Asigurați-vă că punctele finale pentru depanare sunt limitate prin ACL.
  • Sanitizați input-ul utilizatorului. Configurați limitele dimensiunii payload-ului pentru input-ul utilizatorului.
  • Asigurați-vă că serviciul dvs. poate bloca selectiv traficul de intrare pentru utilizatori individuali. Aceasta va permite blocarea încălcărilor fără a afecta alți utilizatori.
  • Evitati punctele finale externe care inițiază un număr mare de operațiuni interne.

Planificarea capacităților

  • Documentați cum se scalează serviciul dvs. De exemplu: numărul de utilizatori, dimensiunea payload-ului de intrare, numărul de mesaje primite.
  • Documentați cerințele de resurse pentru serviciul dvs. De exemplu: numărul de instanțe virtuale dedicate, numărul de instanțe Spanner, echipamente specializate, cum ar fi GPU sau TPU.
  • Documentați limitele resurselor: tipul de resursă, regiunea etc.
  • Documentați limitele de cote pentru crearea de noi resurse. De exemplu, limita numărului de solicitări API GCE, dacă folosiți API pentru a crea noi instanțe.
  • Luați în considerare efectuarea testelor de încărcare pentru a analiza scăderea performanței.

Asta e tot. Ne vedem la cursuri!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster