Zdefiniuj, co musi dowieść próba
Wydanie API raportowania może wymagać walidacji konfiguracji, zgodności schematu, uwierzytelnionego żądania i ukończonego eksportu. Nie każde sprawdzenie wymaga danych o rozmiarze produkcyjnym. Najpierw zapisz sprawdzenia, a następnie zidentyfikuj właściwości środowiska, które istotnie wpływają na ich wynik.
Użyj autoryzowanego miejsca docelowego nieprodukcyjnego, niezależnych poświadczeń, znanego artefaktu oraz danych syntetycznych lub odpowiednio zanonimizowanych rekordów. Jeśli wymagania dotyczące przetwarzania danych są niejasne, użyj danych syntetycznych. Wybór Szwajcarii lub Panamy dla serwera PrivacyNodes nie ustanawia umowy przetwarzania ani nie określa, gdzie przechowywana jest każda kopia danych lub kopia zapasowa.
Wybierz, co musi być oddzielne
| Komponent | Wybór stagingu | Weryfikacja |
|---|---|---|
| Baza danych | Oddzielna baza danych i rola | Rola nie może czytać produkcji |
| Kolejka | Oddzielny broker lub wymuszona granica dostępu | Żadne zadania produkcyjne nie są konsumowane |
| Pamięć obiektowa | Oddzielne poświadczenia i miejsce docelowe | Eksport trafia tylko do pamięci testowej |
| E-mail/webhooki | Zbiornik przechwytujący lub zatwierdzony sandbox | Żaden rzeczywisty odbiorca nie został skontaktowany |
| Zadania zaplanowane | Wyłączone, chyba że testowane | Brak zduplikowanego harmonogramu produkcyjnego |
| Host | Współdzielony lub oddzielny decyzją | Udokumentowane sprzężenie zasobów i awarii |
Oddzielne bazy danych na jednym hoście nadal współdzielą zasoby i granicę awarii. Oddzielne hosty zmniejszają część sprzężenia, ale nie naprawią poświadczeń wskazujących na produkcję. Sprawdź miejsca docelowe i uprawnienia, a także rozmieszczenie procesów. Dostęp administratora hosta i dostęp do demona Docker mogą podważyć skądinąd staranną izolację aplikacji.
Sprawdź ekspozycję, zamiast ufać nazwie
Opublikowanie portu Docker bez adresu hosta zazwyczaj udostępnia go na wszystkich adresach hosta. Jawne powiązanie z interfejsem loopback zawęża ekspozycję w udokumentowanej konfiguracji bridge/NAT, ale nie jest kompletnym projektem kontroli dostępu. Docker dokumentuje zastrzeżenie dotyczące tej samej sieci dla wersji starszych niż 28.0.0 oraz różnice w zachowaniu między trybami sieci. Sprawdź zainstalowaną wersję i topologię.
Ruch kontenerów może omijać ścieżkę UFW, której oczekuje operator. Nie wnioskuj, że baza danych jest prywatna, wyłącznie na podstawie stanu zapory; nie wyłączaj też reguł filtrowania pakietów Dockera jako skrótu. Zweryfikuj zamierzony dostęp z oddzielnego klienta w używanych rodzinach adresów, bez eksperymentowania na zaporze produkcyjnej.
Dokumentacja techniczna: Publikowanie portów Docker · Filtrowanie pakietów i zapory w Dockerze.
Uczyń dane testowe użytecznymi i ograniczonymi
Utwórz syntetyczne konta z realistycznymi relacjami i przypadkami brzegowymi: pusty eksport, duży raport i odwołane konto. Zachowaj kształty, które sprawdzają migrację, bez przechowywania zbędnych danych identyfikujących. Udokumentuj źródło, proces sanityzacji i datę usunięcia każdej zatwierdzonej kopii danych.
Nie przekazuj produkcyjnych danych uwierzytelniających do poczty ani płatności, aby test konfiguracji przeszedł. Użyj piaskownicy lub kontrolowanego miejsca docelowego. Przetestuj też zachowanie przy błędzie: wyłączona integracja powinna zwracać znaną odpowiedź zamiast ponawiać próby wobec działającej usługi. Sprawdź eksport testowy i odbiornik przechwytywania, aby potwierdzić, że zamierzona ścieżka faktycznie została użyta.
Zapisz różnice, które ograniczają wynik
Utrzymuj zgodność głównych wersji środowiska uruchomieniowego, schematu konfiguracji i kolejności migracji tam, gdzie determinują zachowanie. Zapisz różnice w rozmiarze bazy danych, stanie pamięci podręcznej, współbieżności workerów i zależnościach. Pomyślny test funkcjonalny nie dowodzi produkcyjnej przepustowości ani opóźnień.
Staging na współdzielonym małym hoście może konkurować z produkcją, unieważniając próbę i budżet zasobów na żywo. Oddzielny skromny host może być łatwiejszy do zrozumienia przy funkcjonalnej walidacji wydania. Testy obciążeniowe lub duże migracje wymagają pojemności odpowiedniej do tego zadania; najmniejszy profil nie jest uniwersalną pojemnością stagingu.
Uwzględnij usunięcie w definicji ukończenia
Zapisz artefakt, wynik migracji, testy dymne i różnice względem środowiska docelowego. Odwołaj tymczasowy dostęp, wygaśnij eksporty i usuń dane jednorazowe zgodnie z polityką. Potwierdź, że zaplanowane zadania pozostają wyłączone, a żaden worker nie wskazuje działającego miejsca docelowego.
Ten scenariusz stagingu porównuje skoncentrowany budżet Dev 1 z większą próbą. Połącz to z rekordu wydania. Wynikiem jest udokumentowany zestaw użytecznych kontroli i granic, a nie twierdzenie, że staging dokładnie odwzorowuje produkcję.
Oficjalne odniesienia
Dokumentacja została zweryfikowana dla tego artykułu. Przykłady są ćwiczeniami planistycznymi, a nie poleceniami przetestowanymi na serwerze PrivacyNodes. Sprawdź dokumentację dla swojej zainstalowanej wersji.