Kontrolní seznam připravenosti výroby

Překlad článku byl připraven speciálně pro studenty kurzu "Postupy a nástroje DevOps", která začíná dnes!

Kontrolní seznam připravenosti výroby

Spustili jste někdy novou službu do výroby? Nebo jste se možná podíleli na podpoře takových služeb? Pokud ano, co vás motivovalo? Co je pro výrobu dobré a co špatné? Jak školíte nové členy týmu o vydáních nebo údržbě stávajících služeb.

Většina společností nakonec převezme přístupy „divokého západu“, pokud jde o postupy průmyslového provozu. Každý tým rozhoduje o svých vlastních nástrojích a osvědčených postupech metodou pokusů a omylů. To ale často ovlivňuje nejen úspěšnost projektů, ale také inženýry.

Pokus a omyl vytváří prostředí, kde je běžné osočování a přesouvání viny. S tímto chováním je čím dál těžší se z chyb poučit a už je neopakovat.

Úspěšné organizace:

  • uvědomit si potřebu pokynů pro výrobu,
  • studovat osvědčené postupy,
  • zahájit diskuse o problémech připravenosti výroby při vývoji nových systémů nebo komponent,
  • zajistit dodržování pravidel přípravy k výrobě.

Příprava na výrobu zahrnuje proces „revize“. Recenze může mít formu kontrolního seznamu nebo sady otázek. Kontroly lze provádět ručně, automaticky nebo obojí. Namísto statických seznamů požadavků můžete vytvářet šablony kontrolních seznamů, které lze přizpůsobit konkrétním potřebám. Inženýři tak mohou v případě potřeby získat způsob, jak zdědit znalosti a dostatečnou flexibilitu.

Kdy zkontrolovat připravenost služby k výrobě?

Kontrolu připravenosti výroby je užitečné provést nejen bezprostředně před uvolněním, ale i při převodu na jiný operační tým nebo nového zaměstnance.

Zkontrolujte, kdy:

  • Uvolňujete do výroby novou službu.
  • Provoz produkční služby převedete na jiný tým, např. SRE.
  • Převádíte provoz produkční služby na nové zaměstnance.
  • Organizovat technickou podporu.

Kontrolní seznam připravenosti výroby

Před časem jsem jako příklad uvedl I publikováno kontrolní seznam pro testování připravenosti k výrobě. Přestože tento seznam pochází od zákazníků Google Cloud, bude užitečný a použitelný mimo Google Cloud.

Návrh a vývoj

  • Vyvinout opakovatelný proces sestavování, který nevyžaduje přístup k externím službám a není závislý na selhání externích systémů.
  • Během období návrhu a vývoje definujte a nastavte SLO pro své služby.
  • Zdokumentujte očekávání ohledně dostupnosti externích služeb, na kterých jste závislí.
  • Vyhněte se jedinému bodu selhání odstraněním závislostí na jediném globálním prostředku. Replikujte zdroj nebo použijte záložní zdroj, když je zdroj nedostupný (například pevně zakódovaná hodnota).

Správa konfigurace

  • Statická, malá a netajná konfigurace může být předána prostřednictvím parametrů příkazového řádku. Pro všechno ostatní použijte služby úložiště konfigurace.
  • Dynamická konfigurace musí mít záložní nastavení pro případ, že konfigurační služba není dostupná.
  • Konfigurace vývojového prostředí by neměla souviset s produkční konfigurací. V opačném případě to může vést k přístupu z vývojového prostředí k produkčním službám, což může způsobit problémy s ochranou soukromí a únik dat.
  • Zdokumentujte, co lze dynamicky konfigurovat, a popište nouzové chování, pokud je systém pro doručování konfigurace nedostupný.

Správa vydání

  • Podrobně zdokumentujte proces uvolnění. Popište, jak vydání ovlivňují SLO (například dočasné zvýšení latence kvůli vynechání mezipaměti).
  • Dokumentujte kanárská vydání.
  • Vypracujte plán kontroly vydání Canary a pokud je to možné, mechanismy automatického vrácení.
  • Ujistěte se, že vrácení mohou používat stejné procesy jako nasazení.

Pozorovatelnost

  • Ujistěte se, že je shromážděna sada metrik požadovaných pro SLO.
  • Ujistěte se, že dokážete rozlišit data klienta a serveru. To je důležité pro hledání příčin poruch.
  • Nastavením upozornění snížíte náklady na pracovní sílu. Odstraňte například výstrahy způsobené rutinními operacemi.
  • Pokud používáte Stackdriver, zahrňte do svých panelů metriky platformy GCP. Nastavte upozornění na závislosti na GCP.
  • Vždy propagujte příchozí stopy. I když nejste zapojeni do trasování, umožní to službám nižší úrovně ladit problémy v produkci.

Ochrana a bezpečnost

  • Ujistěte se, že jsou všechna externí připojení šifrována.
  • Ujistěte se, že vaše produkční projekty mají správné nastavení IAM.
  • Použijte sítě k izolaci skupin instancí virtuálních strojů.
  • Použijte VPN pro bezpečné připojení ke vzdáleným sítím.
  • Dokumentujte a sledujte přístup uživatelů k datům. Zajistěte, aby byl veškerý přístup uživatelů k datům auditován a protokolován.
  • Zajistěte, aby koncové body ladění byly omezeny seznamy ACL.
  • Dezinfikujte uživatelský vstup. Nakonfigurujte limity velikosti užitečného zatížení pro vstup uživatele.
  • Ujistěte se, že vaše služba může selektivně blokovat příchozí provoz pro jednotlivé uživatele. To zablokuje porušení, aniž by to ovlivnilo ostatní uživatele.
  • Vyhněte se externím koncovým bodům, které spouštějí mnoho interních operací.

Plánovaní kapacity

  • Zdokumentujte, jak se vaše služba škáluje. Například: počet uživatelů, velikost příchozího užitečného zatížení, počet příchozích zpráv.
  • Zdokumentujte požadavky na zdroje pro vaši službu. Například: počet vyhrazených instancí virtuálních strojů, počet instancí Spanner, specializovaný hardware, jako je GPU nebo TPU.
  • Omezení zdrojů dokumentu: typ zdroje, oblast atd.
  • Omezení kvóty dokumentů pro vytváření nových zdrojů. Například omezení počtu požadavků GCE API, pokud rozhraní API používáte k vytváření nových instancí.
  • Zvažte spuštění zátěžových testů pro analýzu snížení výkonu.

To je vše. Uvidíme se ve třídě!

Zdroj: www.habr.com

Přidat komentář