0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lekcja

Wdrożenia blue-green

Skonfigurują Państwo strategie wdrożeń blue-green z użyciem GitHub Actions, aby ograniczyć przestoje i umożliwić szybkie wycofanie zmian.

Wdrożenia blue-green to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines na CoddyKit. To lekcja 1 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.

Czym jest wdrożenie Blue/Green?

Witaj! W tej lekcji omówimy wdrożenia Blue/Green — zaawansowaną strategię wydawania nowego oprogramowania.

Jej celem jest zminimalizowanie przestojów i ryzyka podczas wdrożeń oraz zapewnienie użytkownikom nieprzerwanego, płynnego działania usługi.

Blue i Green — podstawy

Wyobraź sobie, że masz dwa identyczne środowiska produkcyjne: jedno nazwane „Blue”, a drugie „Green”.

  • Blue: To bieżące aktywne środowisko, które obsługuje cały ruch użytkowników.
  • Green: To nieaktywne, identyczne środowisko używane do wdrażania i testowania nowych wersji.

Jak działa Blue/Green

Proces jest prosty, ale skuteczny:

  1. Wdróż nową wersję aplikacji do środowiska Green (nieaktywnego).
  2. Dokładnie przetestuj nową wersję w środowisku Green.
  3. Gdy uznasz, że jest gotowa, przełącz cały ruch użytkowników z Blue do Green.
  4. Stare środowisko Blue jest teraz nieaktywne i można je zachować na potrzeby szybkiego wycofania zmian lub aktualizacji.

Dlaczego warto używać Blue/Green?

Ta strategia oferuje istotne korzyści:

  • Brak przestojów: Użytkownicy płynnie przechodzą na nową wersję bez żadnych przerw.
  • Natychmiastowe wycofanie zmian: Jeśli pojawią się problemy, wystarczy przełączyć ruch z powrotem do stabilnego środowiska Blue.
  • Mniejsze ryzyko: Nowe wersje są testowane w środowisku zbliżonym do produkcyjnego przed ich udostępnieniem.

Czego potrzebujesz

Do wdrożenia Blue/Green zazwyczaj potrzebujesz:

  • Modułu równoważenia obciążenia: Aby kierować ruch do środowiska Blue lub Green.
  • Dwóch identycznych środowisk: Często opartych na chmurze, co zapewnia spójność.
  • Narzędzia do automatyzacji: Takiego jak GitHub Actions, do zarządzania wdrożeniami i przełączaniem ruchu.

Koordynowanie za pomocą GitHub Actions

GitHub Actions może zautomatyzować każdy etap wdrożenia Blue/Green.

Możesz zdefiniować workflow, które będą:

  • Kompilować i wdrażać aplikację do nieaktywnego środowiska.
  • Uruchamiać automatyczne testy nowego wdrożenia.
  • Wyzwalać przełączenie ruchu za pomocą interfejsu API modułu równoważenia obciążenia lub skryptu.

Wdrażanie nowej wersji

Oto uproszczony fragment GitHub Actions służący do wdrażania nowej wersji aplikacji w środowisku „Green”. Zwróć uwagę na użycie nazwy environment.

name: Deploy to Green

on:
  push:
    branches:
      - main

jobs:
  deploy-green:
    runs-on: ubuntu-latest
    environment: Green # Target the Green environment
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Deploy app to Green
        run: |
          echo "Deploying application version ${{ github.sha }} to Green environment..."
          # Your actual deployment commands go here
          # e.g., deploy to a specific AWS EC2 instance or Kubernetes namespace

Przełączanie ruchu

Po pomyślnym wdrożeniu i przetestowaniu ostatnim krokiem jest przełączenie ruchu. Często wymaga to zaktualizowania modułu równoważenia obciążenia lub rekordu DNS.

Oto przykładowy, koncepcyjny krok GitHub Actions, który wyzwalałby to przełączenie:

name: Switch Traffic to Green

on:
  workflow_dispatch: # Manual trigger for traffic switch

jobs:
  switch-traffic:
    runs-on: ubuntu-latest
    steps:
      - name: Update Load Balancer to Green
        run: |
          echo "Switching load balancer traffic to Green environment..."
          # Call your load balancer's API or a script here
          # e.g., aws elbv2 modify-target-group-attributes ...
          # or kubectl apply -f green-ingress.yaml

Natychmiastowe wycofywanie zmian

Co się stanie, jeśli przełączysz ruch do Green i pojawi się krytyczny błąd?

W przypadku Blue/Green wycofanie zmian jest natychmiastowe! Wystarczy przełączyć ruch na module równoważenia obciążenia z powrotem do pierwotnego, stabilnego środowiska Blue.

Znacząco ogranicza to wpływ incydentu i skraca czas przywracania działania.

Ważne kwestie

Choć rozwiązanie Blue/Green jest zaawansowane, należy uwzględnić kilka kwestii:

  • Duplikowanie zasobów: Uruchamiasz dwa pełne środowiska, co może podwoić koszty infrastruktury.
  • Obsługa zmian w bazie danych może być złożona, ponieważ zarówno Blue, jak i Green mogą potrzebować dostępu do tego samego magazynu danych.
  • Aplikacje stanowe: Aplikacje z trwałym stanem wymagają starannego planowania.

Quiz: wdrożenia Blue/Green

Sprawdźmy, czy rozumiesz wdrożenia Blue/Green.

Podsumowanie lekcji

Świetnie! Dowiedziałeś się, czym są wdrożenia Blue/Green.

  • Wykorzystują dwa identyczne środowiska (Blue i Green) do wdrażania nowych wersji.
  • Zapewniają brak przestojów i natychmiastowe wycofywanie zmian.
  • GitHub Actions może automatyzować wdrażanie i przełączanie ruchu.
  • Pamiętaj o zaplanowaniu kosztów zasobów i zmian w bazie danych!

Często zadawane pytania

Czy lekcja „Wdrożenia blue-green” jest bezpłatna?

Tak — pełny tekst „Wdrożenia blue-green” 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 „Wdrożenia blue-green”?

Skonfigurują Państwo strategie wdrożeń blue-green z użyciem GitHub Actions, aby ograniczyć przestoje i umożliwić szybkie wycofanie zmian. Ć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 1 z 4.

Ile czasu zajmuje lekcja „Wdrożenia blue-green”?

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

  1. Wdrożenia blue-green
  2. Wydania canary z Actions
  3. Wycofywanie zmian i odtwarzanie po awarii
  4. Flagi funkcji i stopniowe wdrożenia
← Powrót do CI/CD with GitHub Actions & DevOps Pipelines