CI/CD för MicroProfile-appar som använder Azure Pipelines

I den här självstudien går vi igenom hur du enkelt konfigurerar en versionscykel för kontinuerlig integrering och distribution (CI/CD) i Azure Pipelines för distribution av ett MicroProfile Java EE-program till Azure Web App for Containers. MicroProfile-appen i den här självstudien använder en Payara Micro-basavbildning till att skapa en WAR-fil.

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

Du startar skapa containeriseringen i Azure Pipelines genom att skapa en Docker-avbildning och push-överföra containeravbildningen till ett Azure-containerregister (ACR). Du slutför processen genom att skapa en versionspipeline för Azure Pipelines och distribuera containeravbildningen till en webbapp.

Förutsättningar

  1. Öppna Azure-portalen och skapa ett Azure-containerregister.

  2. Skapa en instans av Azure Web App for Containers i portalen. Välj Linux som OS. För Konfigurera container väljer du Snabbstart som Avbildningskälla.

  3. Kopiera och spara kloningsadressen från GitHub-lagringsplatsen på https://github.com/Azure-Samples/microprofile-hello-azure.

  4. Registrera dig eller logga in på din Azure DevOps-organisation och skapa ett nytt projekt.

  5. Importera exemplet från GitHub-lagringsplatsen till Azure Repos:

    1. Öppna sidan för Azure DevOps-projektet och välj Lagringsplatser i det vänstra navigeringsfältet.
    2. Under Exportera eller importera en lagringsplats väljer du Importera.
    3. Under Klon-URL anger du webbadressen till Git-klonen du sparade och väljer Importera.

Skapa en bygg-pipeline

Pipelinen för kontinuerlig integrering i Azure Pipelines kör automatiskt alla kompileringsaktiviteter varje gång ny kod checkas in i Java EE-källappen. I det här exemplet använder Azure Pipelines Maven till att skapa Java MicroProfile-projektet.

  1. Öppna sidan för Azure DevOps-projektet och välj Pipelines>Versioner i det vänstra navigeringsfältet.

  2. Välj Ny pipeline.

  3. Välj Använda den klassiska redigeraren för att skapa en pipeline utan YAML.

  4. Se till att projektnamnet och den importerade GitHub-lagringsplatsen visas i fälten och välj Fortsätt.

  5. Välj maven i listan med mallar och välj sedan Tillämpa.

  6. Se till att Hosted Ubuntu 1604 visas i listrutan Agentpool i det högra fönstret.

    Kommentar

    Den här inställningen för att Azure Pipelines vet vilken versionsserver som ska användas. Du kan också använda en privat, anpassad versionsserver.

  7. Om du vill konfigurera pipelinen för kontinuerlig integrering väljer du fliken Utlösare i den vänstra rutan och markerar sedan kryssrutan bredvid Aktivera kontinuerlig integrering.

  8. Välj listrutan bredvid Spara och placera i kö längst upp på sidan och välj Spara.

    Enable continuous integration

Skapa en Docker-avbildning

Azure Pipelines använder en Dockerfile med en basavbildning från Payara Micro till att skapa en Docker-avbildning.

  1. Välj fliken Uppgifter och sedan plustecknet + bredvid Agentjobb 1 för att lägga till en aktivitet.

    Add a new task

  2. Välj Docker i listan med mallar i den högra rutan och välj sedan Lägg till.

  3. Välj buildAndPush i den vänstra rutan och ange en beskrivning i fältet Visningsnamn i den högra rutan.

  4. Under Containerlagringsplats väljer du Nytt bredvid fältet Containerregister.

  5. Fyll i dialogrutan Lägg till en anslutning till en Docker-registertjänst:

    Fält Värde
    Registertyp Välj Azure Container Registry.
    Anslutningsnamn Ange ett namn på anslutningen.
    Azure-prenumeration Välj din Azure-prenumeration från listrutan och välj Auktorisera om det behövs.
    Azure-containerregister Välj namnet på ditt Azure-containerregister från listrutan.
  6. Välj OK.

    Add a Docker Registry service connection

    Kommentar

    Om du använder Docker Hub eller något annat register väljer du Docker Hub eller Övriga i stället för Azure Container Registry bredvid Registertyp. Ange sedan autentiseringsuppgifter och anslutningsinformation för containerregistret.

  7. Under Kommandon väljer du Kompilera i listrutan Kommando.

  8. Välj ellipsen ... bredvid fältet Dockerfile, bläddra till och välj Dockerfile-filen från GitHub-lagringsplatsen och välj sedan OK.

    Select the Dockerfile

  9. Under Taggar anger du latest (senaste) på en ny rad.

  10. Välj listrutan bredvid Spara och placera i kö längst upp på sidan och välj Spara.

Push-överför Docker-avbildningen till ACR

