Testowanie DR bez wpływu na środowisko
Proszę przeprowadzić testowe przełączenie awaryjne do odizolowanej sieci, aby zweryfikować cały plan odtwarzania, zmierzyć rzeczywisty RTO i udokumentować luki wymagające naprawy.
Testowanie DR bez wpływu na środowisko to bezpłatna lekcja Azure Fundamentals na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Azure Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Azure Fundamentals zawiera 4 lekcji w sumie.
Dlaczego testowanie DR jest niezbędne
Plan odzyskiwania po awarii, który nigdy nie został przetestowany, jest tylko hipotezą. Doświadczenia z rzeczywistych wdrożeń pokazują, że plany DR często ujawniają luki — rozbieżności w konfiguracji, brak automatyzacji, nieaktualne elementy runbook lub dłuższy od oczekiwanego czas uruchamiania — które wychodzą na jaw dopiero podczas testów. Regularne testowanie DR to jedyny sposób, aby mieć pewność, że plan zadziała wtedy, gdy będzie najbardziej potrzebny.
Funkcja Test Failover
Test Failover to wbudowana funkcja Azure Site Recovery, która umożliwia zasymulowanie przełączenia awaryjnego do regionu pomocniczego bez przerywania działania środowiska produkcyjnego. Podczas testowego przełączenia awaryjnego ASR tworzy kopie replikowanych maszyn wirtualnych w odizolowanej sieci wirtualnej w regionie pomocniczym. Produkcyjne maszyny wirtualne nadal działają normalnie w regionie podstawowym, więc użytkownicy korzystający ze środowiska produkcyjnego nie są narażeni na ryzyko.
# Trigger a test failover for a recovery plan:
az site-recovery recovery-plan test-failover \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--failover-direction PrimaryToRecovery \
--network-id '/subscriptions/.../virtualNetworks/testFailoverVNet'Izolowanie środowiska testowego
Izolowana sieć VNet środowiska testowego nie może mieć połączenia z systemami produkcyjnymi. Zapobiega to przypadkowemu zapisywaniu przez testowe maszyny wirtualne danych w produkcyjnej bazie danych, wysyłaniu wiadomości e-mail do rzeczywistych klientów lub uruchamianiu transakcji płatniczych. Należy utworzyć dedykowaną sieć VNet na potrzeby testowego przełączenia awaryjnego, bez peeringu z produkcyjnymi sieciami VNet i bez dostępu do Internetu, a następnie używać jej wyłącznie do ćwiczeń DR.
# Create an isolated test VNet for DR drills:
az network vnet create \
--resource-group drRG \
--name testFailoverVNet \
--address-prefix 10.99.0.0/16 \
--subnet-name testSubnet \
--subnet-prefix 10.99.1.0/24
# NOTE: Do NOT peer this VNet to any production VNetCo należy zweryfikować podczas testu DR
Test DR powinien obejmować określony zestaw kryteriów:
- Czas uruchamiania — czy wszystkie maszyny wirtualne uruchamiają się w oczekiwanym przedziale czasu?
- Uruchamianie aplikacji — czy aplikacja inicjalizuje się prawidłowo po połączeniu z odzyskaną bazą danych?
- Integralność danych — czy dane w punkcie odzyskiwania są spójne i kompletne?
- Rzeczywisty RTO — należy zmierzyć całkowity czas, który upłynął od uruchomienia przełączenia awaryjnego do rozpoczęcia obsługi żądań przez aplikację
- Wykonanie elementów runbook — czy wszystkie skrypty automatyzacji zakończyły się pomyślnie?
Pomiar rzeczywistego RTO
Podczas testu należy uruchomić stoper w chwili wyzwolenia testowego przełączenia awaryjnego. Stoper należy zatrzymać po potwierdzeniu poprawnego działania aplikacji (sonda kondycji modułu równoważenia obciążenia zwraca kod 200 OK). Jest to rzeczywisty RTO. Należy porównać go z docelowym RTO. Jeśli rzeczywisty RTO przekracza wartość docelową, należy zidentyfikować wąskie gardła — powolne uruchamianie maszyn wirtualnych, długą inicjalizację bazy danych lub opóźnienie propagacji DNS — i usunąć ich przyczyny.
# During DR test, record timestamps:
# T0: Test failover triggered
# T1: All VMs in group 1 (database) running
# T2: All VMs in group 2 (app tier) running
# T3: All VMs in group 3 (web tier) running
# T4: Health probe returns 200 OK on all instances
# Actual RTO = T4 - T0
# Compare to target RTO, document any gapsSprawdzanie danych w punkcie odzyskiwania
Po zakończeniu testowego przełączenia awaryjnego należy połączyć się z odzyskaną bazą danych i zweryfikować dane. Należy sprawdzić, czy transakcje zatwierdzone przed odcięciem replikacji są obecne oraz czy transakcje częściowo zatwierdzone są prawidłowo obsługiwane (wycofane lub dokończone). W przypadku baz danych obsługujących funkcję przywracania do punktu w czasie (PITR) należy przetestować przywracanie do określonego znacznika czasu i zweryfikować oczekiwany stan danych.
# Example data verification after test failover:
# 1. Connect to recovered database
# 2. Run: SELECT COUNT(*) FROM orders WHERE created_at > DATEADD(hour, -1, GETUTCDATE())
# 3. Compare count to production database count for the same window
# 4. Check for any orphaned records or constraint violationsCzyszczenie po testowym przełączeniu awaryjnym
Po zakończeniu testu należy usunąć zasoby testowego przełączenia awaryjnego — testowe maszyny wirtualne, ich dyski i interfejsy sieciowe w regionie pomocniczym. Azure Site Recovery udostępnia w portalu akcję „Cleanup test failover”, która automatycznie usuwa wszystkie zasoby testowe. Zaniechanie czyszczenia powoduje niepotrzebne koszty i zaśmieca region pomocniczy nieaktualnymi zasobami.
# Trigger cleanup after test failover:
az site-recovery recovery-plan test-failover-cleanup \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--notes 'Test completed. RTO = 22 minutes. All checks passed.'Dokumentowanie wyników testów DR
Po każdym teście DR należy sporządzić raport z testu zawierający: datę i zakres testu, osiągnięte wartości rzeczywistego RTO i RPO, listę kontrolną elementów weryfikacji ze statusem powodzenia lub niepowodzenia, zaobserwowane luki lub błędy oraz zaplanowane działania naprawcze. Raport ten jest przydatny podczas audytów zgodności (ISO 27001, SOC 2, HIPAA) oraz do śledzenia wzrostu dojrzałości procesów DR w czasie.
Częstotliwość testowania DR
Najlepsze praktyki branżowe i struktury zgodności zazwyczaj wymagają przeprowadzania testów DR co najmniej raz w roku, jednak wiele organizacji testuje obciążenia klasy Tier 1 co kwartał, a nawet co miesiąc. Częstsze testowanie pozwala wcześniej wykrywać rozbieżności w konfiguracji oraz budować pewność i doświadczenie zespołu. Należy w miarę możliwości zautomatyzować przygotowanie i weryfikację testu, aby ograniczyć nakład pracy związany z częstym testowaniem.
Azure Chaos Studio do testowania odporności
Azure Chaos Studio to zarządzana usługa chaos engineering, która umożliwia wprowadzanie kontrolowanych awarii do zasobów platformy Azure w celu testowania odporności aplikacji. Można wyłączać maszyny wirtualne, powodować awarie stref, ograniczać użycie procesora lub wprowadzać opóźnienia sieciowe, aby obserwować zachowanie aplikacji. W przeciwieństwie do standardowego ćwiczenia DR chaos engineering sprawdza, czy aplikacja łagodnie degraduje działanie w warunkach częściowej awarii.
# Chaos Studio experiment: shut down a VM zone
# 1. Create a chaos experiment in the portal
# 2. Select fault: 'VM Shutdown'
# 3. Target: VMs in Zone 1
# 4. Duration: 10 minutes
# 5. Observe: Does Traffic Manager reroute to Zone 2?
# 6. Check: Application health during and after the faultCiągły cykl doskonalenia DR
Testowanie DR przynosi największą wartość jako element ciągłego cyklu doskonalenia: Zaplanuj → Wykonaj → Zmierz → Usuń problemy → Powtórz. Po każdym teście należy usunąć wykryte luki, zaktualizować elementy runbook i dokumentację, a następnie ponownie przeprowadzić test. Z czasem różnica między deklarowanymi wartościami docelowymi RTO/RPO a wartościami rzeczywiście osiąganymi powinna się zmniejszać, aż wszystkie testy będą konsekwentnie zaliczane w ramach przyjętej tolerancji.
Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji dowiedziałeś się, że testowe przełączenie awaryjne umożliwia zasymulowanie zdarzenia DR bez przerywania działania środowiska produkcyjnego przez utworzenie kopii maszyn wirtualnych w odizolowanej sieci VNet; podczas testu należy zmierzyć rzeczywisty RTO i zweryfikować integralność danych; a po każdym ćwiczeniu należy usunąć zasoby testowe i udokumentować wyniki. Następnie omówimy odzyskiwanie po awarii w usługach PaaS, takich jak Azure SQL Database.
Ucz się Azure Fundamentals dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Testowanie DR bez wpływu na środowisko” jest bezpłatna?
Tak — pełny tekst „Testowanie DR bez wpływu na środowisko” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Azure Fundamentals, przejdź na CoddyKit PRO. Kurs Azure Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „Testowanie DR bez wpływu na środowisko”?
Proszę przeprowadzić testowe przełączenie awaryjne do odizolowanej sieci, aby zweryfikować cały plan odtwarzania, zmierzyć rzeczywisty RTO i udokumentować luki wymagające naprawy. Ćwiczysz Azure Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Azure Fundamentals?
Nie wymagamy żadnego doświadczenia. Azure Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Testowanie DR bez wpływu na środowisko”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Azure Fundamentals?
Tak. Każda lekcja Azure Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Definiowanie RTO, RPO i poziomów odtwarzania
- Plany odtwarzania i automatyczne przełączanie awaryjne
- Testowanie DR bez wpływu na środowisko
- DR dla usług PaaS