DevOps Bootcamp · Lekcja

Wdrażanie na produkcję z bramkami akceptacji

Dowiedz się, jak bezpiecznie promować kompilacje ze środowiska staging na produkcję, korzystając z reguł ochrony środowisk GitHub Actions, ręcznych akceptacji i bramek wdrożeniowych.

Lekcja 4 z 413 kroki

Wdrażanie na produkcję z bramkami akceptacji to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Dlaczego produkcja wymaga bramek

Ciągłe wdrażanie dostarcza kod automatycznie, ale bezpośrednie wysyłanie go na produkcję bez żadnego punktu kontrolnego jest ryzykowne. Nieudane wydanie może natychmiast wpłynąć na wszystkich użytkowników.

Bramka zatwierdzająca to celowa pauza, podczas której człowiek lub automatyczna kontrola potwierdza, że wdrożenie powinno być kontynuowane.

  • Ogranicza zasięg skutków błędów
  • Tworzy ślad audytowy wskazujący, kto i co zatwierdził
  • Pozwala oddzielić poziomy zaufania środowisk staging i production

Środowiska GitHub

GitHub Actions udostępnia funkcję o nazwie Środowiska. Środowisko, takie jak production, może mieć własne sekrety, zmienne i reguły ochrony.

Środowisko wskazuje się dla zadania za pomocą klucza environment. To podstawa dodawania bramek zatwierdzających.

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - run: echo 'Deploying to production'

Wymagane osoby zatwierdzające

W ustawieniach repozytorium, w sekcji Settings > Environments > production, można włączyć opcję Required reviewers.

Gdy zadanie jest kierowane do tego środowiska, uruchomienie przepływu pracy zostaje wstrzymane i oczekuje na kliknięcie przycisku Approve przez jedną z wymienionych osób zatwierdzających.

  • Można skonfigurować maksymalnie 6 osób zatwierdzających
  • Jedno zatwierdzenie (domyślnie) odblokowuje zadanie
  • Osoba zatwierdzająca nie może być osobą, która uruchomiła przepływ pracy, zależnie od ustawień

Kompletny przepływ pracy z bramką

W tym przykładzie zadanie build uruchamia się najpierw, a następnie zadanie deploy zależy od niego za pośrednictwem needs i jest kierowane do chronionego środowiska production.

Wdrożenie nie rozpocznie się, dopóki wymagana osoba zatwierdzająca nie zaakceptuje go w interfejsie Actions.

name: Deploy
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo 'build artifact'
  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: production
      url: https://myapp.example.com
    steps:
      - run: echo 'deploy to prod'

Timery oczekiwania

Oprócz osób zatwierdzających środowiska obsługują również timer oczekiwania. Wymusza on opóźnienie (do 30 dni), zanim wdrożenie będzie mogło się rozpocząć.

Krótki timer oczekiwania jest przydatny jako czas na bezpieczne wycofanie: daje zespołowi możliwość anulowania uruchomienia, zanim dotrze ono na produkcję.

Ograniczenia gałęzi wdrażania

Środowiska mogą ograniczać gałęzie, z których można wdrażać. W przypadku production zazwyczaj zezwala się wyłącznie na main lub tagi wydań.

Zapobiega to przypadkowemu wdrożeniu na produkcję z gałęzi funkcjonalnej.

  • Chronione gałęzie — tylko gałęzie z regułami ochrony
  • Wybrane gałęzie — jawna lista dozwolonych gałęzi lub wzorzec tagów

Sekrety przypisane do środowiska

Każde środowisko ma własne sekrety. Środowisko production może przechowywać PROD_DB_URL, a środowisko staging — STAGING_DB_URL.

Sekrety zdefiniowane dla środowiska są dostępne wyłącznie zadaniom kierowanym do tego środowiska, co zapewnia dodatkową warstwę izolacji.

    steps:
      - name: Deploy
        env:
          DB_URL: ${{ secrets.PROD_DB_URL }}
        run: ./deploy.sh

Śledzenie stanu wdrożenia

Ustawienie właściwości url dla środowiska dodaje klikalny odnośnik do wdrożenia w interfejsie GitHub i rejestruje obiekt wdrożenia za pośrednictwem interfejsu Deployments API.

Zapewnia to widoczną historię: który commit trafił na produkcję, kiedy to nastąpiło i kto tego dokonał.

    environment:
      name: production
      url: https://myapp.example.com

Zatwierdzanie oczekującego uruchomienia

Gdy zadanie z bramką oczekuje, na stronie uruchomienia przepływu pracy zobaczysz żółty baner Review deployments.

  • Otwórz uruchomienie na karcie Actions
  • Kliknij Review deployments
  • Wybierz środowisko i kliknij Approve and deploy lub Reject

Możesz również dodać komentarz wyjaśniający decyzję.

Łączenie wielu bramek

Najsilniejsza bramka produkcyjna łączy kilka reguł:

  • Wymagane osoby zatwierdzające (zatwierdzenie przez człowieka)
  • Timer oczekiwania (czas na bezpieczne wycofanie)
  • Ograniczenia gałęzi (tylko main)
  • Sekrety środowiska (izolacja)

Połączenie tych mechanizmów tworzy solidny proces promowania zmian ze stagingu na produkcję.

Bezpieczne omijanie bramek

Czasami potrzebujesz awaryjnego hotfixu. Zamiast usuwać reguły ochrony, rozważ osobny, odpowiednio ograniczony przepływ pracy dla hotfixu z własnym rejestrowaniem i bardziej rygorystycznymi osobami zatwierdzającymi.

Nigdy nie wyłączaj bramek na stałe dla wygody — niweczy to cel mechanizmu bezpieczeństwa.

Szybki test

Sprawdź swoją wiedzę na temat bramek zatwierdzających wdrożenia na produkcję.

Podsumowanie

Dowiedziałeś się, jak dodawać bramki zatwierdzające dla wdrożeń na produkcję za pomocą środowisk GitHub.

  • Używaj klucza environment, aby wskazać chronione środowisko
  • Wymagane osoby zatwierdzające dodają zatwierdzenie przez człowieka
  • Timery oczekiwania dodają czas na bezpieczne wycofanie
  • Ograniczenia gałęzi i sekrety środowiska zapewniają izolację

Wspólnie te bramki sprawiają, że promowanie zmian ze stagingu na produkcję jest bezpieczne i możliwe do prześledzenia.

Bezpłatny start

Ucz się DevOps Bootcamp 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
142
Lekcje
568

Często zadawane pytania

Czy lekcja „Wdrażanie na produkcję z bramkami akceptacji” jest bezpłatna?

Tak — pełny tekst „Wdrażanie na produkcję z bramkami akceptacji” 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Wdrażanie na produkcję z bramkami akceptacji”?

Dowiedz się, jak bezpiecznie promować kompilacje ze środowiska staging na produkcję, korzystając z reguł ochrony środowisk GitHub Actions, ręcznych akceptacji i bramek wdrożeniowych. Ćwiczysz DevOps Bootcamp 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ąć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 4 z 4.

Ile czasu zajmuje lekcja „Wdrażanie na produkcję z bramkami akceptacji”?

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 DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp 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. Wprowadzenie do Continuous Deployment
  2. Wdrażanie do środowiska stagingowego
  3. Zmienne środowiskowe i sekrety
  4. Wdrażanie na produkcję z bramkami akceptacji
← Powrót do DevOps Bootcamp