Monitoring i utrzymanie Średnio zaawansowany 65 min

Runbook i utrzymanie po wdrożeniu

Złożysz powtarzalną procedurę kontroli wdrożenia, reagowania i przekazania dyżuru.

Wróć do listy lekcji

1. Krótka teoria

Runbook to krótka instrukcja dla operatora, który musi działać pod presją i może nie znać historii usługi. Zapisz cel procedury, warunki uruchomienia, właściciela, wymagany dostęp, ryzyka, konkretne polecenia, oczekiwane wyniki oraz punkt decyzji o eskalacji. Po wdrożeniu sprawdź wersję aplikacji, /health, ważny endpoint, błędy, opóźnienia i stan zależności. Obserwuj ustalone okno, bo pierwszy udany request nie wyklucza późnej regresji. Dla zmiany zaplanuj okno serwisowe, komunikację i warunki cofnięcia. Rollback kodu nie zawsze cofa migrację danych; przed działaniem sprawdź zgodność schematu i dostępność kopii. W części incydentowej ułóż sekwencję: potwierdź objaw, określ wpływ, zbierz logi i metryki, zweryfikuj zależności, postaw i sprawdź hipotezę, wykonaj bezpieczną naprawę, a potem potwierdź zdrowie usługi. Dodaj kontakty i sposób przekazania dyżuru bez ujawniania sekretów w dokumencie. Po incydencie zanotuj oś czasu, przyczynę, działania, wpływ, wynik i zadania zapobiegawcze; opisuj mechanizmy, nie przypisuj winy. Procedura jest aktualna tylko wtedy, gdy zespół ćwiczy ją na danych testowych i poprawia po zmianach systemu.

2. Przykłady komend

systemctl status orders-api --no-pager

Weryfikuje proces aplikacji po wdrożeniu.

$ systemctl status orders-api --no-pager
curl -sS -o /dev/null -w '%{http_code} %{time_total} ' http://127.0.0.1:8000/health

Sprawdza kod i czas odpowiedzi endpointu health.

$ curl -sS -o /dev/null -w '%{http_code} %{time_total}
' http://127.0.0.1:8000/health
journalctl -u orders-api --since '10 minutes ago' --no-pager

Czyta logi z okna po zmianie.

$ journalctl -u orders-api --since '10 minutes ago' --no-pager
docker compose ps app-db

Sprawdza stan zależnej bazy w ćwiczeniowym środowisku.

$ docker compose ps app-db
df -h /var

Sprawdza wolne miejsce dla logów i danych.

$ df -h /var
date --iso-8601=seconds

Zapisuje czas obserwacji albo przekazania dyżuru.

$ date --iso-8601=seconds

3. Zadanie praktyczne

Napisz jednostronicowy runbook dla fikcyjnego wdrożenia orders-api. Uwzględnij warunki startu, właściciela, okno zmiany, kontrolę wersji i health, dwa sygnały aplikacji, sprawdzenie app-db, próg decyzji o cofnięciu, zgodność schematu, komunikację oraz końcowy zapis wyniku. Przećwicz na danych testowych wariant alertu 5xx po zmianie: zapisz oś czasu i hipotezy, wybierz test, opisz działanie i warunki zamknięcia. Dodaj krótką notatkę przekazania dyżuru i jedno zadanie zapobiegawcze.

4. Typowe błędy

  • Lista poleceń bez oczekiwanych wyników i punktów decyzji.
  • Brak właściciela incydentu lub kontaktu do eskalacji.
  • Założenie, że rollback obrazu automatycznie cofa migrację bazy.
  • Zakończenie wdrożenia po jednym HTTP 200 bez obserwacji trendu błędów.
  • Wpisanie sekretów do runbooka lub notatki z incydentu.

5. Podsumowanie

Dobry runbook prowadzi od warunków startu przez kontrole i decyzje do weryfikacji oraz przekazania wyniku. Łączy wiedzę o health, logach, metrykach, zależnościach, backupie i odtwarzaniu. Regularne ćwiczenie utrzymuje procedurę użyteczną.

Flow nauki
  1. Teoria
  2. Przykład
  3. Ćwiczenie
  4. Quiz
  5. Praktyka
  6. Podsumowanie