CI/CD MicroProfile-alkalmazásokhoz az Azure Pipelines használatával

Ez az oktatóanyag bemutatja, hogyan állíthat be egy Azure Pipelines folyamatos integrációs és folyamatos üzembe helyezési (CI/CD) kiadási ciklust saját MicroProfile Java EE-alkalmazásának üzembe helyezéséhez egy Azure Web App for Containers-példányon. Az oktatóanyagban szereplő MicroProfile-alkalmazás egy Payara Micro rendszerképet használ alapul a WAR-fájl létrehozásához.

FROM payara/micro:5.182
COPY target/*.war $DEPLOY_DIR/ROOT.war
EXPOSE 8080

Az Azure Pipelines tárolóba helyezési folyamata egy Docker-rendszerkép összeállításával kezdődik, amelyet aztán leküldéssel továbbít az Azure Container Registrybe (ACR). A folyamat lezárásaként létrehoz egy Azure Pipelines kiadási folyamatot, és üzembe helyezi a tárolórendszerképet a webalkalmazásban.

Előfeltételek

  1. Az Azure Portalon hozzon létre egy Azure Container Registry-adatbázist.

  2. Az Azure Portalon hozzon létre egy Azure Web App for Containers-példányt. Az Operációs rendszer legyen Linux, a Tároló konfigurálása elemnél pedig a Lemezkép forrása legyen Gyorsútmutató.

  3. Másolja és mentse a klón URL-címet a mintául szolgáló GitHub-adattárból (ennek pontos helye: https://github.com/Azure-Samples/microprofile-hello-azure).

  4. Regisztráljon vagy jelentkezzen be az Azure DevOps-szervezetbe, és hozzon létre egy új projektet.

  5. Importálja a mintául szolgáló GitHub-adattárat az Azure Reposba:

    1. Az Azure DevOps-projekt oldalán válassza a Repos lehetőséget a bal oldali navigációs panelen.
    2. Az adattár importálására szolgáló pontban válassza az Import (Importálás) lehetőséget.
    3. A Clone URL (Klón URL-címe) pontban adja meg a korábban mentett Git-klón URL-címet, majd válassza az Import lehetőséget.

Buildelési folyamat létrehozása

Az Azure Pipelines folyamatos integrációs buildelési folyamata minden alkalommal automatikusan végrehajtja az összes buildfeladatot, amikor a Java EE-forrásalkalmazásban véglegesítés történik. Ebben a példában az Azure Pipelines a Maven használatával hozza létre a Java MicroProfile-projektet.

  1. Az Azure DevOps-projekt oldalán válassza a Pipelines (Folyamatok)>Builds (Buildek) lehetőséget a bal oldali navigációs panelen.

  2. Válassza a New pipeline (Új folyamat) lehetőséget.

  3. Válassza a Use the classic editor to create a pipeline without YAML (Klasszikus szerkesztő használata a folyamat YAML nélküli létrehozásához) elemet.

  4. Ellenőrizze, hogy a projekt neve és az importált GitHub-adattár megjelent-e a megfelelő mezőkben, majd válassza a Continue (Folytatás) lehetőséget.

  5. Válassza a Maven lehetőséget a sablonlistából, majd válassza az Apply (Alkalmaz) gombot.

  6. Győződjön meg arról, hogy a jobb oldali panel Agent pool (Ügynökkészlet) legördülő menüjében megjelent a Hosted Ubuntu 1604 elem.

    Megjegyzés:

    Ez a beállítás tudatja az Azure Pipelines szolgáltatással, hogy melyik buildelési kiszolgálót kell használni. Privát, testreszabott buildelési kiszolgálót is használhat.

  7. A folyamat folyamatos integrációhoz való konfigurálásához a bal oldali panelen válassza a Triggers (Triggerek) lehetőséget, majd jelölje be az Enable continuous integration (Folyamatos integráció engedélyezése) melletti jelölőnégyzetet.

  8. Az oldal alján nyissa meg a Save & queue (Mentés és üzenetsorba helyezés) elem melletti legördülő menüt, és válassza a Save (Mentés) lehetőséget.

    Enable continuous integration

Docker-létrehozási rendszerkép létrehozása

Az Azure Pipelines egy Docker-fájl használatával, a Payara Micróból származó rendszerképet alapul véve hoz létre Docker-rendszerképeket.

  1. Kattintson a Tasks (Feladatok) fülre, majd válassza az Agent Job 1 (Ügynökfeladat 1) elem melletti plusz jelet + a feladat hozzáadásához.

    Add a new task

  2. Válassza a Docker lehetőséget a sablonlistából, majd válassza az Add (Hozzáadás) lehetőséget.

  3. A bal oldali panelen válassza a buildAndPush elemet, majd a jobb oldali panelen adjon meg egy leírást a Display name (Megjelenítendő név) mezőben.

  4. A Container Repository (Tárolóadattár) pontban válassza a Container Registry mező melletti New (Új) lehetőséget.

  5. Töltse ki az Add a Docker Registry service connection (Docker Registry-szolgáltatáskapcsolat hozzáadása) párbeszédpanel mezőit a következőképpen:

    Mező Value
    Registry type (Regisztrációs adatbázis típusa) Válassza az Azure Container Registry lehetőséget.
    Kapcsolat neve Adja meg a kapcsolat nevét.
    Azure subscription Válassza ki Azure-előfizetését a legördülő menüből, és ha szükséges, válassza az Authorize (Engedélyezés) lehetőséget.
    Azure Container Registry Válassza ki Azure Container Registry-adatbázis nevét a legördülő menüből.
  6. Kattintson az OK gombra.

    Add a Docker Registry service connection

    Megjegyzés:

    Ha Docker Hubot vagy valamilyen más regisztrációs adatbázist használ, válassza a Docker Hub vagy az Others (Egyéb) lehetőséget az Azure Container Registry helyett, amikor meg kell adni a regisztrációs adatbázis típusát. Ezután adja meg a regisztrációs adatbázis hitelesítő és kapcsolati adatait.

  7. A Commands (Parancsok) pontban a Command (Parancs) legördülő menüből válassza a build lehetőséget.

  8. Kattintson a három pontra ... a Dockerfile mező mellett, keresse meg és válassza ki a Docker-fájlt a GitHub-adattárból, végül válassza az OK gombot.

    Select the Dockerfile

  9. A Tags (Címkék) pontban adja meg a latest (legújabb) kifejezést egy új sorban.

  10. Az oldal alján nyissa meg a Save & queue (Mentés és üzenetsorba helyezés) elem melletti legördülő menüt, és válassza a Save (Mentés) lehetőséget.

Docker-rendszerkép leküldése az ACR-be

Az Azure Pipelines leküldi a Docker-rendszerképet az Azure Container Registrybe, és azt használva futtatja a MicroProfile API-alkalmazást tárolóalapú Java-webalkalmazásként.

  1. Mivel az Azure Pipelinesban használja a Dockert, hozzon létre egy újabb Docker-sablont. Ehhez újra menjen végig a Docker-létrehozási rendszerkép létrehozása szakasz lépésein. Ezúttal válassza a push (leküldés) lehetőséget a Command (Parancs) legördülő menüből.

  2. Nyissa meg a Save & queue (Mentés és üzenetsorba helyezés) elem melletti legördülő menüt, és válassza a Save & queue lehetőséget.

  3. A Run pipeline (Folyamat futtatása) felugró ablakban győződjön meg arról, hogy az Agent pool (Ügynökkészlet) pontban a Hosted Ubuntu 1604 elem van kiválasztva, majd válassza a Save and run (Mentés és futtatás) lehetőséget.

  4. Miután a buildelés befejeződött, a Build oldalon található hivatkozás kiválasztásával ellenőrizheti, hogy sikeres volt-e a buildelési folyamat, és áttekintheti a további részleteket.

    Select the build hyperlink

Kiadási folyamat létrehozása

Az Azure Pipelines folyamatos kiadási folyamata automatikusan elindítja az üzembe helyezést a célkörnyezetben (például az Azure-ban), amint a buildelés sikeresen véget ért. Kiadási folyamatokat fejlesztési, tesztelési, előkészítési és éles környezetekhez is létrehozhat.

  1. Az Azure DevOps-projekt oldalán válassza a Pipelines (Folyamatok)>Releases (Kiadások) lehetőséget a bal oldali navigációs panelen.

  2. Válassza a New pipeline (Új folyamat) lehetőséget.

  3. Válassza a Deploy a Java app to Azure App Service (Java-alkalmazás üzembe helyezése az Azure App Service-ben) lehetőséget a sablonlistából, majd válassza az Apply (Alkalmaz) gombot.

    Select the Deploy a Java app to Azure App Service template

  4. A felugró ablakban módosítsa a Stage 1 (1. fázis) nevét a megfelelő fáziséra – Dev (Fejlesztés), Test (Tesztelés), Staging (Előkészítés) vagy Production (Éles) –, majd zárja be az ablakot.

  5. A bal oldali panel Artifacts (Összetevők) területén válassza az Add (Hozzáadás) lehetőséget a buildelési folyamat összetevői és a kiadási folyamat összekapcsolásához.

  6. A jobb oldali panelen válassza ki a saját buildelési folyamatát a Source (build pipeline) (Forrás (buildelési folyamat)) legördülő menüből, majd válassza az Add (Hozzáadás) lehetőséget.

    Add a build artifact

  7. A Production (Éles) fázisban található hivatkozáson keresztül megtekintheti a fázishoz tartozó feladatokat.

    Select the stage name

  8. A jobb oldali panelen töltse ki az űrlapot az alábbi módon:

    Mező Value
    Azure subscription Válassza ki Azure-előfizetését a legördülő menüből.
    Alkalmazás típusa Válassza a Web App for Containers (Linux) lehetőséget a legördülő menüből.
    App service name (Az App Service neve) Válassza ki a saját ACR-példányát a legördülő menüből.
    Registry or Namespaces (Regisztrációs adatbázis vagy névterek) Írja be ACR-nevét a mezőbe. Egy példa: mymicroprofileregistry.azure.io.
    Adattár Adja meg a Docker-rendszerképet tartalmazó adattár nevét.

    Configure stage tasks

  9. A bal oldali panelen jelölje ki a Deploy War to Azure App Service (WAR üzembe helyezése az Azure App Service-ben) csomagot, majd a jobb oldali panelen írja be a latest (legújabb) címkét a Tag (Címke) mezőbe.

  10. A bal oldali panelen válassza a Run on agent (Futtatás az ügynökön) lehetőséget, majd a jobb oldali panel Agent pool (Ügynökkészlet) legördülő menüjében válassza a Hosted Ubuntu 1604 elemet.

Környezeti változók beállítása

Adjon meg és definiáljon környezeti változókat, amelyeket a tárolóregisztrációs adatbázishoz fog csatlakoztatni az üzembe helyezés során.

  1. Kattintson a Variables (Változók) fülre, majd válassza az Add (Hozzáadás) lehetőséget, hogy megadhassa a következő változókat a tárolóregisztrációs adatbázis URL-címeként, felhasználóneveként és jelszavaként.

    Név Érték
    registry.url Adja meg a tárolóregisztrációs adatbázis URL-címét. For example: https://mymicroprofileregistry.azure.io
    registry.username Adja meg a tárolóregisztrációs adatbázis felhasználónevét.
    registry.password Adja meg a tárolóregisztrációs adatbázis jelszavát. Biztonsági okokból érdemes lehet kiválasztani a lakat ikont, hogy a jelszó rejtve maradjon.

    Add variables

  2. A Tasks (Feladatok) lapon válassza a bal oldali panelen található Deploy War to Azure App Service (WAR üzembe helyezése az Azure App Service-ben) lehetőséget.

  3. A jobb oldali panelen bontsa ki az Application and Configuration Settings (Alkalmazás- és konfigurációs beállítások) pontot, majd kattintson a három pontra ... az App Settings (Alkalmazásbeállítások) mező mellett.

  4. Az App settings (Alkalmazásbeállítások) felugró ablakban válassza az Add (Hozzáadás) lehetőséget az alkalmazásbeállítások változóinak definiálásához és hozzárendeléséhez:

    Név Érték
    DOCKER_REGISTRY_SERVER_URL $(registry.url)
    DOCKER_REGISTRY_SERVER_USERNAME $(registry.username)
    DOCKER_REGISTRY_SERVER_PASSWORD $(registry.password)
  5. Kattintson az OK gombra.

    Add and set variables

Folyamatos üzembe helyezés beállítása

Folyamatos üzembe helyezés engedélyezése:

  1. A Pipeline (Folyamat) lap Artifacts (Összetevők) területén válassza ki a villám ikont a buildösszetevőben.

  2. A jobb oldali panelen állítsa a Continuous deployment trigger (Folyamatos üzembehelyezési trigger) elemet az Enabled (Engedélyezve) értékre.

  3. Válassza a Save (Mentés) lehetőséget a jobb felső sarokban, majd válassza ismét a Save (Mentés) elemet.

    Enable continuous deployment trigger

A Java-alkalmazás üzembe helyezése

Most, hogy engedélyezte a CI/CD-t, a forráskód módosításával automatikusan létrehozhat és futtathat buildeket és kiadásokat. Manuálisan is létrehozhat és futtathat kiadásokat, a következő módon:

  1. A kiadási folyamat lapjának jobb felső sarkában válassza a Create release (Kiadás létrehozása) lehetőséget.

  2. A Create a new release (Új kiadás létrehozása) oldalon válassza ki a fázis nevét a Stages for a trigger change from automated to manual (Trigger automatikusról manuálisra módosításának a fázisai) elemnél.

  3. Select Create.

  4. Válassza ki a kiadás nevét, mutasson az egérmutatóval a fázisra vagy jelölje ki, majd válassza a Deploy (Üzembe helyezés) lehetőséget.

A Java-webalkalmazás tesztelése

A sikeres üzembe helyezés után tesztelje a webalkalmazást.

  1. Másolja át a webalkalmazás URL-címét az Azure Portalról.

    App Service app in the Azure portal

  2. Az alkalmazás futtatásához adja meg az URL-címet a böngészőben. A webhelyen a Hello Azure! üzenetnek kell megjelennie.

    Java web app page