Lista kontrolna przekazania aplikacji produkcyjnej do samodzielnego hostingu
Użyj tej listy kontrolnej przekazania aplikacji gotowej do produkcji, aby spakować środowiska, sekrety, monitorowanie, kopie zapasowe i runbooki tak, by ops mogło wdrażać i przejąć odpowiedzialność za aplikację.

Co w praktyce oznacza „przekazanie gotowe do produkcji"
Przekazanie gotowe do produkcji oznacza, że ops może uruchomić aplikację bez domysłów. Mogą wdrożyć znaną wersję, potwierdzić, że jest zdrowa, reagować na alerty i odtworzyć system po nieudanym release'ie lub awarii. Jeśli cokolwiek z tego zależy od pamięci jednego dewelopera, przekazanie nie jest zakończone.
Traktuj przekazanie jako pakiet, który odpowiada na jedno pytanie: jeśli pierwotni twórcy zniknęliby na tydzień, czy ops nadal utrzyma system bezpieczny i dostępy?
Solidny pakiet zwykle obejmuje: co aplikacja robi, jak wygląda „zdrowie”, jak działają wydania (deploy, weryfikacja, rollback), gdzie leży konfiguracja, jak obsługiwać sekrety oraz jak monitorować, robić backupy i reagować na incydenty.
Równie ważne jest to, czego pakiet nie obejmuje. Przekazanie nie jest obietnicą dodawania funkcji, refaktoru, zmiany UI czy „posprzątania później”. To są osobne projekty z własnym zakresem.
Zanim uznasz zadanie za zamknięte, uzgodnij własność i czasy reakcji. Na przykład: ops odpowiada za dostępność i wdrożenia; zespół produktowy za roadmapę; zespół deweloperski zapewnia określone okno wsparcia po przekazaniu dla poprawek i pytań.
Stwórz prostą inwentaryzację systemu (co działa gdzie)
Ops może przejąć odpowiedzialność tylko za to, co widzi. Prosta, jednopozycyjna inwentaryzacja zapobiega zgadywaniu podczas deployów, incydentów i audytów. Trzymaj ją w prostym języku i bądź konkretny.
Wymień każdą działającą część systemu i gdzie się znajduje: backend API, aplikacja webowa, background workers, zadania cykliczne oraz sposób, w jaki łączą się aplikacje mobilne. Nawet jeśli iOS/Android są dystrybuowane przez sklepy, nadal zależą od tego samego backendu.
Uwzględnij usługi zewnętrzne, bez których aplikacja nie działa. Jeśli używasz PostgreSQL, kolejki, obiektu storage albo zewnętrznych API (płatności jak Stripe, komunikacja, email/SMS, Telegram), zapisz dokładną nazwę usługi i do czego służy.
Zarejestruj wymagania sieciowe, aby hosting nie zamienił się w metodę prób i błędów: wymagane domeny (app, api, admin), porty i protokoły, kto odnawia certyfikaty TLS, gdzie zarządzany jest DNS oraz wszelkie allowlisty przychodzące/wychodzące.
Na koniec zapisz oczekiwane obciążenie w konkretnych liczbach: szczytowe żądania na minutę, aktywni użytkownicy, typowe rozmiary payloadów, obecny rozmiar bazy danych i oczekiwany wzrost. Nawet przybliżone zakresy pomagają ops ustawić limity i alerty.
Jeśli zbudowałeś aplikację z AppMaster, zinwentaryzuj wygenerowany backend, aplikację webową i integracje, aby ops wiedziało, co musi być wdrożone razem.
Spakuj konfigurację środowisk (bez ujawniania sekretów)
Produkcyjne konfiguracje zwykle zawodzą na nudnych rzeczach: konfiguracji, która żyje tylko w głowie kogoś. Traktuj konfigurację jak dostawę. Ops powinno móc zobaczyć, jakie ustawienia istnieją, co różni się między środowiskami i jak bezpiecznie je zmieniać.
Zacznij od nazwania każdego środowiska, które istnieje dziś, nawet jeśli uważasz je za tymczasowe. Większość zespołów ma dev, staging i production, plus kopie jak „production-eu” czy „staging-us”. Zanotuj, które środowisko służy do testów wydań, migracji danych i ćwiczeń incydentowych.
Dostarcz jedną referencję konfiguracji, która wymienia nazwy zmiennych i bezpieczne przykładowe wartości (nigdy prawdziwych poświadczeń). Zrób widoczne placeholdery.
Twój pakiet przekazania powinien zawierać:
- Listę środowisk i opis, do czego każde służy
- Referencję kluczy konfiguracyjnych (zmienne env lub klucze plików konfiguracyjnych), oczekiwany typ i przykładową, nie-sekretną wartość
- Znane różnice między środowiskami (feature flagi, limity, rozmiary cache, tryb email, poziom logowania)
- Wartości domyślne i co się stanie, jeśli klucz będzie brakował
- Gdzie konfiguracja jest przechowywana i jak jest stosowana podczas deployu
Dodaj prosty proces zmiany. Na przykład: żądanie w ticketcie, przegląd przez właściciela serwisu, zastosowanie w stagingu, a następnie promocja do produkcji w zaplanowanym oknie z planem rollbacku, jeśli wskaźniki błędów rosną.
Jeśli eksportujesz i samodzielnie hostujesz aplikację z AppMaster, zachowaj tę samą zasadę: dostarcz czysty, udokumentowany zestaw kluczy konfiguracyjnych wraz z wygenerowanym źródłem, aby ops mogło uruchomić aplikację spójnie w różnych środowiskach.
Sekrety i poświadczenia: przechowywanie, rotacja i dostęp
Sekrety to najszybsza droga, aby czyste przekazanie zamieniło się w incydent bezpieczeństwa. Cel jest prosty: ops powinno znać każdy sekret potrzebny aplikacji, gdzie się znajduje, kto może go odczytać i jak zmienić go bez przestojów.
Zacznij od krótkiej listy sekretów, którą ops może przeskanować w minutę. Dla każdego elementu zanotuj, co odsłania (baza danych, SMTP, Stripe, klucz JWT), gdzie jest przechowywany (vault, chmurowy secret store, Kubernetes Secret, zaszyfrowany plik) i kto odpowiada za rotację.
Napisz kroki rotacji jak przepis, nie politykę. Uwzględnij dokładną kolejność, jak długo stary sekret musi pozostać ważny i jedną czynność, która potwierdzi, że wszystko zadziałało.
Lista kontrolna rotacji (przykład)
Użyj tego wzorca dla każdego sekretu:
- Utwórz nową wartość sekretu i zapisz ją w zatwierdzonym menedżerze sekretów.
- Wdróż zmianę konfiguracji tak, aby aplikacja używała nowej wartości.
- Zweryfikuj: logowanie, płatności lub wywołania API działają, a wskaźniki błędów pozostają normalne.
- Cofnij/odwołaj stary sekret i potwierdź, że już nie działa.
- Zarejestruj datę rotacji, kto ją wykonał i termin następnej rotacji.
Bądź jednoznaczny co do oczekiwań szyfrowania. Sekrety powinny być szyfrowane w spoczynku w magazynie sekretów i chronione w tranzycie (TLS) między aplikacją a zależnościami. Nigdy nie umieszczaj sekretów w repozytorium kodu, artefaktach builda ani w współdzielonych dokumentach.
Zdefiniuj procedurę "break-glass". Jeśli awaria blokuje normalny dostęp, określ kto może zatwierdzić dostęp awaryjny, jak długo trwa i co musi być zaudytowane później.
Pakiet wdrożeniowy: artefakty, wersje i rollback
Ops może przejąć tylko to, co potrafi odtworzyć. Dobry pakiet wdrożeniowy ułatwia odpowiedzi na trzy pytania: co dokładnie uruchamiamy, jak wdrożyć to ponownie i jak szybko wrócić, gdy coś się zepsuje?
Dołącz jasny "bill of materials" dla builda. Nazwij typ artefaktu i jak go zweryfikować, nie tylko gdzie leży:
- Szczegóły artefaktu: nazwa/tag obrazu kontenera (lub nazwa binarki/pakietu), wersja aplikacji, data builda, checksum
- Odniesienie do źródła: tag release lub hash commita użyty do builda oraz flagi builda, które mają znaczenie
- Obsługiwane cele: VM, kontenery (Docker) czy Kubernetes oraz który jest rekomendowany domyślnie
- Kroki wdrożenia: prerekwizyty (runtime, baza danych, storage), dokładna kolejność i typowy czas wdrożenia
- Migracje bazy: jak są uruchamiane (auto przy starcie czy manualnie), gdzie są logi i jak potwierdzić powodzenie
Dodaj mały, konkretny przykład. Na przykład: „Wdróż v1.8.2, aktualizując tag obrazu, uruchamiając migracje, a potem restartując web workery. Jeśli health checki nie przejdą w ciągu 10 minut, przywróć v1.8.1 i zatrzymaj zadanie migracji.”
Rollback, bez zgadywania
Plan rollbacku powinien być napisany jak instrukcja, której można przestrzegać o 2:00 w nocy. Powinien zawierać:
- Sygnał uruchamiający rollback (wskaźnik błędów, nieudane health checki, problemy z logowaniem)
- Ostatnia znana dobra wersja i gdzie jest przechowywana
- Czy zmiany w bazie są odwracalne i co robić, jeśli nie są
Jeśli aplikacja została zbudowana w AppMaster i wyeksportowana jako kod źródłowy do samodzielnego hostingu, dołącz wersję wygenerowanego kodu, instrukcje builda i oczekiwania runtime, żeby ops mogło odbudować ten sam release później.
Monitorowanie i alertowanie: co mierzyć i kiedy dzwonić
Przekazanie nie jest kompletne, dopóki ops nie widzi, co aplikacja robi, i nie dostaje ostrzeżeń zanim użytkownicy zaczną narzekać.
Uzgodnij, jakie logi muszą istnieć i gdzie trafiają (plik, syslog, platforma logów). Upewnij się, że logi są zsynchronizowane czasowo i zawierają identyfikator żądania/korelacji, aby incydenty były śledzalne end-to-end.
Zwykle potrzebujesz logów aplikacji (kluczowe zdarzenia i błędy), logów błędów (stack trace'y i nieudane zadania), logów dostępu (żądania i kody statusu), logów audytu (akcje administracyjne i eksporty) oraz logów infrastruktury (restarty, presja na nodach, problemy z dyskiem).
Następnie zdefiniuj mały zestaw metryk odzwierciedlających wpływ na użytkownika i zdrowie systemu. Jeśli wybierasz tylko pięć: opóźnienie (p95/p99), wskaźnik błędów, nasycenie (CPU/pamięć/dysk), głębokość kolejek i zewnętrzne kontrole dostępności.
Reguły alertów powinny być jednoznaczne: co uruchamia alert, stopień (page vs ticket), kto jest on-call i kiedy eskalować. Dodaj zrzut "dobrego" dashboardu i krótką notatkę opisującą, jak wygląda normalność (typowy zakres opóźnień, oczekiwany wskaźnik błędów, zwykła głębokość kolejek). Ten kontekst zapobiega szumowi alertów i pomaga nowym responderom działać szybko.
Backupy i odzyskiwanie: spraw, by przywracanie było powtarzalne
Backupy to nie coś, co „się ma”. To coś, z czego można przywrócić, na żądanie.
Zapisz dokładny zakres: baza danych, storage plików (uploady, raporty, faktury) i elementy, które często się zapomina, jak konfiguracja spoza kodu oraz klucze szyfrujące potrzebne do odczytu chronionych danych.
Trzymaj cele w prostych terminach. RPO to ile danych możesz stracić (np. 15 minut). RTO to ile możesz być niedostępny (np. 1 godzina). Wybierz liczby, które biznes zaakceptuje, bo one determinują koszty i wysiłek.
Dołącz:
- Co jest backupowane, gdzie jest przechowywane i politykę retencji
- Kto może uruchamiać backupy i przywracanie oraz jak zatwierdza się dostęp
- Procedurę przywracania krok po kroku z kontrolami weryfikacyjnymi
- Gdzie leżą logi przywracania i co oznacza „sukces”
- Typowe tryby awarii (zły klucz, brak bucketu, niezgodność schematu) i jak je naprawić
Jeśli eksportujesz i samodzielnie hostujesz aplikację zbudowaną w AppMaster, dołącz kroki przywracania PostgreSQL oraz wszelkie zewnętrzne buckety storage i klucze używane do szyfrowanych pól.
Zaplanuj próbę przywracania. Zarejestruj czas, co zawiodło i co zmieniono, aby następne przywrócenie było szybsze i mniej stresujące.
Runbooki i on-call: jak ops radzi sobie z prawdziwymi incydentami
Przekazanie nie jest prawdziwe, dopóki ktoś nie może otrzymać pagingu o 2:00 w nocy i naprawić problemu bez zgadywania. Runbooki zamieniają wiedzę plemienną w kroki, które on-call może wykonać.
Zacznij od incydentów, które spodziewasz się występować najpierw: całkowita awaria, spowolnienie żądań i wdrożenie, które coś łamie. Trzymaj każdy runbook krótki. Umieść na górze najszybsze kontrole, aby responder mógł uzyskać sygnał w ciągu kilku minut.
Co zawiera dobry runbook
Zachowaj spójną strukturę, aby był czytelny pod presją:
- Co widzą użytkownicy i jak to potwierdzić (np. wskaźnik błędów powyżej X%, problem z finalizacją płatności)
- Pierwsze sprawdzenia (status usługi, ostatnie wdrożenie, zdrowie zależności, dysk/CPU, połączenia do bazy)
- Kolejne sprawdzenia (które logi otworzyć, kluczowe dashboardy, ostatnie zmiany konfigu, głębokość kolejek)
- Punkty decyzyjne (kiedy wycofać, kiedy skalować, kiedy wyłączyć funkcję)
- Eskalacja (kto jest właścicielem aplikacji, kto infra i kiedy dzwonić)
Jeśli aplikacja została wyeksportowana lub samodzielnie hostowana z AppMaster, dołącz gdzie wygenerowane usługi działają, jak je bezpiecznie restartować i jakie wartości konfiguracyjne są oczekiwane w każdym środowisku.
Po incydencie: zapisz właściwe fakty
Trzymaj krótką checklistę post-incident. Zarejestruj oś czasu, co zmieniono jako ostatnie, dokładne komunikaty o błędach, dotkniętych użytkowników i co naprawiło problem. Potem zaktualizuj runbook, póki szczegóły są świeże.
Kontrola dostępu i uprawnienia: kto może co robić
Ops może przejąć system, tylko gdy jest jasne, kto może co robić i jak śledzić dostęp.
Zapisz role, których faktycznie używasz. Dla wielu zespołów wystarczające są:
- Deployer: wdraża zatwierdzone wersje i uruchamia rollback
- DB admin: wykonuje zmiany schematu i przywraca backupy
- Read-only: przegląda dashboardy, logi i konfiguracje bez edycji
- Incident commander: zatwierdza działania awaryjne podczas przestoju
Udokumentuj politykę przyznawania dostępu w prostych krokach: kto przyznaje dostęp, gdzie jest przyznawany (SSO, cloud IAM, użytkownicy bazy, CI/CD, panele admina), kto może go odebrać i jak potwierdzić usunięcie przy offboardingu.
Nie zapomnij o dostępie nienależącym do ludzi. Wymień każde konto serwisowe i token używany przez joby, integracje i monitoring, z notką o zasadzie najmniejszych uprawnień dla każdego (np. „może czytać tylko bucket X”). Jeśli eksportujesz kod AppMaster do samodzielnego hostingu, uwzględnij, które zmienne env lub pliki konfiguracyjne definiują te tożsamości, ale nigdy nie wklejaj wartości sekretów do dokumentu przekazania.
Ustal też oczekiwania dotyczące logów audytu: co musi być logowane (logowanie, deploy, zmiana konfiguracji, akcje DBA), kto może czytać logi, czas retencji, gdzie są przechowywane logi i jak prosić o logi podczas incydentu lub przeglądu.
Podstawy bezpieczeństwa i zgodności (prostym językiem)
Notatki bezpieczeństwa powinny być czytelne dla osób niebędących specjalistami, ale na tyle konkretne, by ops mogło działać. Dodaj jednosenową stronę podsumowania, która odpowiada: jakie dane przechowujemy, gdzie i kto ma do nich dostęp?
Zacznij od typów danych: profile klientów, zgłoszenia do supportu, metadane płatności, pliki. Wyróżnij wrażliwe kategorie jak PII (imię, email, telefon), poświadczenia i dane regulowane, na których firmie zależy. Jeśli eksportowałeś kod źródłowy do samodzielnego hostingu (w tym z AppMaster), zanotuj, gdzie te dane trafiają w bazie i które usługi mogą je czytać.
Następnie opisz zasady retencji i usuwania w praktycznych słowach. Powiedz, co przechowujesz, jak długo i jak działa usuwanie (soft delete vs hard delete, opóźnione usunięcie, backupy). Jeśli są prawne blokady lub potrzeby audytowe, zapisz, kto zatwierdza wyjątki.
Logi często wyciekają więcej niż bazy. Bądź jasny, gdzie PII może się pojawić (logi dostępu, błędów, zdarzenia analityczne) i jak je ograniczać lub maskować. Jeśli pole nie może być nigdy logowane, wpisz tę regułę.
Zachowaj zatwierdzenia explicite:
- Zmiany w uwierzytelnianiu wymagają nazwanego zatwierdzającego.
- Zmiany związane z płatnościami (klucze Stripe, endpointy webhooków, logika refundów) wymagają nazwanego zatwierdzającego.
- Zmiany modeli ról i uprawnień wymagają nazwanego zatwierdzającego.
- Okna patchowania bezpieczeństwa i reguły zmian awaryjnych są zapisane.
Jeśli możesz dodać tylko jedną rzecz, dodaj notatkę dowodową: gdzie są trzymane logi audytu i jak je wyeksportować na żądanie.
Przykładowy scenariusz przekazania: ops przejmuje odpowiedzialność w tydzień
Ops przejmuje portal klienta zbudowany przez mały zespół produktowy i przenosi go na nową infrastrukturę do samodzielnego hostingu. Celem nie jest tylko „uruchomić”, ale „ops może nim zarządzać bez dzwonienia do twórców”.
Jak wygląda tydzień
Dzień 1: Ops robi czyste pierwsze wdrożenie w nowym środowisku używając tylko pakietu przekazania. Aplikacja wstaje, ale logowanie nie działa, bo brakuje zmiennej środowiskowej dla dostawcy email. To zostaje dodane do szablonu env i wdrożenie powtarzane, aż zadziała od zera.
Dzień 2: Wywołuje się pierwszy alert celowo. Ops powoduje kontrolowaną awarię (zatrzymuje jedną usługę lub blokuje wychodzący email) i potwierdza: metryki pokazują problem, alerty trafiają do właściwego kanału, a komunikat mówi, co robić dalej.
Dzień 3: Token wygasa w sandboxie płatności. Dzięki temu, że lokalizacja poświadczeń i kroki rotacji są udokumentowane, ops je zastępuje bez zgadywania i bez ujawniania sekretów.
Dzień 4: Przecięcie DNS. Zły rekord wskazuje na stary IP i portal jest niedostępny dla części użytkowników. Ops używa runbooka, by zweryfikować DNS, TLS i health checki w odpowiedniej kolejności.
Dzień 5: Pierwszy test przywracania backupu. Ops przywraca do świeżej bazy i udowadnia, że portal ładuje realne dane.
Jak wygląda „gotowe" po tygodniu
Aplikacja działa przez 7 dni bez tajemniczych poprawek, jeden udany restore, jasne alerty i powtarzalny deploy, który ops potrafi wykonać samodzielnie.
Częste błędy przy przekazywaniu, które powodują nocne pożary
Najszybsza droga, żeby spokojne przekazanie zamieniło się w pożar o 2:00 w nocy, to założenie, że „powiedzieliśmy ops wszystko” jest równoznaczne z „ops potrafi zarządzać bez nas”.
Typowe wzorce porażek po przekazaniu do samodzielnego hostingu to: sekrety dzielone w arkuszach lub czatach, rollbacky zależne od dewelopera, backupy które istnieją, ale nigdy nie testowano przywrócenia, alerty dzwoniące cały czas bo progi nie były dostrojone, i detale środowisk które żyją tylko w czyjejś głowie (porty, nazwy DNS, zadania cron, uprawnienia w chmurze).
Przykład: eksportujesz kod źródłowy z AppMaster do samodzielnego hostingu i pierwsze wdrożenie działa. Po dwóch tygodniach zmiana konfiguracji łamie logowanie. Jeśli sekrety były przekazywane przez chat, a rollback wymaga oryginalnego budowniczego, ops traci godziny, żeby wrócić do „działało wczoraj”.
Szybkie kontrole przed ogłoszeniem "przekazanie zakończone"
Zanim zamkniesz ticket, wykonaj krótkie ćwiczenie świeżego startu. Oddaj pakiet przekazania jednemu inżynierowi ops i czyste środowisko (nowa VM, nowa przestrzeń nazw Kubernetes, albo pusty projekt w chmurze). Jeśli potrafi wdrożyć, obserwować i odzyskać aplikację w ustalonym czasie (np. 2 godziny), jesteś blisko.
Użyj tych kontroli:
- Odbuduj i wdroż z zera używając tylko spakowanych artefaktów, dokumentów konfiguracyjnych i runbooków (w tym rollbacku).
- Zweryfikuj, że każdy sekret leży w uzgodnionym miejscu i że kroki rotacji są zapisane i przetestowane.
- Otwórz dashboardy i potwierdź, że odpowiadają na podstawowe pytania: czy jest dostępne, czy jest wolne, czy są błędy, czy brakuje zasobów?
- Wywołaj jeden bezpieczny test alertu, aby potwierdzić trasy pagingowe, właścicieli i zasady ciszy.
- Wykonaj rzeczywisty test przywracania do oddzielnego środowiska, a potem udokumentuj dokładne kroki i oczekiwany wynik.
Jeśli eksportujesz wygenerowany kod do samodzielnego hostingu, dodatkowo potwierdź, że ops wie, gdzie zapisane są wejścia builda, wersje i tagi release'ów, aby przyszłe wydania pozostały odtwarzalne.
Następne kroki: sfinalizuj własność i utrzymuj pakiet aktualnym
Przeprowadź ostatnie wspólne ćwiczenie z osobami, które będą nosić pager. Traktuj to jak próbę generalną. Udowodnij, że deploy, rollback, restore i alertowanie działają przy użyciu dokładnego pakietu, który przekazujesz.
Ostatnie ćwiczenie zwykle obejmuje: deploy do środowiska testowego, potem produkcyjnego używając tych samych kroków, rollback do poprzedniej wersji i weryfikację działania aplikacji, przywrócenie z backupu do czystego środowiska i potwierdzenie prostego testu (logowanie, utworzenie rekordu, wysłanie wiadomości), wywołanie jednego bezpiecznego alertu i potwierdzenie, gdzie znaleźć logi i dashboardy podczas incydentu.
Uczyń własność explicite. Przypisz nazwanego właściciela dla każdego runbooka (deploy, incydent, restore) i dla każdej ścieżki alertu (pierwszorzędny on-call, backup, zachowanie poza godzinami). Jeśli nikt nie jest właścicielem alertu, zostanie zignorowany lub obudzi niewłaściwą osobę.
Napisz krótki plan Day 2, aby ops wiedziało, co poprawić po pierwszym tygodniu: strojenie progów, sprawdzenie kosztów, sprzątanie starych artefaktów i przegląd dostępu. Trzymaj to małe i ograniczone czasowo.
Jeśli zbudowałeś w AppMaster (appmaster.io), dołącz wyeksportowany kod źródłowy lub dokładne szczegóły celu wdrożenia (chmura, regiony, ustawienia builda, wymagane usługi), aby ops mogło odtworzyć aplikację bez polegania na oryginalnym workspace projektu. Ustal prosty rytm aktualizacji pakietu, gdy zmieniają się wymagania, aby runbooki nie odpłynęły od rzeczywistości.
FAQ
Handoff gotowy do produkcji oznacza, że ops może wdrożyć znaną wersję, potwierdzić jej zdrowie, reagować na alerty i odzyskać działanie po awarii bez polegania na pamięci konkretnego dewelopera. Jeśli tydzień bez twórców wystawi system na ryzyko, przekazanie nie jest ukończone.
Zacznij od jednostronicowej inwentaryzacji systemu, która wymienia każdy działający komponent i gdzie się znajduje: API, aplikacja webowa, workers, zadania cykliczne, baza danych, storage i wymagane usługi zewnętrzne. Dodaj domeny, porty, kto zarządza DNS/TLS i przybliżone obciążenie, żeby ops nie działało w ciemno.
Przygotuj jedną referencję konfiguracji, która wymienia każdy klucz konfiguracyjny, jego typ i bezpieczny przykład wartości, oraz co różni się między dev/staging/prod. Trzymaj prawdziwe poświadczenia poza nią i opisz, gdzie konfiguracja jest przechowywana oraz jak jest stosowana podczas wdrożenia.
Stwórz krótką listę sekretów, która mówi, do czego każdy służy, gdzie jest przechowywany, kto może go odczytać i kto odpowiada za rotację. Opisz kroki rotacji jako checklistę z jednym jasnym krokiem weryfikacyjnym oraz procedurę awaryjnego dostępu z wymaganiem audytu po użyciu.
Ops musi wiedzieć dokładnie, co jest uruchomione i jak to odtworzyć: nazwa/tag artefaktu, wersja, data budowy, suma kontrolna oraz odniesienie do źródła użytego do zbudowania. Dołącz rekomendowany cel wdrożenia, kolejność kroków, oczekiwany czas wdrożenia i sposób uruchamiania oraz weryfikacji migracji bazy danych.
Zdefiniuj sygnały uruchamiające rollback (np. podwyższony wskaźnik błędów, nieudane health checki), ostatnią znaną dobrą wersję i dokładne kroki szybkiego przywrócenia. Powiedz też, czy zmiany w bazie są odwracalne i jaki jest bezpieczny plan, jeśli nie są, żeby rollback nie stał się improwizacją.
Wybierz niewielki zestaw metryk odzwierciedlających wpływ na użytkownika: opóźnienia (p95/p99), wskaźnik błędów, obciążenie (CPU/pamięć/dysk), głębokość kolejek i zewnętrzne kontrole dostępności. Alerty powinny być jednoznaczne: co uruchamia alert, stopień ważności (page vs ticket), kto jest on-call i kiedy eskalować. Upewnij się, że logi są zsynchronizowane czasowo i zawierają identyfikator korelacji.
Udokumentuj, co jest backupowane, gdzie jest przechowywane, okres przechowywania i kto może wykonać przywrócenie. Dołącz krok po kroku procedurę przywracania z weryfikacją i zaplanuj ćwiczenie przywracania; backupy mają znaczenie tylko wtedy, gdy można z nich odtworzyć system na żądanie w czystym środowisku.
Runbooki powinny być krótkie i spójne: objawy, pierwsze sprawdzenia, kolejne kroki, punkty decyzyjne i eskalacja. Skup się na najbardziej prawdopodobnych incydentach (awaria, spowolnienie, nieudane wdrożenie) i zaktualizuj runbook zaraz po incydencie, gdy szczegóły są świeże.
Wypisz role, których naprawdę używacie (deployer, DBA, read-only, incident commander), jak przyznaje się i odbiera dostęp oraz co musi być logowane dla audytu. Nie zapomnij o kontach serwisowych i tokenach; podaj, do czego mają dostęp i gdzie ich tożsamość jest skonfigurowana, bez umieszczania wartości sekretnych.