Azure Pipelines push-överför Docker-avbildningen till Azure Container Registry och använder den till att köra MicroProfile API-appen som en Java-app i en container.

  1. Eftersom du använder Docker i Azure Pipelines skapar du en till Docker-mall genom att upprepa stegen under Skapa en Docker-avbildning. Den här gången väljer du push-överför i listrutan Kommando.

  2. Välj listrutan bredvid Spara och placera i kö och välj Spara och placera i kö.

  3. I popup-fönstret Kör pipeline kontrollerar du att Hosted Ubuntu 1604 är valt under Agentpool och väljer Spara och kör.

  4. När kompileringen är färdig kan du välja hyperlänken på sidan Kompilera för att kontrollera att kompileringen lyckades och se annan information.

    Select the build hyperlink

Skapa en versionspipeline

En pipeline för kontinuerlig versionshantering i Azure Pipelines utlöser automatiskt distribution till en målmiljö som Azure så snart en ny version har skapats. Du kan skapa versionspipelines för miljöer som utveckling, testning, mellanlagring och produktion.

  1. Öppna sidan för Azure DevOps-projektet och välj Pipelines>Versioner i det vänstra navigeringsfältet.

  2. Välj Ny pipeline.

  3. Välj Distribuera en Java-app till Azure App Service i listan med mallar och välj Tillämpa.

    Select the Deploy a Java app to Azure App Service template

  4. I popup-fönstret ändrar du Steg 1 till ett stegnamn som Dev, Test, Mellanlagring eller Produktionoch stänger sedan fönstret.

  5. Under Artefakter i det vänstra fönstret väljer du Lägg till för att länka artefakter från bygg-pipelinen till versionspipelinen.

  6. Välj din bygg-pipeline i listrutan under Källa (bygg-pipeline) i rutan till höger och välj sedan Lägg till.

    Add a build artifact

  7. Välj hyperlänken i steget Produktion för att Visa steguppgifter.

    Select the stage name

  8. I den högra rutan fyller du i formuläret enligt följande:

    Fält Värde
    Azure-prenumeration Välj din Azure-prenumeration från listrutan.
    Apptyp Välj Web App for Containers (Linux) från listrutan.
    Apptjänstens namn Välj din ACR-instans från listrutan.
    Register eller namnområden Ange ditt ACR-namn i fältet. Ange till exempel mymicroprofileregistry.azure.io.
    Lagringsplats Ange den lagringsplats som innehåller Docker-avbildningen.

    Configure stage tasks

  9. I det vänstra fönstret väljer du Distribuera War till Azure App Service och ange taggen latest i fältet Tagg.

  10. Välj Kör på agent i den vänstra rutan och sedan Hosted Ubuntu 1604 från listrutan Agentpool i den högra rutan.

Ställ in miljövariabler

Lägg till och definiera miljövariabler för att ansluta till containerregistret under distributionen.

  1. Välj fliken Variabler och sedan Lägg till för att lägga till följande variabler containerregistrets webbadress, användarnamn och lösenord.

    Name Värde
    registry.url Ange webbadressen till containerregistret. Till exempel: https://mymicroprofileregistry.azure.io
    registry.username Ange användarnamnet för registret.
    registry.password Ange lösenordet för registret. Öka säkerheten genom att välja låsikonen så att lösenordet blir dolt.

    Add variables

  2. Gå till fliken Uppgifter och välj Distribuera War till Azure App Service i den vänstra rutan.

  3. I den högra rutan expanderar du Program- och konfigurationsinställningar och väljer sedan ellipsen ... bredvid fältet Appinställningar.

  4. I popup-fönstret Appinställningar väljer du Lägg till för att definiera och tilldela variabler för appens inställningar:

    Name Värde
    DOCKER_REGISTRY_SERVER_URL $(registry.url)
    DOCKER_REGISTRY_SERVER_USERNAME $(registry.username)
    DOCKER_REGISTRY_SERVER_PASSWORD $(registry.password)
  5. Välj OK.

    Add and set variables

Konfigurera kontinuerlig distribution

Så här aktiverar du kontinuerlig distribution:

  1. Välj blixtikonen i bygg-artefakten på fliken Pipeline under Artefakter.

  2. Ställ in Utlösare för kontinuerlig distributionAktiverad i rutan till höger.

  3. Välj Spara längst upp till höger och välj sedan Spara igen.

    Enable continuous deployment trigger

Distribuera Java-appen

Nu när du har aktiverat CI/CD skapas och körs nya versioner automatiskt när du ändrar källkoden. Du kan också skapa och köra versioner manuellt så här:

  1. Välj Skapa version uppe till höger på sidan för versionspipelinen.

  2. På sidan Skapa en ny version väljer du namnet på steget under Stages for a trigger change from automated to manual (Steg för en utlösare, ändra från automatisk till manuell).

  3. Välj Skapa.

  4. Välj versionsnamnet, hovra över eller välj steget och välj sedan Distribuera.

Testa Java-webbappen

När distributionen har slutförts testar du din webbapp.

  1. Kopiera appens webbadress från Azure-portalen.

    App Service app in the Azure portal

  2. Kör appen genom att ange webbadressen i webbläsaren. Du ska se Hello Azure! i webbläsaren.

    Java web app page