Kontrolný zoznam pripravenosti výroby

Preklad článku bol pripravený špeciálne pre študentov kurzu "Postupy a nástroje DevOps", ktorá začína dnes!

Kontrolný zoznam pripravenosti výroby

Spustili ste niekedy novú službu do produkcie? Alebo ste sa možno podieľali na podpore takýchto služieb? Ak áno, čo ťa motivovalo? Čo je dobré pre výrobu a čo je zlé? Ako školíte nových členov tímu o vydaniach alebo údržbe existujúcich služieb.

Väčšina spoločností nakoniec prijíma prístupy „divokého západu“, pokiaľ ide o praktiky priemyselnej prevádzky. Každý tím rozhoduje o svojich vlastných nástrojoch a osvedčených postupoch prostredníctvom pokusov a omylov. To však často ovplyvňuje nielen úspech projektov, ale aj inžinierov.

Pokus a omyl vytvára prostredie, kde je bežné osočovanie a prehadzovanie viny. S týmto správaním je čoraz ťažšie poučiť sa z chýb a už ich neopakovať.

Úspešné organizácie:

  • uvedomiť si potrebu smerníc pre výrobu,
  • študovať osvedčené postupy,
  • začať diskusie o problémoch pripravenosti výroby pri vývoji nových systémov alebo komponentov,
  • zabezpečiť dodržiavanie pravidiel prípravy na výrobu.

Príprava na výrobu zahŕňa proces „kontroly“. Kontrola môže mať formu kontrolného zoznamu alebo súboru otázok. Kontroly je možné vykonávať manuálne, automaticky alebo oboje. Namiesto statických zoznamov požiadaviek môžete vytvoriť šablóny kontrolných zoznamov, ktoré je možné prispôsobiť špecifickým potrebám. Týmto spôsobom môžu inžinieri získať spôsob, ako zdediť znalosti a v prípade potreby dostatočnú flexibilitu.

Kedy skontrolovať pripravenosť služby na výrobu?

Je užitočné vykonať kontrolu pripravenosti výroby nielen bezprostredne pred uvoľnením, ale aj pri presune do iného operačného tímu alebo nového zamestnanca.

Skontrolujte, kedy:

  • Uvoľňujete do produkcie novú službu.
  • Prevádzku produkčnej služby presuniete na iný tím, napríklad SRE.
  • Prevádzate prevádzku výrobnej služby na nových zamestnancov.
  • Organizujte technickú podporu.

Kontrolný zoznam pripravenosti výroby

Pred časom som ako príklad uviedol I опубликовала kontrolný zoznam pre testovanie pripravenosti na výrobu. Hoci tento zoznam pochádza od zákazníkov služby Google Cloud, bude užitočný a použiteľný aj mimo služby Google Cloud.

Dizajn a vývoj

  • Vyviňte opakovateľný proces zostavovania, ktorý nevyžaduje prístup k externým službám a nie je závislý od zlyhania externých systémov.
  • Počas obdobia návrhu a vývoja definujte a nastavte SLO pre svoje služby.
  • Zdokumentujte očakávania týkajúce sa dostupnosti externých služieb, od ktorých ste závislí.
  • Vyhnite sa jedinému bodu zlyhania odstránením závislostí na jedinom globálnom zdroji. Replikujte zdroj alebo použite záložný zdroj, keď je zdroj nedostupný (napríklad pevne zakódovaná hodnota).

Správa konfigurácie

  • Statická, malá a neutajovaná konfigurácia môže byť odovzdaná cez parametre príkazového riadku. Na všetko ostatné použite služby ukladacieho priestoru konfigurácie.
  • Dynamická konfigurácia musí mať záložné nastavenia pre prípad, že konfiguračná služba nie je dostupná.
  • Konfigurácia vývojového prostredia by nemala súvisieť s produkčnou konfiguráciou. V opačnom prípade to môže viesť k prístupu z vývojového prostredia k produkčným službám, čo môže spôsobiť problémy so súkromím a únik údajov.
  • Zdokumentujte, čo je možné dynamicky nakonfigurovať, a opíšte núdzové správanie, ak je systém na doručovanie konfigurácie nedostupný.

Správa vydania

  • Podrobne zdokumentujte proces uvoľnenia. Popíšte, ako vydania ovplyvňujú SLO (napríklad dočasné zvýšenie latencie v dôsledku chýbania vyrovnávacej pamäte).
  • Dokumentujte kanárske vydania.
  • Vypracujte plán kontroly uvoľnenia kanárikov a, ak je to možné, mechanizmy automatického vrátenia.
  • Uistite sa, že vrátenia môžu používať rovnaké procesy ako nasadenia.

Pozorovateľnosť

  • Uistite sa, že sa zhromaždí súbor metrík požadovaných pre SLO.
  • Uistite sa, že dokážete rozlíšiť medzi údajmi klienta a servera. To je dôležité pre zistenie príčin porúch.
  • Nastavte upozornenia na zníženie nákladov na pracovnú silu. Napríklad odstráňte výstrahy spôsobené rutinnými operáciami.
  • Ak používate Stackdriver, zahrňte do svojich informačných panelov metriky platformy GCP. Nastavte upozornenia na závislosti GCP.
  • Vždy šírte prichádzajúce stopy. Aj keď nie ste zapojení do sledovania, umožní to službám nižšej úrovne ladiť problémy v produkcii.

Ochrana a bezpečnosť

  • Uistite sa, že všetky externé pripojenia sú šifrované.
  • Uistite sa, že vaše produkčné projekty majú správne nastavenie IAM.
  • Použite siete na izoláciu skupín inštancií virtuálnych strojov.
  • Použite VPN na bezpečné pripojenie k vzdialeným sieťam.
  • Dokumentujte a monitorujte prístup používateľov k údajom. Uistite sa, že všetky prístupy používateľov k údajom sú auditované a protokolované.
  • Uistite sa, že koncové body ladenia sú obmedzené zoznamami ACL.
  • Dezinfikujte vstup používateľa. Nakonfigurujte limity veľkosti užitočného zaťaženia pre vstup používateľa.
  • Uistite sa, že vaša služba dokáže selektívne blokovať prichádzajúcu prevádzku pre jednotlivých používateľov. Tým sa zablokujú porušenia bez ovplyvnenia ostatných používateľov.
  • Vyhnite sa externým koncovým bodom, ktoré spúšťajú veľa interných operácií.

Plánovanie kapacity

  • Zdokumentujte, ako sa vaša služba mení. Napríklad: počet používateľov, veľkosť prichádzajúceho užitočného zaťaženia, počet prichádzajúcich správ.
  • Zdokumentujte požiadavky na zdroje pre vašu službu. Napríklad: počet vyhradených inštancií virtuálneho počítača, počet inštancií Spanner, špecializovaný hardvér, ako je GPU alebo TPU.
  • Obmedzenia zdrojov dokumentu: typ zdroja, región atď.
  • Obmedzenia kvóty dokumentov na vytváranie nových zdrojov. Napríklad obmedzenie počtu žiadostí GCE API, ak používate API na vytváranie nových inštancií.
  • Zvážte spustenie záťažových testov na analýzu poklesu výkonu.

To je všetko. Uvidíme sa v triede!

Zdroj: hab.com

Pridať komentár