← Artykuły

GitOps: Synced nie znaczy, że aplikacja działa

Trzy osobne obserwacje: deklaracja, zdrowie zasobów i wynik operacji użytkownika.

Podkreślone pojęcia mają objaśnienia. Kod możesz skopiować i uruchomić u siebie.

Spis treści i pojęcia

Pojęcia pod ręką

Kliknij termin, aby zobaczyć definicję.

Cały słownik →

Deklaracja się zgadza, ale aplikacja nadal zawodzi

pokazuje Synced. Wdrożenie może nadal być niezdrowe, a aplikacja może odpowiadać na , choć rezerwacja kończy się błędem. To różne sprawdzenia.

  • Sync: czy obserwowana odpowiada konfiguracji docelowej śledzonej przez Argo?
  • Health: czy zasoby spełniają swoje kryteria zdrowia?
  • Test biznesowy: czy mała reprezentatywna operacja użytkownika kończy się poprawnie?

Udana synchronizacja jest przydatnym dowodem, ale nie odpowiada na pozostałe dwa pytania.

Przewidź trzy decyzje o wydaniu

Samodzielny przykład dla 3.11+ używa sztucznych obserwacji. Zapisz release.py, potem uruchom python3 release.py. Nie łączy się z klastrem ani go nie zmienia.

python
def release_ready(sync: str, health: str, smoke_ok: bool) -> bool:
    return sync == "Synced" and health == "Healthy" and smoke_ok is True

cases = [
    ("Synced", "Degraded", True),
    ("Synced", "Healthy", False),
    ("Synced", "Healthy", True),
]
for case in cases:
    print(release_ready(*case))

Wynik to False, False, True, każdy w osobnym wierszu. To mała polityka dopuszczenia wydania, nie zamiennik oceny zdrowia Argo ani prawdziwego testu biznesowego. Rzeczywista kontrola musi zebrać świeże obserwacje dla właściwego środowiska i rewizji.

Znajdź brakujący warunek

Usuń and smoke_ok is True. Drugi przypadek zwraca teraz True, chociaż operacja użytkownika zawiodła. Przywróć warunek. Dodaj przypadek OutOfSync / Healthy / True i przewidź wynik przed uruchomieniem.

Nie wymyślaj pozytywnej obserwacji, aby wydanie było zielone. Niedostępna kontrola oznacza brak dowodu: diagnozuj kontrolę albo aplikację.

Prześledź zależności

Sprawdzony kod → → commit konfiguracji → przez Argo → → operacja biznesowa.

Podczas stary Pod może nadal obsługiwać użytkowników, aż nowy schemat będzie gotowy. Cofnięcie obrazu nie cofa zapisanych danych. W rzeczywistym labie celowo zepsuj migrację i sprawdź starą aplikację, zanim uznasz procedurę wycofania za działającą.

Kolejny eksperyment

Na lokalnym klastrze porównaj cztery obserwacje jednego wdrożenia: rewizję , sync, health i wynik żądania do aplikacji. Zapisz je osobno. Która obserwacja wykryje poprawny z błędną konfiguracją biznesową?

Źródła

SPRAWDŹ SWOJĄ INTUICJĘ

Argo pokazuje Synced. Czy operacja użytkownika na pewno działa?

TERAZ TWÓJ KOD

Zrozumienie sprawdź w praktyce.

Przejdź do programu GitOps: manifesty, synchronizacja i kontrola wdrożenia.

Otwórz materiał i ćwiczenia →