Checklist ng kahandaan sa produksyon

Ang pagsasalin ng artikulo ay partikular na inihanda para sa mga mag-aaral ng kurso "Mga kasanayan at tool ng DevOps", na magsisimula ngayon!

Checklist ng kahandaan sa produksyon

Naglabas ka na ba ng bagong serbisyo sa produksyon? O baka kasangkot ka sa pagsuporta sa mga naturang serbisyo? Kung oo, ano ang nag-udyok sa iyo? Ano ang mabuti para sa produksyon at ano ang masama? Paano mo sinasanay ang mga bagong miyembro ng koponan sa mga paglabas o pagpapanatili ng mga kasalukuyang serbisyo.

Karamihan sa mga kumpanya ay nagtatapos sa pag-aampon ng "Wild West" na mga diskarte pagdating sa mga kasanayan sa operasyong pang-industriya. Ang bawat koponan ay nagpapasya sa sarili nitong mga tool at pinakamahusay na kasanayan sa pamamagitan ng pagsubok at pagkakamali. Ngunit madalas itong nakakaapekto hindi lamang sa tagumpay ng mga proyekto, kundi pati na rin sa mga inhinyero.

Ang pagsubok at error ay lumilikha ng isang kapaligiran kung saan karaniwan ang pagturo ng daliri at pagsisisi. Sa ganitong pag-uugali, lalong nagiging mahirap na matuto mula sa mga pagkakamali at hindi na ulitin ang mga ito.

Mga matagumpay na organisasyon:

  • mapagtanto ang pangangailangan para sa mga alituntunin para sa produksyon,
  • pag-aralan ang pinakamahusay na kasanayan,
  • simulan ang mga talakayan sa mga isyu sa pagiging handa sa produksyon kapag bumubuo ng mga bagong sistema o bahagi,
  • tiyakin ang pagsunod sa mga tuntunin ng paghahanda para sa produksyon.

Kasama sa paghahanda para sa produksyon ang proseso ng "pagsusuri". Ang pagsusuri ay maaaring nasa anyo ng isang checklist o isang hanay ng mga tanong. Ang mga pagsusuri ay maaaring gawin nang manu-mano, awtomatiko, o pareho. Sa halip na mga static na listahan ng mga kinakailangan, maaari kang gumawa ng mga template ng checklist na maaaring iakma sa mga partikular na pangangailangan. Sa ganitong paraan, mabibigyan ang mga inhinyero ng paraan upang magmana ng kaalaman at sapat na flexibility kung kinakailangan.

Kailan susuriin ang isang serbisyo para sa kahandaan para sa produksyon?

Kapaki-pakinabang na magsagawa ng pagsusuri sa kahandaan ng produksyon hindi lamang kaagad bago ilabas, kundi pati na rin kapag inilipat ito sa isa pang pangkat ng operasyon o isang bagong empleyado.

Suriin kung kailan:

  • Naglalabas ka ng bagong serbisyo sa produksyon.
  • Ililipat mo ang pagpapatakbo ng serbisyo sa produksyon sa ibang team, gaya ng SRE.
  • Inilipat mo ang pagpapatakbo ng serbisyo sa produksyon sa mga bagong empleyado.
  • Ayusin ang teknikal na suporta.

Checklist ng kahandaan sa produksyon

Noong nakaraan, bilang isang halimbawa, ako ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° checklist para sa pagsubok ng kahandaan para sa produksyon. Bagama't nagmula ang listahang ito sa mga customer ng Google Cloud, magiging kapaki-pakinabang at naaangkop ito sa labas ng Google Cloud.

Disenyo at pag-unlad

  • Bumuo ng isang paulit-ulit na proseso ng pagbuo na hindi nangangailangan ng access sa mga panlabas na serbisyo at hindi nakadepende sa pagkabigo ng mga panlabas na system.
  • Sa panahon ng disenyo at pagbuo, tukuyin at itakda ang mga SLO para sa iyong mga serbisyo.
  • Idokumento ang mga inaasahan para sa pagkakaroon ng mga panlabas na serbisyo kung saan ka umaasa.
  • Iwasan ang isang punto ng pagkabigo sa pamamagitan ng pag-alis ng mga dependency sa isang pandaigdigang mapagkukunan. Gawin ang resource o gumamit ng fallback kapag hindi available ang resource (halimbawa, isang hard-coded na value).

