Projektowanie potoku wdrażania

Ukończone

W tej lekcji projektujesz potok ciągłej integracji/ciągłego wdrażania, aby obsługiwać potrzeby projektu. Chcesz, aby witryna internetowa Contoso Video została opublikowana w usłudze Azure Kubernetes Service (AKS) po pomyślnym wypchnięciu do głównej gałęzi oznaczonej jako wydanie do środowiska produkcyjnego. Projekt tagowania ułatwia sprawdzenie wersji każdego wdrożenia, które przechodzi do środowiska produkcyjnego.

Chcesz również wdrożyć witrynę internetową w środowisku przejściowym na potrzeby testowania po każdym wypchnięciu do głównej gałęzi, niezależnie od tego, czy wypychanie zostało oznaczone jako wydanie do środowiska produkcyjnego. Tagi można używać do routingu różnych obrazów kontenerów podczas wypychania ich do usługi Azure Container Registry.

Projektowanie potoku

Aby zaprojektować potok, należy wziąć pod uwagę zadania i wyzwalacze.

Wyzwalacze

Potok musi być wyzwalany na dwóch różnych zdarzeniach:

  • Oznakowane wypchnięcie do gałęzi głównej.
  • Nieotagowane wypychanie do gałęzi głównej.

Te dwa zdarzenia zostały podzielone na dwa oddzielne wyzwalacze, ponieważ akcje dla wypychania oznakowanego różnią się od akcji wypychania bez tagów. Oznakowane wypychanie jest wdrażane w środowisku produkcyjnym, podczas gdy nieotagowane wypychanie jest wdrażane w środowisku przejściowym. Na poniższym diagramie przedstawiono dwa wyzwalacze potoku:

Diagram that shows two types of pipeline triggers.

Po zdefiniowaniu wyzwalaczy zaplanuj sam przepływ potoku.

Krok 1. Klonowanie repozytorium

Pierwsze kroki to kroki kompilacji, w których należy przygotować konfigurację i skompilować obraz przed wypchnięciem go do klastra usługi AKS. W krokach kompilacji skonfigurujesz wszystkie informacje potrzebne do wykonania kroku wdrażania. W takim przypadku pierwszy krok kompilacji po otrzymaniu sygnału wyzwalacza jest taki sam dla obu wyzwalaczy, aby sklonować repozytorium.

Diagram that shows the procession from triggers to the first build step in a pipeline.

Krok 2. Kompilowanie obrazu

Następnym logicznym krokiem jest utworzenie obrazu. Aby można było uruchomić w środowisku usługi AKS, witryna internetowa musi być obrazem platformy Docker. Musisz skompilować nowy obraz przy użyciu pliku Dockerfile, który znajduje się w katalogu głównym repozytorium. Oto miejsce, w którym są uwzględniane różne wyzwalacze.

W przypadku potoku zatwierdzania otagowanych utworzysz obraz, a następnie oznaczysz go za pomocą tego samego tagu co wypychanie. Jeśli na przykład zatwierdzenie zostało oznaczone tagiem v1.0.0, skompilujesz obraz jako contoso/website:v1.0.0. Jeśli masz nieotagowane zatwierdzenie w gałęzi głównej, skompilujesz obraz za pomocą tagu latest .

Diagram that shows the procession from triggers to the first and second build steps in a pipeline.

Krok 3. Wypchnięcie obrazu do rejestru kontenerów

Po skompilowania obrazu wypchniesz go do rejestru kontenerów firmy Contoso i skonfigurujesz klaster usługi AKS w celu uzyskania dostępu do rejestru. Klaster pobiera obrazy z usługi Container Registry i uruchamia je.

Tutaj potok znów ma jeden etap. Wystąpienie usługi Container Registry nie ma podziałów wewnętrznych, dlatego wypychasz oba obrazy do tego samego miejsca.

Diagram that shows the procession from triggers to the first, second, and third build steps in the pipeline.

Krok 4. Wdrażanie aplikacji

Ostatni krok wdrażania wdraża witrynę internetową w odpowiedniej lokalizacji. Jeśli zatwierdzenie oznakowane wyzwoliło potok, należy wdrożyć witrynę internetową w production przestrzeni nazw klastra usługi AKS. Jeśli potok został wyzwolony z zatwierdzeniem bez tagów, wypchniesz do staging przestrzeni nazw tego samego klastra.

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

Po zaprojektowaniu potoku przepływu pracy przejdź do następujących jednostek, aby skonfigurować środowisko projektu i utworzyć funkcję GitHub Actions w celu klonowania, kompilowania, wypychania i wdrażania w klastrze usługi AKS.