Ścieżka 05Lekcja 7 / 8

Wyznacz bezpieczne granice samonaprawy

Automatyzuj znane działania przywracające usługę z jawnymi uprawnieniami, weryfikacją i warunkami zatrzymania. Odróżnij odzyskiwanie runtime od zmian oprogramowania.

Zaawansowane12 minSprawdzono

Wydawca Jak piszemy

Czego się nauczysz

  • Odróżnij samonaprawę od trwałej poprawki oprogramowania.
  • Określ ograniczoną politykę odzyskiwania i niezależne kontrole sukcesu.
  • Rozpoznaj, kiedy automatyzacja musi się zatrzymać i eskalować.

Przywracaj usługę w znanej sytuacji

Samonaprawa automatycznie wykrywa określoną awarię i próbuje wykonać zatwierdzone działanie odzyskiwania. Przykładami mogą być restart uszkodzonego procesu lub wymiana niesprawnej instancji. Działanie musi pasować do awarii i modelu stanu usługi.

Kubernetes może zastępować niesprawne instancje aplikacji i uzgadniać stan z deklaracją. Nie poprawia to błędnej logiki aplikacji ani każdej awarii pamięci masowej. Odzyskiwanie infrastruktury i poprawność oprogramowania wymagają różnych kontroli. Samonaprawa w Kubernetes.

Określ cel przed mechanizmem. Przywrócenie eksportu oznacza poprawne kończenie kwalifikujących się zadań. Działający kontener to tylko jeden z warunków wstępnych.

Oddziel trzy rodzaje zmian

ZmianaPrzykładWymagana decyzja
Odzyskiwanie runtimeWymiana jednego niesprawnego bezstanowego workeraWcześniej zatwierdzona polityka odzyskiwania może na to pozwalać
Poprawka oprogramowaniaUsunięcie wycieku pamięci zatrzymującego workerReview, testy, kontrole wydania i weryfikacja produkcji
Zmiana politykiZwiększenie dozwolonej częstości restartów lub zakresu dostępuJawne zatwierdzenie przez właściciela polityki

Agent może zaproponować poprawkę po przywróceniu usługi. Propozycja jest nową zmianą oprogramowania. Nie może dziedziczyć nieograniczonych uprawnień od kontrolera odzyskiwania.

Kontroler nie może też edytować własnych kryteriów sukcesu, gdy kontrola nie przechodzi. Inaczej system może raportować poprawę bez poprawy usługi.

Zapisz politykę odzyskiwania przed jej włączeniem

Poniższa polityka jest fikcyjna. Liczby ilustrują wybory projektowe; nie są zalecanymi wartościami domyślnymi.

Pole politykiFikcyjna reguła workera eksportu
WyzwalaczBrak sygnału heartbeat workera przez 90 sekund i zadania oczekują w kolejce
Warunki wstępneInny worker działa; kontrole zależności przechodzą; brak podejrzenia włamania lub naruszenia integralności
Dozwolone działanieWymień jeden worker, używając obecnie zatwierdzonego artefaktu
Ochrona stanuZadania korzystają z trwałego przechowywania i zweryfikowanego klucza idempotencji
LimitNajwyżej dwie wymiany w 15 minut; nigdy więcej niż jedna naraz
PrzerwaOdczekaj pięć minut po wymianie przed kolejną próbą
SukcesZadanie syntetyczne kończy się poprawnie, a dotknięta kolejka zaczyna się zmniejszać
Zatrzymanie i eskalacjaDowolny warunek wstępny zawodzi, osiągnięto limit lub nie można zweryfikować sukcesu

Użyj tożsamości z minimalnymi uprawnieniami. Zapisuj wersję polityki, dowód wyzwalacza, działanie, zasób i wynik. Zapewnij niezależny sposób wyłączenia kontrolera. Wyznacz człowieka odpowiedzialnego za odebranie eskalacji.

Testuj ścieżki błędów i udane odzyskiwanie

Ponowienie może powtórzyć skutek uboczny. Worker może zapisać plik i zatrzymać się przed potwierdzeniem zadania. Zweryfikuj idempotencję przed zezwoleniem na kolejne wykonanie. Zobacz przykład awarii cloud native.

Ponowienia mogą też zwiększyć przeciążenie zależności. Stosuj ograniczoną liczbę prób, limity czasu i odpowiednie opóźnienia. Unikaj zsynchronizowanych ponowień we wszystkich instancjach. AWS wyjaśnia, dlaczego narastające opóźnienia i losowe odchylenia pomagają ograniczyć ten efekt. Wytyczne dotyczące ponowień.

Sprawdź fikcyjną politykę w trzech przypadkach. Jeden zatrzymany worker powinien odzyskać sprawność. Awaria bazy danych powinna zablokować powtarzaną wymianę. Niepewny problem integralności powinien zatrzymać automatyzację i wymagać decyzji zespołu reagowania.

Sprawdź też brak telemetrii. Brak heartbeat może oznaczać awarię workera albo ścieżki zbierania danych. Kontroler potrzebuje dowodów wystarczających do działania, a nie wiary w wyjaśnienie AI.

Mierz, czy polityka pomaga

Rejestruj zweryfikowane przywrócenia, nieudane próby, eskalacje, powtórzoną pracę i czas wpływu na użytkowników. Porównaj je z poprzednim sposobem działania w podobnych warunkach.

Zachowaj podstawowy defekt jako zadanie inżynierskie. Wielokrotny restart procesu z wyciekiem pamięci może ograniczyć bieżące skutki, choć wyciek trwa. Przejdź do ciągłego doskonalenia, aby powiązać obserwację z trwałą poprawką.

Wykonaj ćwiczenie

Zaprojektuj politykę odzyskiwania dla fikcyjnego workera eksportu. Określ wyzwalacz, wykluczenia, dozwolone działanie, limit prób, przerwę, kontrolę sukcesu i właściciela eskalacji. Sprawdź ją dla awarii bazy danych i nieznanego problemu integralności.

Pobierz arkusz (Markdown)

Sprawdź zrozumienie

Kontroler dwukrotnie uruchomił worker ponownie. Kolejka nadal rośnie, a baza danych jest niedostępna. Co powinna zrobić polityka?

Źródła i dalsza lektura

Powiązana lektura od Taiga