Bouw je eerste Azure DevOps-pijplijn vanaf nul

Software moet worden geschreven, getest en ingezet in een productieomgeving. Om dit op geautomatiseerde wijze te doen, bouwen ontwikkelaars en DevOps CI/CD-pijplijnen of bouw-/release-pijplijnen die een groot deel van deze activiteit automatiseren.

A pipeline allows developers, DevOps teams and others to produce and deploy reliable code. In the Microsoft realm, the way to build a pipeline is with Azure DevOps with a feature called Azure Pipelines.

Azure Pipelines stellen u in staat om automatisch builds uit te voeren, tests uit te voeren en code te implementeren (release) naar verschillende ontwikkelings- en productieomgevingen. Maar wat als u nog nooit hebt gehoord van Azure DevOps of een pijplijn, of er nog nooit een hebt gebouwd met Azure DevOps? Als dat het geval is, is deze Azure Pipelines handleiding voor u.

Grote dank aan Peter De Tender, Microsoft Azure Technical Trainer, voor zijn hulp bij dit artikel.

Projectoverzicht

Dit is een Projectartikel waarin we laten zien hoe u een project kunt bouwen of een oplossing kunt implementeren. Elke sectie zal cumulatieve stappen behandelen die voortbouwen op het voorgaande.

In dit Project ga je vanaf de basis leren hoe je je eerste Azure DevOps-pijplijn maakt. Je leert concepten zoals het starten van builds vanuit een Git-versiebeheercommit, automatisch uitvoeren van tests en uiteindelijk het vrijgeven van pakketten naar omgevingen. Tegen het einde van dit Project heb je een voorbeeld van een e-commerce applicatie ingezet als een Azure WebApp.

Dit Project zou ongeveer 30 minuten moeten duren om te voltooien.

Let op dat als u dit project volgt en de gemaakte resources onmiddellijk verwijdert, er geen kosten in rekening worden gebracht op uw Azure-account. Vergeet ze niet te verwijderen!

Doelgroep

Dit project zal de basisprincipes behandelen van het opzetten van uw eerste Azure Pipeline in de Azure DevOps-webinterface. U leert veel van dit project als u helemaal nieuw bent met Azure Pipelines, maar minder als u al uw eigen pipelines heeft gebouwd of een Azure Pipelines-expert bent.

Omgevingsvereisten

Als u van plan bent om stap voor stap door dit project te gaan, zorg er dan in ieder geval voor dat u het volgende heeft:

Het maken van een Azure DevOps-organisatie

Omdat we helemaal opnieuw beginnen, maakt u eerst het “basis” object aan waarin alle functies en services van Azure DevOps zijn opgenomen, genaamd de organisatie. De organisatie is waar alle projecten worden opgeslagen die u leert hoe u in de volgende sectie kunt bouwen.

  1. Vanuit het Azure-portal gaat u naar Alle services, zoekt u naar DevOps en selecteert u Azure DevOps. U kunt hieronder zien wat u kunt verwachten. Dit opent het Azure DevOps-venster zoals u hieronder kunt zien.
Azure DevOps dashboard

2.  Klik vervolgens op Mijn Azure DevOps-organisaties en geef uw Azure-inloggegevens op. U wordt naar een pagina gebracht waar u een nieuwe organisatie kunt maken zoals hieronder wordt weergegeven. Klik hier op de blauwe knop Nieuwe organisatie maken.

Create new Azure DevOps organization page

3.  Op de volgende pagina geeft u een naam voor de organisatie op. Als u problemen ondervindt met het gebruik van een specifieke naam, controleer dan de naamgevingsconventies voor Azure DevOps-organisaties. Geef op dit scherm ook een Azure-regio op die het dichtst bij u in de buurt is. Klik vervolgens op Doorgaan.

Azure DevOps organization creation page

Op dit punt is uw Azure DevOps-organisatie aangemaakt!

Het maken van een Azure DevOps-project

De volgende stap is het creëren van een project. Een project is een container voor de pijplijn die je gaat aanmaken, diverse artefacten en alle andere informatie met betrekking tot een specifieke service of software.

Azure DevOps geeft je de mogelijkheid om tijdens dezelfde workflow als het aanmaken van een organisatie een project aan te maken, zoals hierboven uitgevoerd. Als je hebt meegevolgd, zou je nu een pagina voor projectcreatie moeten zien, zoals hieronder weergegeven.

  1. Op de pagina voor projectcreatie geef je een naam op voor je project in het veld Projectnaam. Voor dit project gebruik je een Azure DevOps-project met de naam devopsdemo.
  2. Bevestig de creatie van het project door op de knop + Project aanmaken te klikken.
  3. Laat voorlopig de Zichtbaarheid ingesteld op Privé. Dit zorgt ervoor dat je project niet blootgesteld wordt aan het internet. Een openbaar project geeft niet-leden van een project en niet-aangemelde gebruikers alleen leesrechten voor de artefacten van het project.
