Preklad článku bol pripravený špeciálne pre študentov kurzu , ktorý sa spúšťa už dnes!

Niekoľkokrát ste spustili nový servis do produkcie? Alebo ste možno spravovali takéto služby? Ak áno, čím ste sa riadili? Čo je pre produkciu dobré a čo zlé? Ako trénujete nových členov tímu na vydaniach alebo na správe existujúcich služieb?
Väčšina spoločností v oblasti praktík priemyselného nasadenia nakoniec prechádza k prístupom „Divokého západu“. Každý tím si vyberá nástroje a osvedčené postupy vlastnými skúsenosťami. Ale to často ovplyvňuje nielen úspech projektov, ale aj inžinierov.
Metóda pokusu a omylu vytvára prostredie, v ktorom je bežné hľadanie vinníkov a prenášanie zodpovednosti. Pri takomto prístupe je čoraz ťažšie učiť sa z chýb a neopakovať ich.
Úspešné organizácie:
- si uvedomujú potrebu smerníc pre produkciu,
- študujú osvedčené postupy,
- začínajú diskusie o pripravenosti na produkciu počas vývoja nových systémov alebo komponentov,
- zabezpečujú dodržiavanie pravidiel prípravy na produkciu.
Príprava na produkciu zahŕňa proces „kontroly“. Kontrola môže mať formu kontrolného zoznamu alebo súboru otázok. Kontrolu je možné vykonávať manuálne, automaticky alebo kombinovane. Namiesto statických zoznamov požiadaviek je možné vytvoriť šablóny kontrolných zoznamov, ktoré sa prispôsobia konkrétnym potrebám. Takto sa inžinierom poskytne spôsob, ako nadobudnúť znalosti a dosiahnuť dostatočnú flexibilitu, keď je to potrebné.
Kedy skontrolovať službu na pripravenosť na produkciu?
Kontrolu pripravenosti na produkciu je užitočné vykonať nielen tesne pred vydaním, ale aj pri predaní inému tímu správy alebo novému zamestnancovi.
Robte kontrolu, keď:
- Uvoľňujete nový servis do produkcie.
- Predávate správu produkčnej služby inému tímu, ako je SRE.
- Predávate správu produkčnej služby novým zamestnancom.
- Organizujete technickú podporu.
Kontrolný zoznam pripravenosti na produkciu
Pred nejakým časom som ako príklad. kontrolný zoznam pripravenosti na produkciu. Aj keď tento zoznam vznikol pri práci s klientmi Google Cloud, bude užitočný a aplikovateľný aj mimo Google Cloud.
Navrhovanie a vývoj
- Vytvorte reprodukovateľ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 návrhu a vývoja definujte a nastavte SLO pre svoje služby.
- Dokumentujte očakávania týkajúce sa dostupnosti externých služieb, na ktorých závisíte.
- Vyhnite sa jedinečnému bodu zlyhania tým, že odstránite závislosti od jedného globálneho zdroja. Replikujte zdroj alebo použite záložnú variantu, keď je zdroj nedostupný (napríklad tvrdo kódovanú hodnotu).
Správa konfigurácie
- Statickú, malú a neskrývanú konfiguráciu môžete prenášať cez príkazové riadky. Pre všetko ostatné používajte služby na uchovávanie konfigurácie.
- Dynamická konfigurácia by mala mať záložné nastavenia pre prípad nedostupnosti služby konfigurácie.
- Konfiguračné prostredie pre vývoj by nemalo byť spojené s produkčnou konfiguráciou. Inak 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 s ochranou súkromia a únikom údajov.
- Dokumentujte, čo môže byť nastavené dynamicky, a opíšte záložné správanie, ak bude systém dodávky konfigurácie nedostupný.
Správa vydaní
- Podrobne dokumentujte proces vydania. Opíšte, ako ovplyvňujú vydania SLO (napríklad dočasné zvýšenie oneskorení v dôsledku chýb v cache).
- Dokumentujte kanárske vydania.
- Vypracujte plán analýzy kanárskych vydaní a, ak je to možné, mechanizmy automatického vrátenia.
- Uistite sa, že sa vrátenia môžu používať tými istými procesmi ako nasadenie.
Pripravenosť na monitorovanie (Observability)
- Uistite sa, že sa zhromažďuje súbor metrik potrebných pre SLO.
- Uistite sa, že môžete rozlíšiť medzi klientskými a serverovými údajmi. To je dôležité na identifikáciu príčin porúch.
- Nastavte upozornenia na zníženie pracovného zaťaženia. Napríklad odstráňte upozornenia spôsobené rutinnými operáciami.
- Ak používate Stackdriver, zapnite metriky platformy GCP vo svojich dashboardoch. Nastavte upozornenia pre závislosti GCP.
- Vždy rozširujte prichádzajúce trasovanie. Aj keď sa nezúčastňujete na trasovaní, to umožní službám na nižšej úrovni odstraňovať 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 prípadov 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šetok prístup používateľov k údajom je overený a zaznamenaný.
- Uistite sa, že koncové body na ladenie sú obmedzené ACL.
- Sanitizujte vstup od používateľa. Nastavte obmedzenia veľkosti prenosu pre vstup od používateľa.
- Uistite sa, že váš servis môže selektívne blokovať prichádzajúcu prevádzku pre jednotlivých používateľov. To umožní blokovať porušovania bez ovplyvnenia ostatných používateľov.
- Vyhnite sa vonkajším koncovým bodom, ktoré iniciujú veľké množstvo vnútorných operácií.
Plánovanie kapacity
- Dokumentujte, ako sa váš servis škáluje. Napríklad: počet používateľov, veľkosť prichádzajúceho prenosu, počet prichádzajúcich správ.
- Dokumentujte požiadavky na zdroje pre váš servis. Napríklad: počet vyhradených prípadov virtuálnych strojov, počet inštancií Spanner, špecializované vybavenie, ako sú GPU alebo TPU.
- Dokumentujte obmedzenia zdrojov: typ zdroja, región atď.
- Dokumentujte obmedzenia kvót na vytváranie nových zdrojov. Napríklad limit počtu požiadaviek GCE API, ak používate API na vytváranie nových inštancií.
- Zvážte vykonávanie záťažových testov na analýzu zníženia výkonu.
To je všetko. Dovidenia na hodinách!
Zdroj: habr.com
