Kontrolni seznam pripravljenosti za proizvodnjo

Prevod članka je bil pripravljen posebej za študente tečaja "Prakse in orodja DevOps", ki se začne danes!

Kontrolni seznam pripravljenosti za proizvodnjo

Ste že kdaj izdali novo storitev v produkcijo? Ali pa ste morda sodelovali pri podpori takih storitev? Če da, kaj vas je motiviralo? Kaj je dobro za proizvodnjo in kaj slabo? Kako usposabljate nove člane ekipe o izdajah ali vzdrževanju obstoječih storitev.

Večina podjetij na koncu sprejme pristope »divjega zahoda«, ko gre za prakse industrijskega delovanja. Vsaka ekipa se s poskusi in napakami odloči za lastna orodja in najboljše prakse. Toda to pogosto ne vpliva le na uspeh projektov, ampak tudi na inženirje.

Poskusi in napake ustvarjajo okolje, kjer sta kazanje s prstom in prelaganje krivde običajno. S takšnim vedenjem se vse težje učiti iz napak in jih ne ponavljati več.

Uspešne organizacije:

  • spoznati potrebo po smernicah za proizvodnjo,
  • preučiti najboljše prakse,
  • začeti razprave o vprašanjih pripravljenosti za proizvodnjo pri razvoju novih sistemov ali komponent,
  • zagotoviti skladnost s pravili priprave za proizvodnjo.

Priprava na proizvodnjo vključuje proces "pregleda". Pregled je lahko v obliki kontrolnega seznama ali sklopa vprašanj. Preglede je mogoče opraviti ročno, samodejno ali oboje. Namesto statičnih seznamov zahtev lahko naredite predloge kontrolnih seznamov, ki jih je mogoče prilagoditi posebnim potrebam. Na ta način lahko inženirji dobijo možnost dedovanja znanja in dovolj prilagodljivosti, ko je to potrebno.

Kdaj preveriti pripravljenost storitve za proizvodnjo?

Koristno je opraviti preverjanje pripravljenosti proizvodnje ne samo tik pred izdajo, ampak tudi ob prenosu na drugo operativno skupino ali novega zaposlenega.

Preverite kdaj:

  • Spuščate novo storitev v proizvodnjo.
  • Delovanje produkcijske storitve prenesete na drugo skupino, kot je SRE.
  • Delovanje proizvodne službe prenesete na nove sodelavce.
  • Organizirajte tehnično podporo.

Kontrolni seznam pripravljenosti za proizvodnjo

Pred časom sem npr objavljeno kontrolni seznam za testiranje pripravljenosti za proizvodnjo. Čeprav je ta seznam nastal pri strankah storitve Google Cloud, bo uporaben in uporaben zunaj storitve Google Cloud.

Oblikovanje in razvoj

  • Razvijte ponovljiv proces gradnje, ki ne zahteva dostopa do zunanjih storitev in ni odvisen od napak zunanjih sistemov.
  • V obdobju načrtovanja in razvoja definirajte in nastavite SLO za svoje storitve.
  • Dokumentirajte pričakovanja glede razpoložljivosti zunanjih storitev, od katerih ste odvisni.
  • Izognite se eni sami točki odpovedi tako, da odstranite odvisnosti od enega samega globalnega vira. Podvojite vir ali uporabite nadomestno možnost, ko vir ni na voljo (na primer trdo kodirana vrednost).

Upravljanje konfiguracije

  • Statično, majhno in neskrivno konfiguracijo je mogoče posredovati prek parametrov ukazne vrstice. Za vse ostalo uporabite storitve za shranjevanje konfiguracije.
  • Dinamična konfiguracija mora imeti nadomestne nastavitve v primeru, da konfiguracijska storitev ni na voljo.
  • Konfiguracija razvojnega okolja ne sme biti povezana s konfiguracijo proizvodnje. V nasprotnem primeru lahko to povzroči dostop iz razvojnega okolja do proizvodnih storitev, kar lahko povzroči težave z zasebnostjo in uhajanje podatkov.
  • Dokumentirajte, kaj je mogoče dinamično konfigurirati, in opišite nadomestno vedenje, če sistem za dostavo konfiguracije ni na voljo.

Upravljanje izdaj

  • Podrobno dokumentirajte postopek izdaje. Opišite, kako izdaje vplivajo na SLO (na primer začasno povečanje zakasnitve zaradi zamud v predpomnilniku).
  • Objave kanarčkov dokumentov.
  • Razvijte načrt pregleda izdaje Canary in, če je mogoče, mehanizme za samodejno povrnitev.
  • Prepričajte se, da lahko povrnitve uporabljajo iste postopke kot razmestitve.

Opazljivost

  • Prepričajte se, da je zbran nabor meritev, potrebnih za SLO.
  • Prepričajte se, da lahko razlikujete med podatki odjemalca in strežnika. To je pomembno za iskanje vzrokov za okvare.
  • Nastavite opozorila za zmanjšanje stroškov dela. Odstranite na primer opozorila, ki jih povzročajo rutinske operacije.
  • Če uporabljate Stackdriver, vključite meritve platforme GCP na svoje nadzorne plošče. Nastavite opozorila za odvisnosti GCP.
  • Vedno razširi dohodne sledi. Tudi če niste vključeni v sledenje, bo to omogočilo storitvam na nižji ravni, da odpravijo napake v proizvodnji.

Zaščita in varnost

  • Prepričajte se, da so vse zunanje povezave šifrirane.
  • Prepričajte se, da imajo vaši proizvodni projekti pravilno nastavitev IAM.
  • Uporabite omrežja za izolacijo skupin primerkov navideznih strojev.
  • Uporabite VPN za varno povezavo z oddaljenimi omrežji.
  • Dokumentirajte in spremljajte uporabniški dostop do podatkov. Poskrbite, da bodo vsi uporabniški dostopi do podatkov pregledani in zabeleženi.
  • Zagotovite, da so končne točke za odpravljanje napak omejene z ACL-ji.
  • Prečisti uporabniški vnos. Konfigurirajte omejitve velikosti tovora za uporabniški vnos.
  • Prepričajte se, da lahko vaša storitev selektivno blokira dohodni promet za posamezne uporabnike. To bo blokiralo kršitve brez vpliva na druge uporabnike.
  • Izogibajte se zunanjim končnim točkam, ki sprožijo veliko notranjih operacij.

Načrtovanje zmogljivosti

  • Dokumentirajte, kako se vaša storitev širi. Na primer: število uporabnikov, velikost dohodnega tovora, število dohodnih sporočil.
  • Dokumentirajte zahteve glede virov za vašo storitev. Na primer: število namenskih primerkov navideznega stroja, število primerkov Spanner, specializirana strojna oprema, kot je GPU ali TPE.
  • Omejitve virov dokumenta: vrsta vira, regija itd.
  • Omejitve kvot dokumentov za ustvarjanje novih virov. Na primer, omejite število zahtev GCE API, če uporabljate API za ustvarjanje novih primerkov.
  • Razmislite o izvedbi obremenitvenih testov za analizo poslabšanja zmogljivosti.

To je vse. Se vidimo v razredu!

Vir: www.habr.com

Dodaj komentar