Azure DevOps project creation page

Op dit punt is je Azure DevOps-werkruimte (project + organisatie) aangemaakt. Als je hebt meegevolgd, heb je nu een Azure DevOps-organisatie met de naam pdtitws123 en een project binnen die organisatie met de naam devopsdemo.

Azure DevOps project overview

Het opzetten van een Azure DevOps Build Pipeline

Nu je een Azure DevOps-organisatie en project hebt opgezet, kun je nu binnenin een build pijplijn aanmaken. De pijplijn is waar alle magie plaatsvindt. Hier maak je builds aan om verschillende taken uit te voeren, zoals het compileren van code, het binnenhalen van afhankelijkheden en meer.

  1. Vanaf het dashboard, selecteer Pipelines en vervolgens Builds.
Azure DevOps Builds menu

2. Je ziet een bericht waarin staat dat er nog geen build-pipelines zijn gevonden. Klik op Nieuwe pipeline om te beginnen met het maken van de build-pipeline.

No build pipelines bound yet. Creating a new pipeline.

3. Je wordt dan gevraagd waar je code is opgeslagen. In dit project wordt de code opgeslagen in een GitHub-opslagplaats. Selecteer GitHub. Dit is de plaats waar de code wordt opgeslagen en waar de triggers voor het starten van de build vandaan zullen komen.

Selecting version control source

4. Zodra je op GitHub klikt, wordt je gevraagd om je GitHub-accountreferenties te verstrekken zoals hieronder weergegeven. Voordat je met deze stap begint, moet je een lege GitHub-repo hebben aangemaakt zoals gedefinieerd in de Prerequisites-sectie van dit artikel!

Providing GitHub credentials

5. Bevestig vervolgens de stap waar je wordt gevraagd Azure Pipelines te autoriseren. Hiermee wordt ervoor gezorgd dat Azure DevOps toestemming heeft om toegang te krijgen tot je GitHub-repo’s.

Authorizing Azure Pipelines to access GitHub

Het koppelen van een GitHub-repo aan de build-pipeline

Zodra je Azure DevOps toestemming hebt gegeven voor je GitHub-account, koppel je nu een GitHub-repo aan de build-pipeline.

  1. Selecteer de lege GitHub-repo die je hebt aangemaakt voor dit project.
Empty source GitHub repo

2. Sta het project toe om broncode te lezen, schrijven en controleren uit de opslagplaats die je eerder hebt geselecteerd. Bevestig dit proces vervolgens door op Goedkeuren & Installeren te klikken.

Confirm Azure DevOps Github integration

3. Door te bevestigen, zie je een foutmelding zoals hieronder weergegeven. Deze fout treedt op omdat de geselecteerde GitHub-repo leeg is.

Error when GitHub repo is empty

Op dit punt is je GitHub-repo gekoppeld aan je Azure DevOps-build-pipeline.

Je hoeft niet elke keer een volledig nieuwe pijplijn te maken wanneer je een GitHub-repo aan een Azure DevOps-buildpijplijn wilt koppelen.

Het invullen van de code van een voorbeeldrepository op GitHub

De Azure DevOps-buildpijplijn wordt niet uitgevoerd zonder wat code in de GitHub-repo. De code doet er op dit moment niet per se toe. Om wat code in de repo te krijgen, zullen we een bestaande repo gebruiken om wat code van te klonen. In deze repo heb ik alle broncode beschikbaar om een voorbeeldtoepassing voor e-commerce te publiceren in Azure WebApps.

De voorbeeldcode voor deze repo bevat een voorbeeld e-commerce toepassing genaamd SimplCommerce. Deze toepassing is een open-source dotnetcore-toepassing die realistischer is dan het typische “hello world” project.

  1. Navigeer naar deze voorbeeld GitHub-repo en klik op Code importeren zoals hieronder getoond.
Empty myfirstrepo GitHub repo

2.  Voor de clone-URL van het oude repository gebruik http://github.com/007FFFLearning/SimplDev en klik op Begin met importeren.

Proving the repo clone URL

Wanneer de importstap van de repo succesvol is voltooid, vernieuw dan het venster van de Azure DevOps-pijplijn, wat je nu in staat zou moeten stellen om door te gaan.

Het inspecteren en bekijken van de buildpijplijn in YAML

Op dit punt bevind je je in de Review-fase van het pijplijncreatieproces. Je krijgt nu een representatie van de build-pijplijn gepresenteerd in YAML. Dit YAML-bestand wordt automatisch gegenereerd op basis van de detectie van de programmeertaal, die in dit project dotnetcore is.

