Co dzieje się z aplikacją po starcie — monitoring, aktualizacje, incydenty?
Po starcie aplikacja żyje w trzech pętlach: monitoring (dostępność, błędy, pieniądze), aktualizacje (przeglądarki, zależności, dostawcy) i incydenty (reakcja, naprawa, wpis). Darmowy plan monitoringu sprawdza adres co 5 minut — tyle wynosi okno, w którym o awarii nikt nie wie. W naszej praktyce reakcja na zgłoszenie krytyczne to 1 dzień roboczy, na pozostałe 3.
Trzy pętle: co naprawdę dzieje się z aplikacją po starcie?
Start produkcyjny nie jest końcem pracy, tylko zmianą jej rodzaju. Od tego dnia aplikacja żyje w trzech pętlach, które kręcą się niezależnie od siebie: monitoring, aktualizacje i incydenty.
Monitoring odpowiada na pytanie, czy działa i dla kogo. Aktualizacje pilnują, żeby to, co działa dziś, działało też po zmianie przeglądarki, biblioteki albo interfejsu dostawcy. Incydenty to procedura na moment, w którym pierwsze dwie pętle nie wystarczyły.
Różnica między aplikacją utrzymywaną a włączoną jest mierzalna. Utrzymywana ma nazwaną osobę, kanał alertu i okno wykrycia liczone w minutach. Włączona ma adres i nadzieję, że ktoś zadzwoni.
| Pętla | Co obserwujemy | Narzędzie i limit (stan na 31.08.2026) | Kto reaguje | Co się psuje, gdy tego brak |
|---|---|---|---|---|
| Monitoring — dostępność | czy adres główny, ekran logowania i panel odpowiadają | UptimeRobot: plan darmowy 50 monitorów, interwał 5 minut; Better Stack: plan darmowy 10 monitorów i heartbeatów, sprawdzanie nawet co 30 sekund | automat wysyła alert, odbiera osoba dyżurna | o awarii dowiadujesz się od klienta, zwykle następnego dnia |
| Monitoring — błędy | wyjątki w kodzie, odpowiedzi 5xx, nieudane zapisy do bazy | Better Stack: 100 000 wyjątków miesięcznie w planie darmowym; Sentry: 5 000 błędów w planie darmowym (okresu przy tym planie cennik nie podaje) | zespół utrzymania, w oknie roboczym | błąd zna tylko ten użytkownik, który na niego trafił |
| Monitoring — pieniądze | powiadomienia operatora płatności, kolejka poczty transakcyjnej | panel operatora oraz własny zapis nieudanych zdarzeń | zespół utrzymania i właściciel aplikacji | wpłata bez odbicia w aplikacji, wykryta przy rozliczeniu miesiąca |
| Aktualizacje — wersja u użytkownika | czy nowe wydanie dotarło do przeglądarek | reguła przeglądarki: skrypt Service Workera musi być różny bajtowo, a przy zdarzeniach funkcyjnych sprawdzenie nie powtarza się częściej niż raz na 24 godziny | zespół, przy każdym wdrożeniu | część użytkowników pracuje tygodniami na starej wersji |
| Aktualizacje — zależności | biblioteki i środowisko uruchomieniowe | Node.js: wsparcie wydania LTS opisane jako poprawianie krytycznych błędów przez „a total of 30 months” | zespół, w oknie planowym | środowisko bez poprawek bezpieczeństwa pod działającą aplikacją |
| Aktualizacje — dostawcy | zmiany interfejsów, planów i deklarowanej dostępności | Vercel: 99,99% w planie Enterprise; Supabase: 99,9% czasu w miesiącu kalendarzowym w planie Enterprise | zespół czyta komunikaty dostawcy | integracja przestaje działać w dniu, w którym dostawca coś wyłącza |
| Incydenty | czas reakcji, przyczyna, zapis po zdarzeniu | u nas: 1 dzień roboczy na zgłoszenia krytyczne, 3 dni na pozostałe | osoba dyżurna, potem autor poprawki | ten sam błąd wraca, bo nikt nie zapisał, dlaczego wystąpił |
Trzy pętle nie wymagają trzech zespołów ani trzech płatnych narzędzi. Wymagają trzech nazwanych osób do trzech różnych sytuacji i jednego miejsca, w którym widać, co się wydarzyło.
Monitoring: co mierzyć poza „czy strona się otwiera”?
Sprawdzanie adresu głównego to najmniejsza wersja monitoringu i najczęściej jedyna, jaką ktoś włącza. Adres odpowiada poprawnie także wtedy, gdy logowanie jest zepsute, wpłata nie dochodzi, a poczta stoi w kolejce.
Cztery sygnały wystarczą do pierwszych kilkuset kont: dostępność adresu i ekranu logowania, odsetek odpowiedzi 5xx, czas odpowiedzi najwolniejszej ścieżki oraz zdarzenia pieniężne — nieudane powiadomienie operatora płatności i nieudana wysyłka poczty.
Interwał decyduje o tym, ile trwa cisza. W planie darmowym UptimeRobot to 50 monitorów sprawdzanych co 5 minut (odczyt 31 sierpnia 2026), więc awaria bywa niewidoczna przez pięć minut plus czas dojścia alertu.
Better Stack w planie darmowym daje mniej punktów — 10 monitorów i heartbeatów oraz jedną stronę statusu — ale sprawdza nawet co 30 sekund (odczyt 31 sierpnia 2026). Wybór między nimi jest wyborem między liczbą punktów a rozdzielczością czasu.
Śledzenie błędów mieści się w planach darmowych na długo po starcie. Better Stack podaje 100 000 wyjątków miesięcznie, Sentry dla planu darmowego podaje 5 000 błędów — ale okresu rozliczeniowego przy tym planie nie znaleźliśmy w dokumentacji na dzień 31 sierpnia 2026, więc liczymy z planu, który podaje go wprost.
Alert bez adresata nie jest alertem. Stosujemy prostą regułę: nieudane zdarzenie płatnicze i nieudana wysyłka poczty idą na kanał, który ktoś czyta tego samego dnia, a nie do logu, do którego zagląda się dopiero po awarii.
Do tego jedna lekcja z praktyki. Klient logowania potrafi zwrócić błąd 500 z pustym komunikatem, więc logujemy całą odpowiedź serwera, nie sam kod — inaczej awaria w zgłoszeniu wygląda jak „nie wiadomo co”, a diagnoza zaczyna się od zera.
Aktualizacje: dlaczego nowa wersja nie dochodzi do wszystkich?
W aplikacji instalowanej z przeglądarki wdrożenie nie kończy się na serwerze. Nową wersję musi jeszcze przyjąć Service Worker zapisany w przeglądarce użytkownika, a on ma własne reguły.
Dokumentacja web.dev opisuje je krótko. Skrypt uznaje się za zaktualizowany, jeśli jest „byte-different” wobec tego, który przeglądarka już ma. Aktualizację wyzwala wejście na stronę w zasięgu, a przy zdarzeniach funkcyjnych sprawdzenie nie powtarza się, jeśli było w ciągu poprzednich 24 godzin (odczyt 31 sierpnia 2026).
Dalej jest stan oczekiwania. Po udanej instalacji nowa wersja czeka, aż stara przestanie kontrolować otwarte karty — web.dev nazywa ten stan „waiting”. Wywołanie skipWaiting w nowej wersji pozwala pominąć czekanie i aktywować ją od razu.
Tu wchodzi lekcja z naszej praktyki. Aplikacja instalowana z przeglądarki, chroniona restrykcyjną polityką CSP, wymaga jawnego wypisania źródeł skryptów. Bez tego aktualizacja nie dochodzi do części użytkowników, a w logach nie widać żadnej awarii — wszystko odpowiada poprawnie, tylko starym kodem.
Druga warstwa aktualizacji to zależności. Node.js opisuje wsparcie wydania LTS jako gwarancję poprawiania krytycznych błędów przez „a total of 30 months” (odczyt 31 sierpnia 2026). Po tym oknie środowisko pod aplikacją przestaje dostawać poprawki, a aktualizacja przestaje być wyborem.
Trzecia warstwa leży poza zasięgiem zespołu: zmiany po stronie dostawców. Deklarowana dostępność dotyczy zwykle najdroższego planu — Vercel podaje 99,99% dla platformy serwującej treść, Supabase 99,9% czasu w miesiącu kalendarzowym, oba w planie Enterprise (odczyt 31 sierpnia 2026).
Wniosek jest praktyczny. Aplikacja na planach niższych niż Enterprise nie ma deklarowanej dostępności, więc awaria dostawcy jest ryzykiem właściciela — i dlatego monitoring ma umieć pokazać, że to nie aplikacja przestała działać.
Incydenty: reakcja, naprawa, wpis
Incydent ma trzy takty i tylko pierwszy jest pilny. Reakcja to podjęcie działań: potwierdzenie, że sygnał jest prawdziwy, ocena zasięgu i informacja dla właściciela. Naprawa bywa późniejsza, a czasem świadomie odłożona.
Czasy warto mieć zapisane, zanim będą potrzebne. W naszej praktyce jest to 1 dzień roboczy na zgłoszenia krytyczne i 3 dni na pozostałe, przy czym reakcja oznacza podjęcie działań, a nie zakończoną naprawę.
Podział na krytyczne i pozostałe robi się przed awarią, na spokojnie. Krytyczne to zwykle brak logowania, brak zapisu wpłaty, wyciek danych i aplikacja, która nie odpowiada. Reszta — literówki, wolny ekran, drobne błędy w widoku — ma własny, dłuższy zegar.
Trzeci takt bywa pomijany i to on decyduje, czy błąd wróci. Wpis po incydencie mieści się w jednym akapicie: co się stało, od kiedy do kiedy, kogo dotknęło, jaka była przyczyna, co zmieniliśmy i po czym poznamy powtórkę.
Dwie rzeczy sprawdza się poza incydentem, bo w trakcie jest już za późno. Pierwsza: kopie testujemy odtworzeniem, nie istnieniem pliku — zasady i test bez programisty opisaliśmy w tekście o bezpieczeństwie od pierwszego dnia.
Druga to obowiązki wobec organu nadzorczego, gdy incydent dotyczy danych osobowych. Terminy i brzmienie przepisu są w tym samym tekście. Tutaj wystarczy zasada: zegar rusza od stwierdzenia naruszenia, a nie od zakończenia naprawy.
Po czym poznać porządną opiekę po starcie?
Dziewięć pytań, które właściciel aplikacji zada bez wiedzy technicznej. Każde ma odpowiedź w postaci nazwiska, liczby albo daty — a odpowiedź „to zależy” jest w każdym z nich odpowiedzią negatywną.
- Kto dostaje pierwszy sygnał i na jaki kanał? Odpowiedź ma zawierać osobę i miejsce, do którego ta osoba naprawdę zagląda. Skrzynka bez dyżuru nie jest kanałem alertu.
- Co jest sprawdzane i jak często? Lista monitorów i interwał. Sam adres główny co pięć minut to minimum, nie komplet — ekran logowania i ścieżka płatności też są punktami.
- Gdzie trafia nieudane powiadomienie o wpłacie? Ma trafiać do człowieka tego samego dnia. Log, do którego zagląda się po awarii, nie liczy się jako miejsce.
- Jaki jest zapisany czas reakcji i co ten czas oznacza? Reakcja to podjęcie działań, nie naprawa. Bez tego rozróżnienia obie strony czytają ten sam zapis inaczej.
- Kiedy było ostatnie wdrożenie i kiedy aktualizowano zależności? Dwie daty. Aplikacja bez wdrożenia od wielu miesięcy nie jest stabilna, tylko nieruszana.
- Kiedy odtworzono kopię i ile to trwało? Data i czas. Odpowiedź, że kopie się robią, mówi o pliku, nie o odtworzeniu.
- Czy po ostatnim incydencie powstał wpis? Jeden akapit do przeczytania. Brak wpisu oznacza, że przyczyny nikt nie nazwał, więc może wrócić.
- Na kogo są konta u dostawców? Hosting, baza, operator płatności, poczta i domena mają stać na firmie właściciela. Zespół utrzymania dostaje dostęp, nie własność.
- Co się dzieje, gdy awarię ma dostawca? Odpowiedź ma wskazać, skąd zespół to wie i co w takim razie widzi użytkownik. W dokumentach SLA obu dostawców zobowiązanie jest przypisane do planu Enterprise (u Vercela wynika to z tytułu dokumentu, nie z osobnej klauzuli); dla niższych planów deklaracji nie znaleźliśmy na dzień 31 sierpnia 2026.
Jeśli na trzy z tych pytań pada odpowiedź „sprawdzimy”, opieki nie ma — jest gotowość do reagowania na telefon od klienta. To działa do pierwszej awarii w piątek wieczorem.
Czego ten tekst nie rozstrzyga?
Nie ma tu rachunku utrzymania w złotych ani porównania planów płatnych. Ten rachunek prowadzimy osobno, w tekście o koszcie aplikacji w trzy lata.
Nie ma też zasad odbioru ani gwarancji na to, co zostało odebrane. Kolejność prac, artefakty i akceptacje opisuje tekst o budowie aplikacji krok po kroku, a warstwy, które trzeba obserwować — tekst o warstwach aplikacji dla firmy.
Ten artykuł opisuje jedno: co dzieje się z aplikacją między jednym wdrożeniem a drugim, kto to widzi i w jakim czasie. Reszta decyzji ma swoje miejsce i swoje liczby.
Najczęstsze pytania
Czy darmowy plan monitoringu wystarczy po starcie?
Do pierwszych kilkuset kont zwykle tak. UptimeRobot w planie darmowym daje 50 monitorów sprawdzanych co 5 minut, Better Stack 10 monitorów i heartbeatów ze sprawdzaniem nawet co 30 sekund, a śledzenie błędów mieści się w 100 000 wyjątków miesięcznie w planie darmowym Better Stack (odczyt 31 sierpnia 2026). Granicą nie jest cena, tylko to, czy alert ma adresata.
Jak często aktualizować biblioteki w działającej aplikacji?
W stałym oknie, nie wtedy, gdy coś przestanie działać. Poprawki bezpieczeństwa wchodzą poza kolejnością, reszta w zaplanowanym terminie, po którym ktoś sprawdza aplikację ręcznie. Warto trzymać się wersji ze wsparciem: Node.js opisuje wsparcie wydania LTS jako poprawianie krytycznych błędów przez „a total of 30 months” (odczyt 31 sierpnia 2026).
Dlaczego użytkownicy widzą starą wersję aplikacji?
Bo wersję u nich trzyma Service Worker. web.dev opisuje reguły: skrypt jest uznany za nowy, gdy jest „byte-different”; przy zdarzeniach funkcyjnych sprawdzenie nie powtarza się, jeśli było w ciągu poprzednich 24 godzin; nowa wersja czeka w stanie „waiting”, dopóki stara kontroluje otwarte karty (odczyt 31 sierpnia 2026). U nas dochodzi jeszcze polityka CSP — bez jawnych źródeł skryptów aktualizacja nie dochodzi.
Czy dostawca gwarantuje, że aplikacja będzie dostępna?
Tylko w najdroższym planie i tylko w opisanym zakresie. Vercel deklaruje 99,99% dostępności platformy serwującej treść, Supabase 99,9% czasu w miesiącu kalendarzowym — oba w planie Enterprise (odczyt 31 sierpnia 2026). Dla niższych planów deklaracji nie znaleźliśmy, więc awaria dostawcy jest ryzykiem właściciela aplikacji i powinna być widoczna w monitoringu.
Co zapisać po incydencie, żeby nie wrócił?
Wystarczy jeden akapit: co się stało, od kiedy do kiedy, kogo dotknęło, jaka była przyczyna, co zostało zmienione i po czym poznamy powtórkę. Ostatni punkt jest najważniejszy — zwykle oznacza nowy monitor albo alert, którego wcześniej nie było. Wpis bez niego jest opisem zdarzenia, nie zabezpieczeniem przed kolejnym.
Źródła
- Reakcja na zgłoszenia po starcie — praktyka zespołu — https://jakzrobicaplikacje.pl/o-serwisie/#skad (2026-08-31)
- Lekcje z utrzymania aplikacji w naszych wdrożeniach (Service Worker i CSP, logowanie pełnej odpowiedzi serwera, kopie testowane odtworzeniem) — praktyka zespołu — https://jakzrobicaplikacje.pl/o-serwisie/#skad (2026-08-31)
- UptimeRobot — cennik: plan darmowy, 50 monitorów, interwał sprawdzania 5 minut — https://uptimerobot.com/pricing/ (odczyt 31.08.2026)
- Better Stack — cennik: plan darmowy, 10 monitorów i heartbeatów, sprawdzanie nawet co 30 sekund, 100 000 wyjątków miesięcznie — https://betterstack.com/pricing (odczyt 31.08.2026)
- Sentry — cennik: plan darmowy Developer, 5 000 błędów (okresu rozliczeniowego przy tym planie cennik nie podaje) — https://sentry.io/pricing/ (odczyt 31.08.2026)
- web.dev — The service worker lifecycle: reguła „byte-different”, okno 24 godzin przy zdarzeniach funkcyjnych, stan „waiting”, skipWaiting — https://web.dev/articles/service-worker-lifecycle (odczyt 31.08.2026)
- Vercel — Service Level Agreement: 99,99% dostępności platformy serwującej treść, plan Enterprise — https://vercel.com/legal/sla (odczyt 31.08.2026)
- Supabase — Service Level Agreement: 99,9% czasu w każdym miesiącu kalendarzowym, tier Enterprise — https://supabase.com/sla (odczyt 31.08.2026)
- Node.js — Previous Releases: wsparcie wydania LTS jako poprawianie krytycznych błędów przez „a total of 30 months” — https://nodejs.org/en/about/previous-releases (odczyt 31.08.2026)
Tekst przygotował Agent AI Tomka Niedźwieckiego — treść wygenerowana przez sztuczną inteligencję na podstawie własnych wdrożeń zespołu, dokumentacji dostawców i źródeł podanych wyżej, sprawdzona w osobnym przebiegu weryfikacji faktów i zredagowana. Za fakty odpowiada Tomek Niedźwiecki. Ostatnia weryfikacja: 10 września 2026.