Wycofywanie zmian i odtwarzanie po awarii
Zaprojektują Państwo i zaimplementują skuteczne procedury wycofywania zmian oraz plany odtwarzania po awarii w potokach CI/CD.
Wycofywanie zmian i odtwarzanie po awarii to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Nieoczekiwane problemy się zdarzają!
Tworzenie oprogramowania nie zawsze przebiega bezproblemowo. Czasami nowe wdrożenia wprowadzają błędy lub powodują nieprawidłowe działanie istniejących funkcji. W takich sytuacjach przydają się wycofywanie zmian i odtwarzanie po awarii.
Mają one kluczowe znaczenie dla utrzymania stabilności systemu i zaufania użytkowników.
Zrozumienie wycofywania zmian
Wycofanie zmian to proces przywracania systemu lub aplikacji do wcześniejszego, stabilnego stanu po problematycznym wdrożeniu. Działa jak przycisk „cofnij” dla ostatnio wprowadzonych zmian.
Wycofanie zmian zwykle uruchamia się szybko, aby ograniczyć wpływ wadliwego wydania i przywrócić normalne działanie.
Typowe sposoby wycofywania zmian
W zależności od strategii wdrażania można wycofać zmiany na kilka sposobów:
- Przywrócenie kodu: Wdrożenie poprzedniej, sprawdzonej wersji kodu aplikacji.
- Przekierowanie ruchu: Przekierowanie ruchu użytkowników z wadliwej nowej wersji z powrotem do starej wersji.
- Wycofanie zmian w bazie danych: Przywrócenie poprzedniego schematu bazy danych lub poprzednich danych — często jest to najbardziej złożona część procesu.
Automatyzowanie wycofywania zmian za pomocą Actions
GitHub Actions może automatyzować procedury wycofywania zmian. Mogą Państwo tworzyć workflow uruchamiane przez określone zdarzenia (takie jak ręczne uruchomienie), aby ponownie wdrożyć poprzednią, stabilną wersję lub przywrócić wcześniejszą konfigurację infrastruktury.
Zapewnia to szybki, spójny i mniej podatny na błędy proces wycofywania zmian, ograniczając ryzyko błędów ludzkich w stresujących sytuacjach.
Workflow ręcznego wycofywania zmian
Oto sposób skonfigurowania ręcznego wyzwalacza, który wdraża konkretną wcześniejszą wersję (np. tag lub hash commita). Ten workflow pobiera od użytkownika dane wejściowe version.
name: Manual Rollback Deployment
on:
workflow_dispatch:
inputs:
version:
description: 'Tag or commit hash to deploy'
required: true
default: 'main'
jobs:
rollback:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.version }}
- name: Deploy previous version
run: |
echo "Deploying version: ${{ github.event.inputs.version }}"
# Add your specific deployment commands here
# e.g., helm upgrade, kubectl apply, etc.
Poza wycofywaniem zmian: odtwarzanie po awarii
Odtwarzanie po awarii (DR) to szersza strategia odzyskiwania systemów i danych po katastrofalnym zdarzeniu. Może nim być awaria centrum danych, klęska żywiołowa lub poważny cyberatak.
W przeciwieństwie do wycofania zmian, które naprawia nieudane wdrożenie, DR ma na celu przywrócenie pełnego działania usługi po całkowitej awarii systemu lub utracie podstawowego środowiska.
Planowanie DR w CI/CD
Podczas planowania DR w potokach CI/CD należy uwzględnić:
- Kopie zapasowe: Regularne tworzenie kopii zapasowych danych, konfiguracji i artefaktów.
- Redundancję: Wdrażanie w wielu regionach lub strefach dostępności.
- Workflow odtwarzania: Dedykowane workflow przywracające usługi z kopii zapasowych lub wdrażające je w nowej infrastrukturze.
- Testowanie: Okresowe testowanie planu DR, aby upewnić się, że zadziała w razie potrzeby.
Przechowywanie artefaktów kompilacji na potrzeby odtwarzania
GitHub Actions może przechowywać artefakty kompilacji, które mają kluczowe znaczenie dla DR. Mogą to być skompilowane pliki binarne, obrazy Docker lub manifesty wdrożeniowe. Można je przesyłać podczas pomyślnego procesu kompilacji.
Następnie artefakty te można pobrać i wdrożyć w nowym środowisku w ramach workflow DR.
name: Build and Archive Artifacts
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build application
run: |
echo "Building app..."
mkdir -p build_output
echo "App version 1.0.0" > build_output/app.txt
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: application-build
path: build_output/
Sprawdzenie: wycofanie zmian a DR
Wdrożenie nowej funkcji spowodowało krytyczny błąd, przez który aplikacja stała się niedostępna. Która strategia służy przede wszystkim do szybkiego naprawienia tego konkretnego problemu i przywrócenia działania usługi?
Wycofywanie zmian i DR: najważniejsze wnioski
W tej lekcji omówiliśmy kluczowe pojęcia związane z wycofywaniem zmian i odtwarzaniem po awarii. Dowiedzieli się już Państwo, że wycofywanie zmian szybko przywraca stan sprzed nieudanego wdrożenia, natomiast odtwarzanie po awarii polega na przywracaniu systemów po poważnych awariach.
GitHub Actions może odgrywać ważną rolę w automatyzacji obu procesów, zapewniając odporność aplikacji i minimalizując zakłócenia odczuwane przez użytkowników.
Często zadawane pytania
Czy lekcja „Wycofywanie zmian i odtwarzanie po awarii” jest bezpłatna?
Tak — pełny tekst „Wycofywanie zmian i odtwarzanie po awarii” 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 CI/CD with GitHub Actions & DevOps Pipelines, przejdź na CoddyKit PRO. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Co nauczysz się w „Wycofywanie zmian i odtwarzanie po awarii”?
Zaprojektują Państwo i zaimplementują skuteczne procedury wycofywania zmian oraz plany odtwarzania po awarii w potokach CI/CD. Ćwiczysz CI/CD with GitHub Actions & DevOps Pipelines 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ąć CI/CD with GitHub Actions & DevOps Pipelines?
Nie wymagamy żadnego doświadczenia. CI/CD with GitHub Actions & DevOps Pipelines 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 „Wycofywanie zmian i odtwarzanie po awarii”?
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 CI/CD with GitHub Actions & DevOps Pipelines?
Tak. Każda lekcja CI/CD with GitHub Actions & DevOps Pipelines 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
- Wdrożenia blue-green
- Wydania canary z Actions
- Wycofywanie zmian i odtwarzanie po awarii
- Flagi funkcji i stopniowe wdrożenia