Tłumaczenie artykułu przygotowano specjalnie dla studentów kursu , który rozpoczyna się już dziś!

Czy kiedykolwiek wprowadzałeś nową usługę do produkcji? A może zajmowałeś się utrzymywaniem takich usług? Jeśli tak, to co było Twoim przewodnikiem? Co w produkcji jest dobre, a co złe? Jak szkolisz nowych członków zespołu w zakresie wydania lub utrzymania istniejących usług?
Większość firm w zakresie praktyk przemysłowej eksploatacji ostatecznie przychodzi do podejścia „Dzikiego Zachodu”. Każdy zespół, próbując i popełniając błędy, samodzielnie wybiera narzędzia i najlepsze praktyki. Jednak często wpływa to nie tylko na sukces projektów, ale także na inżynierów.
Metoda prób i błędów tworzy środowisko, w którym powszechne jest szukanie winnych i przerzucanie odpowiedzialności. Przy takim zachowaniu coraz trudniej jest uczyć się na błędach i ich nie powtarzać.
Sukcesywne organizacje:
- zdają sobie sprawę z konieczności wytycznych do produkcji,
- poznają najlepsze praktyki,
- rozpoczynają dyskusje na temat gotowości do produkcji przy projektowaniu nowych systemów lub komponentów,
- zapewniają przestrzeganie zasad przygotowań do produkcji.
Przygotowanie do produkcji obejmuje proces „przeglądu”. Przegląd może mieć formę listy kontrolnej lub zestawu pytań. Przeglądy można przeprowadzać ręcznie, automatycznie lub w obu sposób. Zamiast statycznych list wymagań można stworzyć szablony list kontrolnych, które można dostosować do konkretnych potrzeb. W ten sposób inżynierowie zyskują sposób na dziedziczenie wiedzy i wystarczającą elastyczność, gdy jest to wymagane.
Kiedy sprawdzać usługę pod kątem gotowości do produkcji?
Sprawdzenie gotowości do produkcji warto przeprowadzać nie tylko bezpośrednio przed wydaniem, ale także przy przekazywaniu innej drużynie eksploatacji albo nowemu pracownikowi.
Przeprowadzaj sprawdzenie, kiedy:
- Wprowadzasz nową usługę do produkcji.
- Przekazujesz eksploatację usługi produkcyjnej innemu zespołowi, np. SRE.
- Przekazujesz eksploatację usługi produkcyjnej nowym pracownikom.
- Organizujesz wsparcie techniczne.
Lista kontrolna do sprawdzenia gotowości do produkcji
Jakiś czas temu, jako przykład, ja lista kontrolna do sprawdzenia gotowości do produkcji. Mimo że ta lista powstała podczas pracy z klientami Google Cloud, będzie przydatna i stosowana poza Google Cloud.
Projektowanie i rozwój
- Opracuj powtarzalny proces budowy, który nie wymaga dostępu do zewnętrznych usług i nie polega na awarii systemów zewnętrznych.
- W trakcie projektowania i rozwoju określ i ustanów SLO dla swoich usług.
- Dokumentuj oczekiwania dotyczące dostępności zewnętrznych usług, od których jesteś zależny.
- Unikaj pojedynczego punktu awarii, eliminując zależności od jednego globalnego zasobu. Replikuj zasób lub użyj alternatywy, gdy zasób jest niedostępny (na przykład, zakodowana wartość).
Zarządzanie konfiguracją
- Statyczną, niewielką i nie poufną konfigurację można przekazywać przez parametry wiersza poleceń. W przypadku wszystkiego innego używaj usług przechowywania konfiguracji.
- Dynamiczna konfiguracja powinna mieć ustawienia awaryjne w przypadku niedostępności usługi konfiguracji.
- Konfiguracja środowiska deweloperskiego nie powinna być związana z konfiguracją produkcyjną. W przeciwnym razie może to prowadzić do dostępu z środowiska deweloperskiego do usług produkcyjnych, co może spowodować problemy z poufnością i wyciekiem danych.
- Dokumentuj to, co można skonfigurować dynamicznie i opisz postępowanie awaryjne, jeśli system dostarczania konfiguracji będzie niedostępny.
Zarządzanie wydaniami
- Szczegółowo dokumentuj proces wydania. Opisz, jak wydania wpływają na SLO (na przykład, czasowe zwiększenie opóźnień spowodowane błędami w pamięci podręcznej).
- Dokumentuj releasy kanaryjne.
- Opracuj plan analizy releasów kanaryjnych i, jeśli to możliwe, mechanizmy automatycznego wycofywania.
- Upewnij się, że procesy wycofywania mogą używać tych samych procesów, co wdrożenie.
Gotowość do monitorowania (Observability)
- Upewnij się, że zbierany jest zestaw metryk niezbędnych do SLO.
- Upewnij się, że można odróżnić dane klienckie od danych serwerowych. Jest to ważne dla diagnozowania problemów.
- Skonfiguruj powiadomienia, aby zminimalizować nakład pracy. Na przykład, usuń powiadomienia spowodowane rutynowymi operacjami.
- Jeśli używasz Stackdrivera, włącz metryki platformy GCP w swoich pulpitach nawigacyjnych. Skonfiguruj powiadomienia dla zależności GCP.
- Zawsze rozpowszechniaj przychodzące śledzenie. Nawet jeśli nie bierzesz udziału w śledzeniu, to umożliwi usługom o niższym poziomie diagnozowanie problemów w produkcji.
Ochrona i bezpieczeństwo
- Upewnij się, że wszystkie zewnętrzne połączenia są szyfrowane.
- Upewnij się, że projekty produkcyjne mają prawidłową konfigurację IAM.
- Użyj sieci do izolacji grup instancji maszyn wirtualnych.
- Skorzystaj z VPN, aby bezpiecznie łączyć się z zdalnymi sieciami.
- Dokumentuj i monitoruj dostęp użytkowników do danych. Upewnij się, że dostęp użytkowników do danych jest zawsze kontrolowany i rejestrowany.
- Upewnij się, że punkty końcowe do debugowania są ograniczone ACL.
- Sanityzuj dane wejściowe od użytkowników. Ustaw ograniczenia dotyczące rozmiaru ładunku dla danych wejściowych.
- Upewnij się, że twój serwis może selektywnie blokować ruch przychodzący dla poszczególnych użytkowników. To pozwoli blokować naruszenia bez wpływu na innych użytkowników.
- Unikaj zewnętrznych punktów końcowych, które inicjują dużą liczbę wewnętrznych operacji.
Planowanie zasobów
- Dokumentuj, jak twój serwis skalowalny. Na przykład: liczba użytkowników, rozmiar ładunku przychodzącego, liczba przychodzących wiadomości.
- Dokumentuj wymagania dotyczące zasobów dla twojego serwisu. Na przykład: liczba dedykowanych instancji maszyn wirtualnych, liczba instancji Spanner, specjalistyczny sprzęt, taki jak GPU lub TPU.
- Dokumentuj ograniczenia zasobów: typ zasobu, region itd.
- Dokumentuj ograniczenia kwot dla tworzenia nowych zasobów. Na przykład, ograniczenie liczby żądań API GCE, jeśli używasz API do tworzenia nowych instancji.
- Rozważ przeprowadzenie testów obciążeniowych w celu analizy spadku wydajności.
To wszystko. Do zobaczenia na zajęciach!
Źródło: habr.com