Pamamahala ng configuration

  • Maaaring maipasa ang static, maliit, at hindi lihim na configuration sa pamamagitan ng mga parameter ng command line. Para sa lahat ng iba pa, gumamit ng mga serbisyo sa imbakan ng pagsasaayos.
  • Ang isang dynamic na configuration ay dapat mayroong fallback na mga setting kung sakaling hindi available ang configuration service.
  • Ang configuration ng development environment ay hindi dapat nauugnay sa production configuration. Kung hindi, maaaring humantong ito sa pag-access mula sa development environment patungo sa mga serbisyo ng produksyon, na maaaring magdulot ng mga isyu sa privacy at pagtagas ng data.
  • Idokumento kung ano ang maaaring i-configure nang dynamic at ilarawan ang fallback na gawi kung hindi available ang configuration delivery system.

Pamamahala ng release

  • Idokumento ang proseso ng paglabas nang detalyado. Ilarawan kung paano naaapektuhan ng mga release ang mga SLO (halimbawa, pansamantalang pagtaas ng latency dahil sa mga miss ng cache).
  • Idokumento ang mga paglabas ng canary.
  • Bumuo ng plano sa pagsusuri ng paglabas ng canary at, kung maaari, mga awtomatikong mekanismo ng rollback.
  • Tiyaking magagamit ng mga rollback ang parehong mga proseso gaya ng mga deployment.

Pagmamasid

  • Tiyakin na ang hanay ng mga sukatan na kinakailangan para sa SLO ay nakolekta.
  • Tiyaking maaari mong pag-iba-iba ang data ng kliyente at server. Ito ay mahalaga para sa paghahanap ng mga sanhi ng mga malfunctions.
  • Mag-set up ng mga alerto upang bawasan ang mga gastos sa paggawa. Halimbawa, alisin ang mga alerto na dulot ng mga nakagawiang operasyon.
  • Kung gumagamit ka ng Stackdriver, isama ang mga sukatan ng platform ng GCP sa iyong mga dashboard. Mag-set up ng mga alerto para sa mga dependency ng GCP.
  • Palaging ipalaganap ang mga papasok na bakas. Kahit na hindi ka kasali sa pagsubaybay, magbibigay-daan ito sa mga serbisyo sa mas mababang antas na i-debug ang mga isyu sa produksyon.

Proteksyon at kaligtasan

  • Tiyaking naka-encrypt ang lahat ng panlabas na koneksyon.
  • Tiyaking may tamang IAM setup ang iyong mga proyekto sa produksyon.
  • Gumamit ng mga network upang ihiwalay ang mga grupo ng mga virtual machine na instance.
  • Gumamit ng VPN para secure na kumonekta sa mga malalayong network.
  • Idokumento at subaybayan ang access ng user sa data. Tiyakin na ang lahat ng access ng user sa data ay na-audit at naka-log.
  • Tiyaking pinaghihigpitan ng mga ACL ang mga pag-debug na endpoint.
  • I-sanitize ang input ng user. I-configure ang mga limitasyon sa laki ng payload para sa input ng user.
  • Tiyaking maaaring piliing i-block ng iyong serbisyo ang papasok na trapiko para sa mga indibidwal na user. Iba-block nito ang mga paglabag nang hindi naaapektuhan ang ibang mga user.
  • Iwasan ang mga panlabas na endpoint na nagpapasimula ng maraming panloob na operasyon.

Pagpaplano ng kapasidad

  • Idokumento kung paano sumusukat ang iyong serbisyo. Halimbawa: bilang ng mga gumagamit, laki ng papasok na kargamento, bilang ng mga papasok na mensahe.
  • Idokumento ang mga kinakailangan sa mapagkukunan para sa iyong serbisyo. Halimbawa: bilang ng mga nakalaang virtual machine na instance, bilang ng mga instance ng Spanner, espesyal na hardware gaya ng GPU o TPU.
  • Mga limitasyon sa mapagkukunan ng dokumento: uri ng mapagkukunan, rehiyon, atbp.
  • Idokumento ang mga paghihigpit sa quota para sa paglikha ng mga bagong mapagkukunan. Halimbawa, nililimitahan ang bilang ng mga kahilingan sa GCE API kung gagamitin mo ang API para gumawa ng mga bagong instance.
  • Isaalang-alang ang pagpapatakbo ng mga pagsubok sa pagkarga upang suriin ang pagkasira ng pagganap.

Iyon lang. Sa muling pagkikita sa klase!

Pinagmulan: www.habr.com

Magdagdag ng komento