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

Wydania canary z Actions

Zaimplementują Państwo wzorce wydań canary, stopniowo udostępniając nowe funkcje części użytkowników i monitorując wydajność oraz stabilność.

Wydania canary z Actions to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines na CoddyKit. To lekcja 2 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.

Wprowadzenie do wydań Canary

Wyobraź sobie, że uruchamiasz nową funkcję lub aktualizację. Co, jeśli zawiera błąd, który dotknie wszystkich użytkowników? Brzmi niepokojąco, prawda?

Wydania Canary pomagają ograniczyć to ryzyko, stopniowo udostępniając zmiany najpierw niewielkiej grupie użytkowników. Przypomina to wysłanie „kanarka do kopalni węgla”, aby sprawdzić powietrze, zanim wejdą tam wszyscy pozostali.

Korzyści z wydań Canary

Wydania Canary oferują kilka ważnych korzyści:

  • Mniejsze ryzyko: Ograniczenie wpływu problemów do niewielkiej grupy użytkowników.
  • Informacje zwrotne z rzeczywistych warunków: Uzyskanie produkcyjnych danych dotyczących wydajności i stabilności.
  • Szybkie wycofanie zmian: W razie problemów można szybko wycofać zmiany tylko dla niewielkiej grupy Canary albo dla całej usługi.
  • Kontrolowane udostępnianie: Stopniowe zwiększanie zasięgu w miarę wzrostu pewności.

Canary a Blue/Green

Być może pamiętasz wdrożenia Blue/Green, w których ruch jest natychmiast przełączany między dwoma identycznymi środowiskami.

Wydania Canary działają inaczej. Zamiast natychmiastowego przełączenia obejmują stopniowe przesuwanie ruchu. Nowa wersja działa równolegle ze starą, a początkowo tylko niewielki odsetek użytkowników widzi nową wersję. Umożliwia to szczegółowe monitorowanie przed pełnym wdrożeniem.

Jak działają wydania Canary

Podstawowy przebieg wydania Canary wygląda następująco:

  1. Wdrożenie nowej wersji: Nowa wersja aplikacji jest wdrażana na niewielkim zestawie serwerów lub instancji obok istniejącej, stabilnej wersji.
  2. Przekierowanie niewielkiej części ruchu: Moduł równoważenia obciążenia lub service mesh jest konfigurowany tak, aby kierować niewielki odsetek (np. 5–10%) ruchu użytkowników do nowej wersji.
  3. Monitorowanie: Wydajność, liczba błędów i opinie użytkowników są dokładnie monitorowane w grupie Canary.
  4. Promowanie lub wycofanie zmian: Jeśli wszystko działa prawidłowo, ruch jest stopniowo zwiększany albo nowa wersja otrzymuje 100% ruchu. Jeśli pojawią się problemy, zmiany Canary są wycofywane, a ruch kierowany z powrotem do stabilnej wersji.

Orkiestracja za pomocą GitHub Actions

GitHub Actions może orkiestrujeć cały proces wdrażania canary. Nie zarządza bezpośrednio ruchem (za to odpowiada infrastruktura), ale uruchamia poszczególne kroki:

  • Budowanie i testowanie aplikacji.
  • Wdrażanie nowej wersji w środowisku canary.
  • Inicjowanie przekierowywania ruchu za pomocą wywołań API do load balancera lub service mesh.
  • Oczekiwanie na wyniki monitorowania lub ręczne zatwierdzenie.
  • Promowanie wersji canary lub uruchomienie wycofania zmian.

Zarys workflow canary

Typowy workflow GitHub Actions dla wdrożenia canary może wyglądać tak:

name: Canary Deployment

on: push

jobs:
  build:
    # ... build and test steps ...

  deploy-canary:
    needs: build
    steps:
      - name: Deploy to Canary Group
        # ... call script/tool to deploy and shift 10% traffic ...

  monitor-canary:
    needs: deploy-canary
    # ... wait for monitoring/approval ...

  promote-or-rollback:
    needs: monitor-canary
    # ... conditionally promote to 100% or rollback ...

Każdy krok będzie współdziałać z używanymi przez Państwa narzędziami do wdrażania.

Symulowanie logiki wdrożenia canary