Een van de echte voordelen van Azure DevOps is de pijplijn YAML. Met veel andere DevOps-tools moet je handmatig een pijplijnbestand bouwen.

Reviewing pipeline YAML

Handmatig uitvoeren van de Azure Build-pijplijn

In een continue integratie (CI) pijplijn wordt de build typisch getriggerd door een commit naar de broncontrole. Maar je kunt ook handmatig de build-pijplijn triggeren om uit te voeren. Laten we handmatig een build-pijplijn starten om te zien wat er gebeurt.

Als je tot nu toe hebt gevolgd, zou je op dit punt moeten zijn waar je op Run kunt klikken om de build-pijplijn te starten. Dit zal het pijplijnbuildproces starten, zoals je kunt zien op de onderstaande schermafbeelding.

Pipeline starting

Na een paar seconden zie je dat het proces wordt uitgevoerd voor macOS, zoals hieronder wordt getoond. De build-pijplijn geeft realtime informatie terug terwijl elke taak en opdracht in de pijplijn wordt uitgevoerd.

Running on the macOS build agent

De build-pijplijn herhaalt vervolgens hetzelfde proces voor de andere besturingssystemen (in dit voorbeeld) zoals hieronder wordt getoond. De genomen stappen zullen aanzienlijk variëren, afhankelijk van hoe het YAML-bestand is opgebouwd.

Running on the Linux build agent

Zodra de build is voltooid, zie je groene vinkjes zoals hieronder weergegeven. Deze schermafbeelding geeft aan dat elke platformbuild succesvol is doorlopen.

Successful pipeline run

Je hebt nu een Azure DevOps-buildpijplijn gemaakt!

Het bouwen van een Azure DevOps-releasepijplijn

De buildpijplijn is aangemaakt, wat een geweldige vooruitgang is. Als je op dit punt zou stoppen, zou je goed op weg zijn naar een complete, geautomatiseerde pijplijn. Maar we zijn nog niet klaar! Het ultieme doel van software is implementatie, zodat klanten het kunnen gebruiken. Het is tijd om ook een implementatie te automatiseren met een release-pijplijn!

A release pipeline takes a build artifact, a result of the build process and deploys that to one or more environments. In this Project, you’re going to use a release pipeline to publish code in the GitHub repo to an Azure Web App.

  1. Vanuit Azure DevOps, klik op Pipelines en dan op Releases.
Releases menu item

2. Selecteer vervolgens New en dan New Release Pipeline. Hiermee wordt de wizard Nieuwe releasepijplijn gestart.

New release pipeline menu option

3. Kies vanuit de sjabloonlijst aan de rechterkant Azure App Service-implementatie. Je ziet veel verschillende sjablonen die beschikbaar zijn om tijd te besparen bij het maken van toekomstige releasepijplijnen.

Select the Azure App Service deployment template

4. Geef een beschrijving voor de Stagenaam. De stage bevat release-taken. Gebruik voor dit project de naam Deploy_to_webapp.

Specify the stage name

De releasepijplijn moet er nu uitzien zoals de onderstaande schermafbeelding.

Created stage

5. Selecteer in het veld Stages 1 job, 1 taak. Dit veld is waar je uiteindelijk de instellingen van de Azure Web App-omgeving zult opgeven die je voor de daadwerkelijke implementatie zult gebruiken.

6. Bij de Azure App Service-implementatiesjabloon horen enkele parameters die je op dit scherm moet definiëren.

  1. Podiumnaam – Deploy-to-webapps2 in dit voorbeeld.
  2. Azure-abonnement – selecteer uw abonnement en bevestig met Authoriseren (vereist referenties)
  3. Apptype – Webapp op Linux
  4. App-servicenaam – de webapp die u eerder hebt gemaakt
Setting template parameters

7. Klik wanneer u klaar bent op Pijplijn in het bovenste menu van uw Azure-pijplijnproject zoals hieronder weergegeven. Hiermee keert u terug naar het hoofdscherm en kunt u de volgende stap voltooien, namelijk het specificeren van de artefacten.

Going back to the pipeline

Artefacten toevoegen aan de Azure DevOps-releasepijplijn

In een releasepijplijn moeten veel verschillende items worden ingezet. Deze items worden artefacten genoemd. Artefacten zijn kort gezegd inzetbare componenten van uw toepassing. Azure Pipelines kunnen artefacten implementeren die worden geproduceerd door een breed scala aan artefactbronnen.

In dit gedeelte gaan we in op het toevoegen van artefacten aan de releasepijplijn.

  1. Terwijl u op het Pijplijn-scherm bent, klikt u op Een artefact toevoegen.
  2. Het Brontype is al ingesteld op Build, wat is wat u wilt omdat u de uitvoer van de eerder gemaakte build-pijplijn zult implementeren. Kies de eerder gemaakte build-pijplijn in het vervolgkeuzemenu Bron (build-pijplijn).
  3. Wanneer je klaar bent, klik op Toevoegen om de configuratie op te slaan.
