Przejdź do głównej zawartości

Backup, odzyskiwanie i rollback

Agent AI właśnie zrefaktoryzował twój moduł uwierzytelniania w 47 plikach. Testy przechodzą. Typy się zgadzają. Scalasz PR. Dwie godziny później tokeny sesji nie są walidowane w admin API — agent usunął rejestrację middleware, która nie była pokryta testami. Musisz cofnąć zmiany, ale trzy inne PR zostały scalone na wierzchu. To jest scenariusz disaster recovery, z którym każdy zespół używający narzędzi AI ostatecznie się spotyka.

  • Strategie checkpointów i rollbacków specyficzne dla rozwoju wspomaganego AI
  • Procedury odzyskiwania po regresjach wprowadzonych przez AI na każdym etapie pipeline’u
  • Kontrole bezpieczeństwa przed uruchomieniem, które zapobiegają katastrofom zanim się wydarzą
  • Wzorce reagowania na incydenty związane z AI w środowisku produkcyjnym
  • Praktyki audytowe, które przyspieszają i ułatwiają analizę przyczyn źródłowych

Najlepsza strategia disaster recovery to zapobieganie katastrofom. Buduj siatki bezpieczeństwa na każdym etapie.

System checkpointów Cursor zapewnia automatyczne punkty rollbacku:

  • Checkpointy są tworzone automatycznie przed każdą akcją agenta
  • Użyj panelu Timeline do przeglądania i przywracania dowolnego checkpointu
  • Twórz ręczne checkpointy przed operacjami wysokiego ryzyka: kliknij prawym przyciskiem w timeline

Dodaj jawne reguły bezpieczeństwa:

.cursor/rules
SAFETY REQUIREMENTS:
Before any multi-file refactoring:
1. List all files that will be modified
2. Verify the test suite passes BEFORE making changes
3. After changes, run the full test suite
4. If any test fails, revert ALL changes and report what went wrong
NEVER delete files without explicit user confirmation.
NEVER modify configuration files (*.config.*, .env*, Dockerfile) without showing the diff first.
  1. Feature flagi dla zmian generowanych przez AI

    Wdrażaj zmiany wspomagane AI za feature flagami. Jeśli coś pójdzie nie tak, przełącz flagę zamiast cofać wdrożenie.

  2. Wdrożenia canary

    Kieruj 5% ruchu do nowej wersji. Monitoruj wskaźniki błędów, opóźnienia i kluczowe metryki biznesowe przez 30 minut przed rozszerzeniem.

  3. Automatyczne triggery rollbacku

    Skonfiguruj automatyczny rollback, gdy wskaźnik błędów przekroczy 2x linię bazową lub p99 opóźnienia przekroczy 3x linię bazową.

  4. Monitorowanie po wdrożeniu

    Obserwuj dashboardy przez 4 godziny po wdrożeniu zmian generowanych przez AI. Tryby awarii kodu AI są często subtelne — edge case’y i warunki wyścigu zamiast crashów.

To jest najłatwiejsze odzyskiwanie. AI dokonało zmian, które łamią zestaw testów.

Użyj timeline’u checkpointów Cursor, aby przywrócić ostatni dobry stan:

  1. Otwórz panel Timeline
  2. Znajdź checkpoint przed łamiącą zmianą
  3. Kliknij “Restore”, aby wrócić do tego stanu
  4. Alternatywnie użyj Cmd+Z agresywnie — Cursor śledzi zmiany AI oddzielnie od ręcznych edycji

Scenariusz 2: Kod generowany przez AI scalony, ale powoduje problemy produkcyjne

Dział zatytułowany „Scenariusz 2: Kod generowany przez AI scalony, ale powoduje problemy produkcyjne”

Najniebezpieczniejszy scenariusz. Kod generowany przez AI wprowadził błąd powodujący uszkodzenie danych.

  1. Zatrzymaj krwawienie

    Wdróż rollback natychmiast. Nie próbuj naprawiać w przód, gdy integralność danych jest zagrożona.

  2. Oceń szkody

    Zapytaj bazę danych o rekordy zmodyfikowane w oknie czasowym incydentu. Określ zakres uszkodzenia.

  3. Przywróć z backupu

    Użyj point-in-time recovery, aby przywrócić dotknięte dane do stanu sprzed incydentu.

  4. Analiza przyczyn źródłowych

    Zidentyfikuj, który kod generowany przez AI spowodował uszkodzenie. Czy to była brakująca walidacja? Błędne zapytanie? Warunek wyścigu?

  5. Zapobiegaj powtórzeniu

    Dodaj specyficzne przypadki testowe dla trybu awarii. Dodaj ograniczenia bazodanowe, które wyłapią uszkodzenie na warstwie danych. Zaktualizuj reguły AI, aby zapobiec podobnym wzorcom.

Nigdy nie pozwalaj agentowi AI na dokonanie 47 zmian w plikach w jednym commicie. Rozbij duże zmiany na małe, przeglądalne, odwracalne commity.

Przed jakąkolwiek zmianą generowaną przez AI, stwórz test przechwytujący aktualne zachowanie.

“Scaliliśmy kod AI bez właściwego przeglądu i teraz produkcja leży.” Cofnij natychmiast. Nie próbuj naprawiać w przód podczas aktywnego incydentu. Po cofnięciu przeprowadź bezobwinieniowe post-mortem skupione na tym, jakiej siatki bezpieczeństwa brakowało, a nie kto zatwierdził PR.

“Nie możemy cofnąć, bo inne zmiany zależą od kodu generowanego przez AI.” Dlatego przyrostowe commity mają znaczenie. Jeśli możesz zidentyfikować, który konkretny commit wprowadził problem, możesz cofnąć tylko ten commit. Jeśli zmiany są splątane, możesz potrzebować stworzyć celowany hotfix zamiast pełnego rollbacku.

“AI usunęło pliki, których potrzebujemy, i nie zauważyliśmy tego aż dużo później.” Git cię wspiera. Użyj git log --diff-filter=D, aby znaleźć usunięte pliki i git checkout <commit>^ -- <filepath>, aby je przywrócić. Dodaj kontrolę CI, która flaguje usunięcia plików do dodatkowej kontroli podczas przeglądu kodu.

“Nasza strategia backupu nie obejmuje trybów awarii specyficznych dla AI.” Standardowe strategie backupu (backupy bazy danych, kod w Git) pokrywają większość trybów awarii AI. Unikalne ryzyko z AI to subtelne zmiany behawioralne, które przechodzą wszystkie kontrole. Dodaj behawioralne testy regresyjne dla krytycznych ścieżek i wdrażaj za feature flagami.