Lumaktaw sa nilalaman
Galugarin ang website
Talakayin ang iyong proyekto

contact@almousa.dev

PARAAN NG PAGHAHATID / MULA SA CODE HANGGANG SA PAGPAPATAKBO

Engineering at mga operasyon

Kasama sa aming trabaho ang pagsusuri ng ibang tao at isang diskarte sa GitHub Actions sa mga pagsubok at build. Inilalarawan ng page na ito ang aming patakaran sa paghahatid at pagpapatakbo. Ang bawat kontrol ay ipinatupad at na-verify sa loob ng napagkasunduang saklaw ng proyekto; ang pagsasama nito dito ay hindi nagtatatag na ang bawat setting ay pinagana para sa bawat proyekto.

Mula sa pagbabago ng code hanggang sa live na paggamit

  1. Git

    Subaybayan ang mga pagbabago, linawin ang layunin ng bawat isa, at pamahalaan ang mga ito sa pamamagitan ng pull request na maaaring suriin.

  2. Pagsusuri ng Code

    Ipasuri sa ibang tao ang pagbabago. Ang pagsasama ay nangangailangan ng pag-apruba, at ang mga kasunod na pagbabago ay nangangailangan ng panibagong pagsusuri.

  3. CI

    Magpatakbo ng mga awtomatikong pagsusuri gamit ang GitHub Actions at tiyaking pumasa ang lahat ng kinakailangang pagsusuri bago mag-merge.

  4. Mga pagsubok

    I-verify ang gawi na apektado ng pagbabago at magdagdag ng mga pagsubok na naaangkop sa mga panganib at saklaw nito.

  5. Build

    Gumawa ng makikilala at masusubaybayang release pagkatapos na pumasa ang mga kinakailangang pagsusuri.

  6. Kapaligiran ng staging

    Subukan ang release sa isang kapaligirang hiwalay sa live na sistema, gamit ang test data at hiwalay na lihim na mga kredensyal.

  7. Pagtanggap

    Ayon sa laki ng pagbabago, inaaprubahan ng technical lead ng koponan ang teknikal na kahandaan, at inaaprubahan ng kliyente o kinatawan nito ang pagsunod sa mga pangangailangan. Idokumento ang pagtanggap.

  8. Live na kapaligiran

    I-deploy ang naaprubahang release gamit ang itinakdang mga pahintulot, at pigilan ang deployment kung hindi pumasa sa isang kinakailangang pagsusuri.

  9. Pagsubaybay

    Pagkatapos ng deployment, suriin kung maayos na gumagana ang serbisyo at magsagawa ng panloob na pagsubaybay sa availability, performance, at mga error.

Mga lohikal na yugto ang mga ito; maaaring tumakbo ang mga test at build sa loob ng CI. Bago ang deployment, itinatakda para sa bawat proyekto ang mga kinakailangang pagsusuri para sa pagtanggap at mga pahintulot.

Ang mga sumusunod na kontrol ay naaprubahang patakaran upang ipatupad at i-verify sa loob ng kasunduan sa proyekto. Ang aktwal na mga responsibilidad sa pagpapatakbo ay ang mga itinalaga sa mga operasyon o kontrata ng suporta.

Pag-log

Nililimitahan ang mga log sa impormasyong kailangan para matukoy ang mga pagkabigo at masuportahan ang pagpapatakbo. Inaalis o itinatago ang sensitibong data, at mga awtorisadong tao lamang ang may access. Itinatakda ang panahon ng pag-iimbak ayon sa pangangailangan sa pagpapatakbo, at awtomatikong binubura ang data kapag lumipas na ito. Hindi dapat itala sa mga log ang mga password at access key. Hindi rin dapat basta itala nang buo ang sensitibong nilalaman ng mga request.

Pagsubaybay sa mga error

Kinokolekta at binibigyang-priyoridad ang mga error ayon sa epekto nito sa serbisyo, na may mga alerto na tumutulong sa itinalagang tao na magsiyasat at mag-follow up. Bina-redact ang data bago ito ipadala sa tool sa pagsubaybay, at hindi dapat maging hindi kinakailangang koleksyon ng data ng bisita ang mga diagnostic.

Pagsubaybay

Ang naaprubahang patakaran ay nangangailangan ng awtomatikong pagsubaybay sa availability, performance, at mga error, na may itinalagang tao na responsable para sa pagtanggap at pag-follow up sa mga alerto. Ang kasunduan sa pagpapatakbo o suporta ay tumutukoy sa mga oras ng saklaw, oras ng pagtugon, at mga responsibilidad. Ang patakarang ito ay hindi nangangako ng buong-panahong pagsubaybay ng tao o isang partikular na porsyento ng availability.

Mga backup

Ang naaprubahang patakaran ay nangangailangan ng mga awtomatiko, naka-encrypt na backup na nakahiwalay sa pangunahing system, na may tinukoy na panahon ng pagpapanatili at mga pana-panahong pagsusuri sa pagpapanumbalik. Tinutukoy ng kontrata kung sino ang responsable para sa mga backup, follow-up, at pagpapanumbalik; ang responsibilidad ay hindi awtomatikong ipinapasa sa developer dahil lamang sa ginawa nila ang website.

Nakabatay ang saklaw ng backup sa data na talagang umiiral: mga file ng website, digital na asset, configuration na kailangan para sa pagpapanumbalik, at data na nagbabago sa paglipas ng panahon, kung mayroon. Hindi sapat na matagumpay lang ang paggawa ng backup; kailangang matiyak na magagamit ito sa pagpapanumbalik. Ang dalas ng backup, katanggap-tanggap na pagkawala ng data, at oras ng pagpapanumbalik ay itinatakda ayon sa pangangailangan ng serbisyo at kasunduan. Walang pangakong nakabatay sa tiyak na bilang o tagal kung hindi ito naaprubahan.

Rollback

Panatilihin ang isang stable na release at maghanda ng isang nasubok na pamamaraan ng rollback, na may mga pagsusuri sa kalusugan ng serbisyo pagkatapos ng deployment at pagkatapos ng rollback. Ang mga pagbabago sa database, kung mayroon man, ay nangangailangan ng isang hiwalay na plano upang protektahan ang data at i-verify ang pagiging tugma. Ang pagpapanumbalik ng mga file ng application ay hindi dapat ipagpalagay na awtomatikong maibabalik ang data.

Pamamahala ng mga lihim na kredensyal

Ang mga password ng serbisyo at API key ay iniimbak sa isang nakatalagang secrets manager. Ang mga lihim ng pagsubok at produksyon ay pinaghihiwalay, at ang pag-access ay pinaghihigpitan ayon sa pangangailangan. Ang mga lihim ay hindi dapat lumabas sa source code, pampublikong frontend file, o mga log. Ang mga ito ay binabawi at pinapalitan kapag pinaghihinalaan ang pagkakalantad, at sinusuri ang mga pahintulot sa pag-access.