Adding an artifact

4. Klik ten slotte op de Opslaan-knop in de rechterbovenhoek van het scherm om de release-pijplijn op te slaan.

Het maken van de Azure DevOps Release

Zodra de release-pijplijn is aangemaakt, begin je met het maken van releases. Een release is een specifieke uitvoering van de pijplijn. Denk aan de release-pijplijn als het sjabloon en specifieke instanties van die release-pijplijn als releases. Zodra je een release hebt, kan die release vervolgens worden ingezet.

Om een release te maken:

  1. Klik op de Release maken-knop in de rechterbovenhoek van het venster zoals hieronder wordt weergegeven.
New release pipeline overview

2. Je gaat niets bijzonders doen, dus op het scherm Maak een nieuwe release, accepteer de standaardinstellingen en klik op Maken. Je hebt op dit moment slechts één fase en hebt nu een enkele versie van het build-artefact om te implementeren.

Create a new release item

3. Na enkele seconden ontvang je een melding (de groene balk) dat de release is aangemaakt zoals hieronder wordt weergegeven. Klik nu op Release-1 wat je zal doorverwijzen naar de details van het releaseproces.

Click on Release-1

Je hebt nu een release aangemaakt en het is klaar om te worden ingezet!

Handmatig implementeren van een release

A release is a set of instructions to perform on how to deploy a build. You’ve done all of that. Now it’s time to actually run those instructions and deploy code to an environment.

Terwijl je op de Release-1-release bent die je eerder hebt aangemaakt:

  1. Selecteer het Deploy_to_webapp stadium en bevestig Deploy. Wanneer je dit doet, zal de status veranderen naar Bezig zoals hieronder getoond. Op dit punt haalt de release de broncode op uit de eerder uitgevoerde build-pijplijn en duwt deze naar de Azure WebApp-instantie.

    Deze stap zal een taak starten die op de achtergrond wordt uitgevoerd op een agent die broncode kopieert en de daadwerkelijke release-cyclus uitvoert.

Stage in progress

2. Klik op het stadium terwijl het bezig is. Je zult alle logboekinformatie zien die wordt weergegeven in het console-uitvoergebied.

Job log showing stage in progress

Als het compleet is, zou het stadium Gelukt moeten tonen zoals hieronder te zien is.

Successful stage

Als alles goed is gegaan, zou de release voltooid moeten zijn en zou je nu een web-app moeten hebben gepubliceerd naar een Azure Web App!

Inspecteren van de Gedeployde Azure WebApp

Nu het hele proces is voltooid, zorg ervoor dat je de vruchten van je arbeid bekijkt.

  1. Log in op het Azure Portal, navigeer naar de Azure WebApp die je hebt geselecteerd in de release-pijplijn als doel en kopieer de URL zoals hieronder getoond.
Finding the Azure App Service URL in the Azure portal

2. Plak nu die URL in de browser door de URL van de Azure Web App te verstrekken. Je browser zou nu de e-commerce voorbeeldtoepassing moeten laden, vergelijkbaar met de onderstaande startpagina

The front page of the deployed application

Je hebt het nu helemaal gedaan! Je hebt nu een Azure-webapp geïmplementeerd vanuit een GitHub-repository die volledig geautomatiseerd kan worden!

Opruimen

Als je dit project hebt gevolgd, heb je nu een nieuwe Azure DevOps-organisatie, project, build-pijplijn, release-pijplijn en release. Als je klaar bent met het testen van dingen, zorg er dan voor dat je de oorspronkelijke organisatie die is aangemaakt verwijdert, zodat je geen risico loopt op kosten voor Azure-resources.

Doe het volgende:

  1. Ga terug naar je hoofd-Azure DevOps-werkruimte.
  2. Klik op Organisatie-instellingen in de linkerbenedenhoek.
  3. Op het Overzichtsscherm, klik op de Verwijderen-knop onderaan de pagina onder Organisatie verwijderen.
  4. Type de organisatienaam in en klik vervolgens op Verwijderen. Hiermee zou alle zojuist uitgevoerde werk moeten worden verwijderd.

Jouw leerpunten

Als je de instructies in dit project hebt gevolgd, heb je een volledige CI/CD-pijplijn gemaakt vanaf het begin in Azure DevOps. Je zou nu een goed idee moeten hebben van wat dit proces inhoudt.

Azure Pipelines kunnen veel dieper gaan dan wat je in dit project hebt gedaan, maar je zou nu wat fundamentele kennis moeten hebben van het hele proces.

Source:
https://adamtheautomator.com/azure-pipelines/