CI/CD voor MicroProfile-apps met Azure Pipelines
In deze zelfstudie leert u hoe u eenvoudig een releasecyclus voor continue integratie en continue implementatie (CI/CD) voor Azure Pipelines kunt instellen voor het implementeren van uw MicroProfile Java EE-toepassing in een instantie van Azure Web App for Containers. In de MicroProfile-app in deze zelfstudie wordt een WAR-bestand gemaakt met behulp van een Payara Micro-basisinstallatiekopie.
FROM payara/micro:5.182
COPY target/*.war $DEPLOY_DIR/ROOT.war
EXPOSE 8080
U start het Azure Pipelines-containeropslagproces door een Docker-installatiekopie te bouwen en de containerinstallatie kopie naar een Azure Container Registry (ACR) te pushen. U voltooit het proces door een Azure Pipelines-releasepijplijn te maken en de containerinstallatiekopie in een web-app te implementeren.
Vereisten
Maak in de Azure-portal een Azure Container Registry.
Maak in de Azure-portal een Azure Web App for Containers. Selecteer Linux- voor het Besturingssysteem en selecteer Quickstart als de Bron van installatiekopie voor Container configureren.
Kopieer de kloon-URL en sla deze op in de GitHub-voorbeeldopslagplaats in https://github.com/Azure-Samples/microprofile-hello-azure.
Registreer u of meld u aan bij uw Azure DevOps-organisatie en maak een nieuw project.
Importeer de GitHub-voorbeeldopslagplaats in Azure-opslagplaatsen:
- Selecteer op de Azure DevOps-projectpagina Opslagplaatsen in de linkernavigatiebalk.
- Selecteer onder of importeer een opslagplaats de optie Importeren.
- Voer onder Kloon-URL de Git-kloon-URL in die u hebt opgeslagen en selecteer Importeren.
Een build-pijplijn maken
De continue build-pipeline voor integratie in Azure Pipelines voert automatisch alle build-taken uit telkens wanneer er een commit in de Java EE-bron-app is. In dit voorbeeld maakt Azure Pipelines gebruik van Maven om het Java MicroProfile-project te bouwen.
Selecteer op de Azure DevOps-projectpagina Pijplijnen>Builds in de linkernavigatiebalk.
Selecteer Nieuwe pijplijn.
Selecteer De klassieke editor gebruiken om een pijplijn te maken zonder YAML.
Zorg ervoor dat de projectnaam en de geïmporteerde GitHub-opslagplaats in de velden worden weergegeven en selecteer Doorgaan.
Selecteer Maven in de lijst met sjablonen en selecteer vervolgens Toepassen.
Zorg ervoor dat Gehoste Ubuntu 1604 wordt weergegeven in de vervolgkeuzelijst Agentpool in het rechterdeelvenster.
Notitie
Deze instelling laat Azure Pipelines lijnen weten welke build-server moet worden gebruikt. U kunt ook uw persoonlijke, aangepaste build-server gebruiken.
Als u de pijplijn voor continue integratie wilt configureren, selecteert u het tabblad Triggers in het linkerdeelvenster en schakelt u het selectievakje naast Continue integratie inschakelen in.
Selecteer boven aan de pagina de vervolgkeuzelijst naast Opslaan en in wachtrij plaatsen en selecteer Opslaan.
Een installatiekopie van een Docker-build maken
Azure Pipelines gebruikt een Dockerfile met een basisinstallatiekopie van Payara Micro om een Docker-installatiekopie te maken.
Selecteer het tabblad Taken en selecteer vervolgens het plusteken + naast Agenttaak 1 om een taak toe te voegen.
Selecteer in het rechterdeelvenster Docker in de lijst met sjablonen en selecteer vervolgens Toevoegen.
Selecteer buildAndPush in het linkerdeelvenster en voer in het rechterdeelvenster een beschrijving in het veld Weergavenaam in.
Selecteer onder Containeropslagplaats de optie Nieuw naast het veld Container Registry.
Vul het dialoogvenster Een verbinding voor een Docker-registerservice toevoegen als volgt in:
Veld Waarde Registertype Selecteer Azure Container Registry. Naam verbinding Geef een naam op voor de verbinding. Azure-abonnement Selecteer uw Azure-abonnement in de vervolgkeuzelijst en selecteer indien nodig Autoriseren. Azure Container Registry Selecteer de naam van uw Azure Container Registry in de vervolgkeuzelijst. Selecteer OK.
Notitie
Als u Docker Hub of een ander register gebruikt, selecteert u Docker Hub of Overige in plaats van Azure Container Registry naast Registertype. Geef vervolgens de referenties en verbindingsgegevens voor het containerregister op.
Selecteer onder Opdrachten de optie build in de vervolgkeuzelijst Opdracht.
Selecteer het weglatingsteken ... naast het veld Dockerfile, blader naar en selecteer de Dockerfile in uw GitHub-opslagplaats en selecteer OK.
Voer onder Tagsmeest recente in op een nieuwe regel.
Selecteer boven aan de pagina de vervolgkeuzelijst naast Opslaan en in wachtrij plaatsen en selecteer Opslaan.
De Docker-installatiekopie naar ACR pushen
Azure Pipelines pusht de Docker-installatiekopie naar uw Azure Container Registry en gebruikt deze om de MicroProfile API-app uit te voeren als een in een container geplaatste Java-web-app.
Omdat u Docker in Azure Pipelines gebruikt, maakt u een nieuwe Docker-sjabloon door de stappen onder Een installatiekopie van een Docker-build maken te herhalen. Selecteer deze keer push in de vervolgkeuzelijst Opdracht.
Selecteer de vervolgkeuzelijst naast Opslaan en in wachtrij plaatsen en selecteer Opslaan en in wachtrij plaatsen.
Zorg ervoor dat in het pop-upvenster Pijplijn uitvoeren de optie Gehoste Ubuntu 1604 is geselecteerd onder Agentpool en selecteer Opslaan en uitvoeren.
Nadat de build is voltooid, kunt u de hyperlink selecteren op de pagina Build om te controleren of de build is geslaagd en andere gegevens te bekijken.
Een release-pijplijn maken
Een continue releasepijplijn van Azure Pipelines activeert de implementatie automatisch naar een doelomgeving zoals Azure zodra een build is geslaagd. U kunt releasepijplijnen maken voor omgevingen zoals ontwikkeling, testing, fasering of productie.
Selecteer op de Azure DevOps-projectpagina Pijplijnen>Releases in de linkernavigatiebalk.
Selecteer Nieuwe pijplijn.
Selecteer Een Java-app implementeren in Azure App Service in de lijst met sjablonen en selecteer vervolgens Toepassen.
Wijzig in het pop-upvenster Fase 1 in een naam van een fase zoals Ontwikkeling, Testing, Fasering of Productie en sluit het venster.
Selecteer onder Artefacten in het linkerdeelvenster Toevoegen om artefacten van de build-pijplijn te koppelen aan de releasepijplijn.
Selecteer in het rechterdeelvenster uw build-pijplijn in de vervolgkeuzelijst onder Bron (build-pijplijn) en selecteer vervolgens Toevoegen.
Selecteer de hyperlink in de fase Productie in Fasetaken weergeven.
Vul in het rechterdeelvenster het formulier als volgt in:
Veld Waarde Azure-abonnement Selecteer uw Azure-abonnement in de vervolgkeuzelijst. Type app Selecteer Web App for Containers (Linux) in de vervolgkeuzelijst. Naam van App Service Selecteer uw ACR-exemplaar in de vervolgkeuzelijst. Register of naamruimten Voer de naam van uw ACR in het veld in. Voer bijvoorbeeld mymicroprofileregistry.azure.io in. Opslagplaats Voer de opslagplaats in die de Docker-installatiekopie bevat. Selecteer in het linkerdeelvenster War implementeren in Azure App Service en voer in het rechterdeelvenster meest recente tag in het veld Tag in.
Selecteer in het linkerdeelvenster Uitvoeren op agent en selecteer in het rechterdeelvenster Gehoste Ubuntu 1604 in de vervolgkeuzelijst Agentpool.
Omgevingsvariabelen instellen
U kunt tijdens de implementatie omgevingsvariabelen toevoegen en definiëren om verbinding te maken met het containerregister.
Selecteer het tabblad Variabelen en selecteer vervolgens Toevoegen om de volgende variabelen toe te voegen aan de URL, de gebruikersnaam en het wachtwoord van de container.
Naam Weergegeven als registry.url Voer de URL van het containerregister in. Bijvoorbeeld: https://mymicroprofileregistry.azure.io registry.username Voer de gebruikersnaam voor het register in. registry.password Voer het wachtwoord voor het register in. Selecteer om beveiligingsredenen het vergrendelingspictogram om de wachtwoordwaarde te verbergen. Selecteer op het tabblad Taken de optie War implementeren in Azure App Service in het linkerdeelvenster.
Vouw in het rechterdeelvenster Toepassings- en configuratie-instellingen uit en selecteer vervolgens het weglatingsteken ... naast het veld App-instellingen.
Selecteer in het pop-upvenster App-instellingen de optie Toevoegen om de variabelen voor app-instellingen te definiëren en toe te wijzen:
Naam Weergegeven als DOCKER_REGISTRY_SERVER_URL $(registry.url) DOCKER_REGISTRY_SERVER_USERNAME $(registry.username) DOCKER_REGISTRY_SERVER_PASSWORD $(registry.password) Selecteer OK.
Doorlopende implementatie instellen
Ga als volgt te werk om continue implementatie inschakelen:
Selecteer op het tabblad Pijplijn onder Artefacten het bliksempictogram in het build-artefact.
Stel in het rechterdeelvenster de Trigger voor continue implementatie in op Ingeschakeld.
Selecteer rechtsboven Opslaan en selecteer opnieuw Opslaan.
De Java-app implementeren
Nu u CI/CD hebt ingeschakeld, worden met het wijzigen van de broncode builds en releases automatisch gemaakt en uitgevoerd. U kunt ook handmatig releases maken en uitvoeren, namelijk als volgt:
Selecteer in de rechterbovenhoek op de pagina Release-pijplijn Release maken.
Selecteer op de pagina Een nieuwe release maken de naam van de fase onder Fasen voor een trigger wijzigen van automatisch in handmatig.
Selecteer Maken.
Selecteer de naam van de release, beweeg de muisaanwijzer over of selecteer de fase en selecteer vervolgens Implementeren.
De Java-web-app testen
Wanneer de implementatie is voltooid, test u uw web-app.
Kopieer de web-app-URL vanuit de Azure-portal.
Voer de URL in uw webbrowser in om uw app uit te voeren. Op de webpagina wordt Hallo Azure! weergegeven.