CI/CD voor MicroProfile-apps met behulp van Azure Pipelines
In deze zelfstudie leert u hoe u eenvoudig een releasecyclus voor continue integratie en continue implementatie (CI/CD) van Azure Pipelines instelt om uw MicroProfile Java EE-toepassing te implementeren in een Azure Web App for Containers. De MicroProfile-applicatie in deze zelfstudie maakt gebruik van een Payara Micro basisimage om een WAR-bestand te maken.
FROM payara/micro:5.182
COPY target/*.war $DEPLOY_DIR/ROOT.war
EXPOSE 8080
U begint het containerisatieproces van Azure Pipelines door een Docker-image te bouwen en de container-image naar een Azure Container Registry (ACR) te pushen. U voltooit het proces door een release-pijplijn van Azure Pipelines te maken en de containerimage naar een web-app te implementeren.
Voorwaarden
Maak in de Azure portaleen Azure Container Registry.
Maak in de Azure Portal een Azure Web App voor Containers. Selecteer Linux- voor het besturingssysteemen selecteer voor Containerconfigureren quickstart als installatiekopieën.
Kopieer en sla de kloon-URL op uit de GitHub-voorbeeldopslagplaats op https://github.com/Azure-Samples/microprofile-hello-azure.
Registreer of meld u aan bij uw Azure DevOps organisatie en maak een nieuw project.
Importeer de GitHub-voorbeeldopslagplaats in Azure-opslagplaatsen met behulp van de volgende stappen:
- Selecteer op de Azure DevOps-projectpagina Repository's in het linkernavigatievenster.
- Onder of importeer een opslagplaats, selecteer Import.
- Voer onder Kloon-URLde Git-kloon-URL in die u hebt opgeslagen en selecteer Importeren.
Een build-pijplijn maken
De build-pijplijn voor continue integratie in Azure Pipelines voert automatisch alle buildtaken uit telkens wanneer er een doorvoer in de Java EE-bron-app is. In dit voorbeeld gebruikt Azure Pipelines Maven om het Java MicroProfile-project te bouwen.
Selecteer op de azure DevOps-projectpagina Pipelines>Builds in het linkernavigatievenster.
Selecteer Nieuwe pijplijn.
Selecteer De klassieke editor gebruiken om een pijplijn te maken zonder YAML-.
Zorg ervoor dat uw projectnaam en geïmporteerde GitHub-opslagplaats worden weergegeven in de velden en selecteer Doorgaan.
Selecteer Maven- in de lijst met sjablonen en selecteer vervolgens Toepassen.
Controleer in het rechterdeelvenster of Hosted Ubuntu 1604 wordt weergegeven in de Agent pool vervolgkeuzelijst.
Notitie
Met deze instelling weet Azure Pipelines welke build-server moet worden gebruikt. U kunt ook uw persoonlijke, aangepaste buildserver 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 inschakelenin.
Selecteer boven aan de pagina de vervolgkeuzelijst naast & wachtrij opslaanen selecteer Opslaan.
Een Docker-build-image maken
Azure Pipelines maakt gebruik van een Dockerfile met een basisimage van Payara Micro om een Docker-image te maken.
Selecteer het tabblad Taken en selecteer vervolgens het plusteken + naast Agent-taak 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 in het veld Weergavenaam.
Selecteer onder ContaineropslagplaatsNieuwe naast het veld Container Registry.
Vul als volgt het dialoogvenster Een Docker-registerserviceverbinding toevoegen in:
Veld Waarde registertype Selecteer Azure Container Registry-. Verbindingsnaam Voer een naam in voor de verbinding. Azure-abonnement Selecteer uw Azure-abonnement in de vervolgkeuzelijst en selecteer indien nodig Autoriseren. Azure-containerregister Selecteer uw Azure Container Registry-naam in de vervolgkeuzelijst. Selecteer OK-.
Notitie
Als u Docker Hub of een ander register gebruikt, selecteert u Docker Hub of Anderen in plaats van Azure Container Registry naast Registertype. Geef vervolgens de referenties en verbindingsgegevens op voor uw containerregister.
Selecteer onder de opdrachten , bouwen uit de vervolgkeuzelijst Opdracht.
Selecteer het beletselteken ... naast het veld Dockerfile, blader naar de Dockerfile in uw GitHub-opslagplaats en selecteer vervolgens OK.
Voer onder Tagsmeest recente op een nieuwe regel in.
Selecteer bovenaan de pagina de vervolgkeuzelijst naast Opslaan wachtrij &, en selecteer Opslaan.
De Docker-images uploaden naar ACR
Azure Pipelines pusht de Docker-installatiekopieën 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 andere Docker-image door de stappen onder Een Docker-buildimage makente herhalen. Selecteer deze keer
push- in de vervolgkeuzelijst opdrachtopdracht. Selecteer de vervolgkeuzelijst naast Opslaan van de wachtrij &en selecteer Opslaan van de wachtrij &.
Controleer in het pop-upvenster Pijplijn uitvoeren of gehoste Ubuntu 1604- is geselecteerd onder agentgroepen selecteer Opslaan enuitvoeren.
Nadat de build is voltooid, kunt u de hyperlink selecteren op de pagina Build om te controleren of de build is geslaagd en andere details te bekijken.
Een release-pijplijn maken
Een continue release-pijplijn van Azure Pipelines activeert automatisch de implementatie naar een doelomgeving zoals Azure zodra een build is geslaagd. U kunt releasepijplijnen maken voor omgevingen zoals ontwikkelen, testen, faseren of productie.
Selecteer op de azure DevOps-projectpagina Pipelines>Releases in het linkernavigatievenster.
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 fasenaam, zoals Dev, Test, Faseringof Productionen sluit het venster.
Selecteer onder Artefacten in het linkerdeelvenster Voeg toe om artefacten uit de build-pijplijn te koppelen aan de release-pijplijn.
Selecteer in het rechterdeelvenster je build-pijplijn in het vervolgkeuzemenu onder Bron (build-pijplijn)en selecteer vervolgens Toevoegen.
Selecteer de hyperlink in de fase Productie om fasetakenweer te geven.
Vul in het rechterdeelvenster het formulier als volgt in:
Veld Waarde Azure-abonnement Selecteer uw Azure-abonnement in de vervolgkeuzelijst. Apptype Selecteer Web App for Containers (Linux) in de vervolgkeuzelijst. App-servicenaam Selecteer uw ACR-exemplaar in de vervolgkeuzelijst. registers en naamruimten Voer uw ACR-naam in het veld in. Voer bijvoorbeeld mymicroprofileregistry.azure.ioin. opslagplaats Voer de opslagplaats in die uw Docker-installatiekopieën bevat. Selecteer in het linkerdeelvenster War implementeren in Azure App Serviceen voer in het rechterdeelvenster meest recente tag in het veld Tag in.
Selecteer in het linkerdeelvenster Uitvoeren op agenten selecteer in het rechterdeelvenster gehoste Ubuntu 1604- in de Agent-pool vervolgkeuzelijst.
Omgevingsvariabelen instellen
Voeg omgevingsvariabelen toe en definieer deze om tijdens de implementatie verbinding te maken met het containerregister.
Selecteer het tabblad Variabelen en selecteer vervolgens Voeg toe om de volgende variabelen toe te voegen voor de URL, gebruikersnaam en wachtwoord van uw containerregister.
Naam Waarde registry.url
Voer de URL van uw 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 voor beveiliging het vergrendelingspictogram om de wachtwoordwaarde verborgen te houden. In het linkerdeelvenster op het tabblad Taken, selecteer Implementatie van War naar Azure App Service.
Vouw in het rechterdeelvenster toepassings- en configuratie-instellingenuit en selecteer vervolgens het beletselteken ... naast het veld App-instellingen.
In de pop-up van de app-instellingen, selecteer Toevoegen om de app-instellingsvariabelen te definiëren en toe te wijzen.
Naam Waarde DOCKER_REGISTRY_SERVER_URL
$(registry.url)
DOCKER_REGISTRY_SERVER_USERNAME
$(registry.username)
DOCKER_REGISTRY_SERVER_PASSWORD
$(registry.password)
Selecteer OK -.
Continue implementatie instellen
Gebruik de volgende stappen om continue implementatie in te schakelen:
Selecteer op het tabblad Pijplijn in de sectie Artefactenhet 'bliksem'-icoon in het build-artifact.
In het rechterdeelvenster stel je de continue implementatietrigger in op Ingeschakeld.
Selecteer Opslaan in de rechterbovenhoek en selecteer vervolgens opnieuw Opslaan.
De Java-app implementeren
Nu u CI/CD hebt ingeschakeld, worden builds en releases automatisch gemaakt en uitgevoerd door de broncode te wijzigen. U kunt releases ook handmatig maken en uitvoeren, als volgt:
Selecteer op de release-pijplijnpagina in de rechterbovenhoek Release Maken.
Selecteer op de pagina Een nieuwe release maken de fasenaam onder Fasen voor een triggerwijziging van geautomatiseerd naar handmatig.
Selecteer maken.
Selecteer de releasenaam, beweeg de muisaanwijzer over de fase of selecteer de fase en selecteer vervolgens Uitrollen.
De Java-web-app testen
Nadat de implementatie is voltooid, test u uw web-app.
Kopieer de URL van de web-app vanuit Azure Portal.
Als u uw app wilt uitvoeren, voert u de URL in uw webbrowser in. De webpagina moet zeggen: Hello Azure!