Ciągła integracja/ciągłe wdrażanie aplikacji MicroProfile przy użyciu usługi Azure Pipelines
W tym samouczku pokazano, jak łatwo skonfigurować cykl wydawania z zastosowaniem ciągłej integracji i ciągłego wdrażania (CI/CD) w usłudze Azure Pipelines w celu wdrożenia aplikacji Java EE usługi MicroProfile w usłudze Azure Web App for Containers. Aplikacja usługi MicroProfile w tym samouczku używa obrazu podstawowego platformy Payara Micro do utworzenia pliku WAR.
FROM payara/micro:5.182
COPY target/*.war $DEPLOY_DIR/ROOT.war
EXPOSE 8080
Proces konteneryzacji usługi Azure Pipelines należy rozpocząć od utworzenia obrazu platformy Docker i wypchnięcia obrazu kontenera do usługi Azure Container Registry (ACR). Aby ukończyć proces, należy utworzyć potok wydania usługi Azure Pipelines i wdrożyć obraz kontenera w aplikacji internetowej.
Wymagania wstępne
W witrynie Azure Portal utwórz rejestr usługi Azure Container Registry.
W witrynie Azure Portal utwórz wystąpienie usługi Azure Web App for Containers. Wybierz pozycję Linux w polu System operacyjny, a w polu Konfiguruj kontener wybierz pozycję Szybki start jako Źródło obrazu.
Skopiuj i zapisz adres URL klonowania z repozytorium usługi GitHub: https://github.com/Azure-Samples/microprofile-hello-azure
Zarejestruj się lub zaloguj się do organizacji Azure DevOps i utwórz nowy projekt.
Zaimportuj przykładowe repozytorium usługi GitHub do repozytoriów platformy Azure:
- Na stronie projektu usługi Azure DevOps wybierz pozycję Repozytoria na lewym pasku nawigacyjnym.
- W obszarze or import a repository (lub zaimportuj repozytorium) wybierz pozycję Importuj.
- W obszarze Adres URL klonowania wprowadź zapisany adres URL klonowania usługi Git i wybierz pozycję Importuj.
Tworzenie potoku kompilacji
Potok kompilacji ciągłej integracji w usłudze Azure Pipelines automatycznie wykonuje wszystkie zadania kompilacji za każdym razem, gdy w aplikacji źródłowej Java EE zostanie wykonane zatwierdzenie. W tym przykładzie usługa Azure Pipelines używa narzędzia Maven do kompilowania projektu usługi MicroProfile w języku Java.
Na stronie projektu usługi Azure DevOps wybierz kolejno opcje Potoki>Kompilacje w lewym okienku nawigacji.
Wybierz pozycję Nowy potok.
Wybierz pozycję Use the classic editor to create a pipeline without YAML (Użyj edytora klasycznego, aby utworzyć potok bez pliku YAML).
Upewnij się, że nazwa projektu i zaimportowane repozytorium GitHub są wyświetlane w polach, a następnie wybierz przycisk Kontynuuj.
Wybierz pozycję Maven z listy szablonów, a następnie wybierz przycisk Zastosuj.
W okienku po prawej stronie upewnij się, że pozycja Hosted Ubuntu 1604 (Hostowany system Ubuntu 16.04) jest wyświetlana na liście rozwijanej Pula agentów.
Uwaga
To ustawienie informuje usługę Azure Pipelines, który serwer kompilacji ma być używany. Można również użyć prywatnego, dostosowanego serwera kompilacji.
Aby skonfigurować potok pod kątem ciągłej integracji, wybierz kartę Wyzwalacze w okienku po lewej stronie, a następnie zaznacz pole wyboru obok pozycji Enable continuous integration (Włącz ciągłą integrację).
W górnej części strony wybierz listę rozwijaną obok pozycji Save & queue (Zapisz i dodaj do kolejki) i wybierz przycisk Zapisz.
Tworzenie obrazu kompilacji platformy Docker
Usługa Azure Pipelines używa pliku dockerfile z obrazem podstawowym z platformy Payara Micro do utworzenia obrazu platformy Docker.
Wybierz kartę Zadania, a następnie wybierz znak plus + obok pozycji Zadanie agenta 1, aby dodać zadanie.
W okienku po prawej stronie wybierz pozycję Docker z listy szablonów, a następnie wybierz przycisk Dodaj.
Wybierz pozycję buildAndPush (Skompiluj i wypchnij) i wprowadź opis w polu Nazwa wyświetlana w okienku po lewej stronie.
W obszarze Repozytorium kontenerów wybierz pozycję Nowy obok pola Rejestr kontenerów.
Wypełnij okno dialogowe Add a Docker Registry service connection (Dodawanie połączenia usługi rejestru platformy Docker) w następujący sposób:
Pole Wartość Typ rejestru Wybierz pozycję Azure Container Registry. Nazwa połączenia Wprowadź nazwę połączenia. Subskrypcja platformy Azure Wybierz subskrypcję platformy Azure z listy rozwijanej i w razie potrzeby wybierz pozycję Autoryzuj. Rejestr kontenerów platformy Azure Wybierz nazwę rejestru usługi Azure Container Registry z listy rozwijanej. Wybierz przycisk OK.
Uwaga
Jeśli używasz usługi Docker Hub lub innego rejestru, wybierz pozycję Docker Hub lub Inne zamiast Azure Container Registry obok pozycji Typ rejestru. Następnie podaj poświadczenia i informacje o połączeniu dla rejestru kontenerów.
W obszarze Polecenia wybierz pozycję build (kompiluj) z listy rozwijanej Polecenie.
Wybierz symbol wielokropka ... obok pola Dockerfile, przejdź do pliku Dockerfile i wybierz go z repozytorium GitHub, a następnie wybierz przycisk OK.
W obszarze Tagi wprowadź latest (najnowsze) w nowym wierszu.
W górnej części strony wybierz listę rozwijaną obok pozycji Save & queue (Zapisz i dodaj do kolejki) i wybierz przycisk Zapisz.
Wypychanie obrazu platformy Docker do usługi ACR
Usługa Azure Pipelines wypycha obraz platformy Docker do usługi Azure Container Registry i używa go do uruchomienia aplikacji interfejsu API usługi MicroProfile jako skonteneryzowanej aplikacji internetowej Java.
Używasz platformy Docker w usłudze Azure Pipelines, dlatego utwórz kolejny szablon platformy Docker, powtarzając kroki w obszarze Create a Docker build image (Tworzenie obrazu kompilacji platformy Docker). Tym razem wybierz pozycję push (wypchnij) z listy rozwijanej Command (Polecenie).
Wybierz listę rozwijaną obok pozycji Save & queue (Zapisz i dodaj do kolejki) i wybierz przycisk Save & queue (Zapisz i dodaj do kolejki).
W oknie podręcznym Run pipeline (Przebieg potoku) upewnij się, że pozycja Hosted Ubuntu 1604 (Hostowany system Ubuntu 16.04) jest wybrana w polu Pula agentów i wybierz pozycję Save and run (Zapisz i uruchom).
Po zakończeniu kompilacji możesz wybrać hiperlink na stronie Kompilacja, aby zweryfikować powodzenie kompilacji i wyświetlić inne szczegóły.
Tworzenie potoku wydania
Potok ciągłego wydania usługi Azure Pipelines automatycznie wyzwala wdrożenie do środowiska docelowego, takiego jak platforma Azure bezpośrednio po pomyślnym zakończeniu kompilacji. Możesz tworzyć potoki wydania dla środowisk, takich jak środowisko programowania, testowania, środowisko przejściowe lub produkcyjne.
Na stronie projektu usługi Azure DevOps wybierz kolejno opcje Potoki>Wydania w lewym okienku nawigacji.
Wybierz pozycję Nowy potok.
Wybierz pozycję Deploy a Java app to Azure App Service (Wdrażanie aplikacji w usłudze Azure App Service) z listy szablonów, a następnie wybierz przycisk Zastosuj.
W oknie podręcznym zmień wartość Stage 1 (Etap 1) na nazwę etapu, taką jak Dev (Programowanie), Test (Testowanie), Staging (Przygotowanie) lub Production (Produkcja), a następnie zamknij okno.
W obszarze Artefakty w okienku po lewej stronie wybierz pozycję Dodaj, aby połączyć artefakty z potoku kompilacji z potokiem wydania.
W okienku po prawej stronie wybierz potok kompilacji z listy rozwijanej w obszarze Source (build pipeline) (Źródło (potok kompilacji)), a następnie wybierz pozycję Dodaj.
Wybierz hiperlink na etapie Production (Produkcja) i wybierz pozycję View stage tasks (Wyświetl zadania etapu).
W okienku po prawej stronie wypełnij formularz w następujący sposób:
Pole Wartość Subskrypcja platformy Azure Z listy rozwijanej wybierz subskrypcję platformy Azure. Typ aplikacji Wybierz pozycję Web App for Containers (Linux) z listy rozwijanej. Nazwa usługi aplikacji Wybierz wystąpienie usługi ACR z listy rozwijanej. Registry or Namespaces (Rejestr lub przestrzenie nazw) Wprowadź nazwę usługi ACR w polu. Na przykład wprowadź mymicroprofileregistry.azure.io. Repozytorium Wprowadź repozytorium zawierające obraz platformy Docker. W okienku po lewej stronie wybierz pozycję Deploy War to Azure App Service (Wdróż plik war w usłudze Azure App Service) i w okienku po prawej stronie wprowadź tag latest (najnowsze) w polu Tag.
W okienku po lewej stronie wybierz pozycję Run on agent (Uruchom na agencie), a następnie w okienku po prawej stronie wybierz pozycję Hosted Ubuntu 1604 (Hostowany system Ubuntu 16.04) z listy rozwijanej Pula agentów.
Konfgurowanie zmiennych środowiskowych
Dodaj lub zdefiniuj zmienne środowiskowe, aby nawiązać połączenie z rejestrem kontenerów podczas wdrażania.
Wybierz kartę Zmienne, a następnie wybierz pozycję Dodaj, aby dodać następujące zmienne dla adresu URL rejestru kontenerów, nazwy użytkownika i hasła.
Nazwa/nazwisko Wartość registry.url Wprowadź adres URL rejestru kontenerów. Na przykład: https://mymicroprofileregistry.azure.io. registry.username Wprowadź nazwę użytkownika dla rejestru. registry.password Wprowadź hasło dla rejestru. Ze względów bezpieczeństwa wybierz ikonę kłódki, aby ukryć wartość hasła. Na karcie Zadania wybierz pozycję Deploy War to Azure App Service (Wdróż plik war w usłudze Azure App Service) w okienku po lewej stronie.
W okienku po prawej stronie rozwiń obszar Application and Configuration Settings (Ustawienia aplikacji i konfiguracji), a następnie wybierz symbol wielokropka ... obok pola Ustawienia aplikacji.
W oknie podręcznym Ustawienia aplikacji wybierz pozycję Dodaj, aby zdefiniować i przypisać zmienne ustawień aplikacji:
Nazwa/nazwisko Wartość DOCKER_REGISTRY_SERVER_URL $(registry.url) DOCKER_REGISTRY_SERVER_USERNAME $(registry.username) DOCKER_REGISTRY_SERVER_PASSWORD $(registry.password) Wybierz przycisk OK.
Konfigurowanie ciągłego wdrażania
Aby włączyć ciągłe wdrażanie:
Na karcie Potok w obszarze Artefakty wybierz ikonę błyskawicy w artefakcie kompilacji.
W okienku po prawej stronie dla opcji Continuous deployment trigger (Wyzwalacz ciągłego wdrażania) wybierz ustawienie Włączony.
Wybierz pozycję Zapisz w prawym górnym rogu, a następnie ponownie wybierz pozycję Zapisz.
Wdrażanie aplikacji Java
Teraz, gdy włączono ciągłą integrację/ciągłe wdrażanie, zmodyfikowanie kodu źródłowego powoduje automatyczne utworzenie i uruchomienie kompilacji i wydania. Można również tworzyć i uruchamiać wydania ręcznie w następujący sposób:
W prawym górnym rogu strony potoku wydania wybierz pozycję Utwórz wydanie.
Na stronie Tworzenie nowego wydania wybierz nazwę etapu w obszarze Stages for a trigger change from automated to manual (Etapy zmiany wyzwalania z automatycznego na ręczne).
Wybierz pozycję Utwórz.
Wybierz nazwę wydania, umieść wskaźnik myszy na etapie lub wybierz go, a następnie wybierz pozycję Wdróż.
Testowanie aplikacji internetowej Java
Po pomyślnym zakończeniu wdrażania przetestuj swoją aplikację internetową.
Skopiuj adres URL aplikacji internetowej z witryny Azure Portal.
Wprowadź adres URL w przeglądarce internetowej, aby uruchomić aplikację. Na stronie internetowej powinien zostać wyświetlony komunikat Hello Azure!