Fikcyjny scenariusz edukacyjny. Nie opisuje konkretnej organizacji ani incydentu.
Sytuacja
Dashboard pokazuje zielone API, bazę i broker. Endpoint zdrowia odpowiada 200, więc raport dostępności usługi ma 99,99%. Tymczasem zatrzymany konsument nie kończy przyjętej pracy, a użytkownicy widzą stan „w realizacji” bez dalszego postępu.
Gdzie powstaje antywzorzec
Wyniki diagnostyki elementów zostają zsumowane i nazwane miarą usługi. Nikt nie zdefiniował, czy obietnicą jest samo przyjęcie polecenia, czy również osiągnięcie stanu końcowego w określonym czasie. Zielony raport odpowiada więc poprawnie na techniczne pytanie i błędnie na pytanie biznesowe.
Sygnały ostrzegawcze
- dostępność procesu jest średnią dostępności jego komponentów;
- odpowiedź HTTP 200 kończy pomiar, chociaż dalsza praca jest asynchroniczna;
- monitorowana jest długość kolejki, ale nie wiek najstarszej pracy ani tempo kończenia;
- alarm nie rozróżnia przyjęcia, ukończenia i trwałego błędu;
- nie istnieje bezpieczna próba całej ścieżki ani test zatrzymania konsumenta.
Konsekwencje
Operatorzy widzą zdrową infrastrukturę podczas realnego przerwania usługi. Skalują niewłaściwy komponent, a czas wykrycia rośnie. Raport SLA może wyglądać dobrze, choć użytkownik nie otrzymuje wyniku. Po wznowieniu niekontrolowane ponowienia mogą utworzyć podwójne skutki. To możliwe skutki modelowego układu, nie relacja z awarii.
Lepsza decyzja
- Oddziel trwałe przyjęcie pracy od jej ukończenia i nazwij stany końcowe.
- Zachowaj liveness i readiness do diagnostyki, ale dodaj mierniki postępu: wiek pracy, tempo zakończeń i błędy trwałe.
- Zdefiniuj SLI wyniku na granicy użytkownika oraz uzgodnione okno czasowe.
- Wykonuj kontrolowaną próbę syntetyczną z nieszkodliwymi danymi i sprawdzaniem stanu końcowego.
- Przetestuj zatrzymanie i wznowienie konsumenta, w tym brak duplikatów oraz możliwość rozliczenia każdej przyjętej pracy.
Granica
Test end-to-end nie zastępuje monitoringu komponentów. Informuje, że obietnica nie jest spełniana; sygnały warstwowe pomagają znaleźć przyczynę. Potrzebne są oba poziomy.
Zielony komponent jest wskazówką. Zielony wynik procesu wymaga dowodu.
Porozmawiajmy o tym artykule
Podziel się uwagą lub zanonimizowanym przykładem. Komentarze sprawdza AI przed publikacją. Niejednoznaczne przypadki trafiają do moderatora.