GitHub Actions odpowiada za orkiestrację, ale właściwe decyzje i polecenia wdrożeniowe często znajdują się w skryptach. Oto przykład w języku Python, który symuluje logikę wdrożenia canary. Proszę wyobrazić sobie, że skrypt ten uruchamia Action:

def deploy_version(version, traffic_percent):
    print(f"Deploying {version} to {traffic_percent}% traffic.")
    if traffic_percent == 100:
        print("Full rollout complete!")
    elif traffic_percent > 0:
        print("Canary deployed. Monitoring for stability...")
    else:
        print("Version removed (rollback).")

if __name__ == "__main__":
    print("--- Starting Canary Workflow ---")
    new_app_version = "v2.1-canary"
    stable_app_version = "v2.0"

    # Step 1: Deploy new version to 10% traffic
    deploy_version(new_app_version, 10)

    # Step 2: Simulate monitoring (e.g., waiting for metrics)
    print("Monitoring canary performance...")
    import random
    canary_successful = random.choice([True, True, True, False]) # 75% chance of success

    if canary_successful:
        print("Canary looks good! Proceeding to full rollout.")
        # Step 3a: Promote new version to 100%
        deploy_version(new_app_version, 100)
    else:
        print("Canary issues detected! Rolling back.")
        # Step 3b: Rollback to stable version
        deploy_version(stable_app_version, 100)
    print("--- Canary Workflow Finished ---")

Monitorowanie wersji canary

Skuteczne monitorowanie ma kluczowe znaczenie. Workflow GitHub Actions może integrować się z systemami monitorowania na kilka sposobów:

  • Wywołania API: Odpytywanie narzędzi do monitorowania (np. Datadog, Prometheus) o kluczowe metryki.
  • Kontrole kondycji: Odpytywanie endpointów informujących o kondycji aplikacji.
  • Ręczne bramki: Wstrzymywanie workflow w celu przeprowadzenia ręcznego przeglądu i zatwierdzenia.
  • Oczekiwanie przez określony czas: Odczekanie ustalonego czasu, aby metryki się ustabilizowały.

Workflow wykorzystuje następnie te sygnały, aby zdecydować, czy promować wersję, czy wycofać zmiany.

Warunkowe promowanie lub wycofanie zmian

Po zakończeniu monitorowania GitHub Actions używa logiki warunkowej, aby zdecydować o kolejnym kroku. W definicjach zadań lub kroków można używać instrukcji if.

  promote-or-rollback:
    needs: monitor-canary
    if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
    steps:
      - name: Promote Full Rollout
        # ... command to shift 100% traffic to new version ...

  rollback:
    needs: monitor-canary
    if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
    steps:
      - name: Rollback to Stable
        # ... command to shift 100% traffic to old version ...

Zapewnia to automatyczną reakcję na wydajność wersji canary.

Sprawdzenie wdrożenia canary

Poznali już Państwo zalety i mechanizmy wdrożeń canary. Sprawdźmy, czy rozumieją Państwo ten temat.

Podsumowanie: wdrożenia canary za pomocą Actions

W tej lekcji poznali już Państwo wdrożenia canary — skuteczną strategię wdrażania, która polega na stopniowym udostępnianiu nowych wersji oprogramowania wybranej części użytkowników.

  • Wdrożenia canary minimalizują ryzyko i dostarczają informacji zwrotnych z rzeczywistego środowiska.
  • GitHub Actions orkiestruje budowanie, wdrażanie w środowisku canary, monitorowanie oraz warunkowe promowanie lub wycofywanie zmian.
  • Skuteczne monitorowanie i logika warunkowa są kluczowe dla pomyślnie działających potoków canary.

Dzięki wdrożeniom canary mogą Państwo wdrażać zmiany z większą pewnością i kontrolą!

Często zadawane pytania

Czy lekcja „Wydania canary z Actions” jest bezpłatna?

Tak — pełny tekst „Wydania canary z Actions” 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 „Wydania canary z Actions”?

Zaimplementują Państwo wzorce wydań canary, stopniowo udostępniając nowe funkcje części użytkowników i monitorując wydajność oraz stabilność. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Wydania canary z Actions”?

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