Vad är Azure Pipelines?
Microsoft Azure Pipelines är en molntjänst som du kan använda för att automatiskt skapa, testa och distribuera kodprojektet. Du kan också göra den tillgänglig för andra användare och den fungerar med nästan alla språk eller projekttyper.
Mara ser fram emot att replikera teamets byggprocess i Azure Pipelines. Amita, testaren, har äntligen lite ledig tid och vill komma ikapp. Mara bestämmer sig för att nu är ett bra tillfälle att berätta för henne om sin plan: att konfigurera en automatiserad bygg-pipeline för Space Game-webbplatsen med hjälp av Azure Pipelines.
När hon hör Maras plan är Amita lite tveksam, men eftersom Maras plan är att replikera byggprocessen men inte ersätta den är hon också nyfiken. Hon vet att byggprocessen skulle behöva vissa förbättringar.
Amita: Det låter som en intressant övning, men du måste vilja bevisa en DevOps-poäng!
Mara: Du känner mig redan så väl!
Amita: Vilka förbättringar förväntar du dig att se, särskilt eftersom du kommer att göra det vi redan gör?
Mara: Jag tror att det kommer att ge många fördelar att bara flytta till Azure Pipelines. Kom ihåg att Azure Pipelines är en molntjänst. Vi kan använda den för att automatiskt skapa och testa kod. Och den blir tillgänglig för andra också. Den fungerar med praktiskt taget alla språk och projekttyper.
Vår byggserver har problem, och det är svårt att hålla den uppdaterad. Eftersom Azure Pipelines tillhandahåller byggservrar som Microsoft är värd för och underhåller har det alltid de senaste korrigeringarna och säkerhetsuppdateringarna. Vi behöver inte bry oss om att underhålla byggservrar.
Dessutom har vi alla möjliga typer av skript som skrivits av olika personer. Vi vet inte ens hur vissa av dem fungerar. Azure Pipelines levereras med en katalog med uppgifter. En uppgift är ett paketerat skript eller en procedur som har abstraherats med en uppsättning indata. Jag ska försöka mappa vad våra byggskript gör med dessa uppgifter. Vi kan åtminstone standardisera arbetssättet och öka automationsnivån.
Och Azure Pipelines fungerar med många olika språk och apptyper. Om vi vill expandera i sådana avseenden behöver vi inte byta verktyg.
Jag vet att det är själviskt, men varför bryr jag mig? Ett av mina stora problem är att jag aldrig vet när ett bygge är redo att testas. Ibland kommer någon ihåg att uppdatera kalkylbladet, men många gånger glömmer de. Det verkar som om jag är den sista som får reda på det.
Mara: Rätt, det är något vi enkelt kan fixa. Vi kan konfigurera pipelinen för att meddela dig automatiskt, antingen via e-post eller något annat meddelande, när en version är klar. Du behöver aldrig vänta på att någon ska påminna dig igen.
Amita: Okej, så ditt mål just nu är att skapa appen och meddela mig när den är klar?
Mara: Höger! Sedan har jag förstår större planer. Jag vet att ni alla kommer att älska det här första steget, så jag vill bygga vidare på det för att ge oss sann kontinuerlig integrering.
Amita: Ge mig fem minuters genomgång av kontinuerlig integrering.
Mara: Låt mig rita en bild.
Mara flyttar till whiteboarden och ritar pipelinen.
Mara: Det här är min CI-pipeline. CI är processen att automatisera skapandet och testningen av kod varje gång en teammedlem genomför ändringar i versionskontrollen. Jag vet att vi inte gör automatiserade tester än, men ge det tid.
En pipeline definierar processen för kontinuerlig integrering för appen. Den består av steg som kallas uppgifter . Du kan se det som ett skript som definierar hur dina bygg-, test- och distributionssteg körs. Jag ska försöka mappa våra skript till uppgifter.
Pipelinen körs när du skickar kodändringar . Du kan konfigurera pipelinen så att den körs automatiskt, eller så kan du köra den manuellt. Du ansluter din pipeline till en källlagringsplats som GitHub, Bitbucket eller Subversion. En av våra uppgifter för den här sprinten är att börja använda GitHub, så vi använder GitHub för det här projektet.
En byggagent skapar eller distribuerar koden. När ditt bygge eller din distribution körs påbörjar systemet ett eller fler jobb. En agent är en installerbar programvara som kör ett bygg- eller distributionsjobb i taget. Eftersom vi använder Azure Pipelines kan vi använda en Microsoft-värdbaserad agent. Med Microsoft-värdbaserade agenter tas underhåll och uppgraderingar hand om åt oss. Varje gång vi kör en pipeline får vi en ny virtuell dator. Det finns flera avbildningar av virtuella datorer att välja mellan, inklusive Ubuntu 22.04, vilket är vad vi använder.
Slutprodukten av pipelinen är en byggartefakt . Tänk på en artefakt som den minsta kompilerade enhet som vi behöver för att testa eller distribuera appen. Till exempel kan en artefakt vara:
- En Java- eller .NET-app som paketeras i en .jar - eller .zip-fil .
- Ett C++ eller JavaScript-bibliotek.
- En virtuell dator, ett moln eller en Docker-avbildning.
Då var det klart. Jag vet att vi kan fixa det här.
Amita: Det låter bra. Vi tittar på vad du behöver göra för att få det att fungera och hur lång tid det tar. Du kan ge oss en demonstration.
Mara: Kommer att göra!
Hantera byggagenter
Nu när du och teamet är bekanta med Azure Pipelines ska vi prata lite mer om byggagenter. En byggagent är en del av installerad programvara som kör ett bygg- eller distributionsjobb i taget. Om du vill skapa din kod eller distribuera programvaran behöver du minst en agent. När du lägger till mer kod och personer behöver du så småningom mer än en agent. Det finns två huvudkategorier av agenter.
Microsoft-värdbaserade agenter är agenter som Microsoft hanterar, så underhåll och uppgraderingar tas hand om åt dig. Varje gång du kör en pipeline får du en ny agent för varje jobb i pipelinen. I den här modulen kör du pipelinen på en Microsoft-värdbaserad agent när du väljer Lokal utvecklingsmiljö med hjälp av en Microsoft-värdbaserad agent. Om du vill köra pipelines på en Microsoft-värdbaserad agent måste din organisation ha minst ett parallellt Microsoft-värdjobb. Kontrollera antalet parallella Microsoft-värdjobb för att se till att du har minst ett parallellt Microsoft-värdjobb. Om antalet parallella Microsoft-värdjobb är noll (nya Azure DevOps-organisationer har vanligtvis inga parallella jobb) kan du begära ett kostnadsfritt bidrag. Godkännandeprocessen för det kostnadsfria beviljandet tar vanligtvis två till tre arbetsdagar.
Lokalt installerade agenter är agenter som du hanterar. Du konfigurerar de virtuella datorerna eller containrarna genom att installera agentprogramvaran och önskade verktyg och registrera agenterna med Azure DevOps. I den här modulen använder du en lokalt installerad agent som körs i din GitHub Codespaces-container när du väljer GitHub Codespaces-utvecklingsmiljö. Självvärdering av agenten i en GitHub Codespaces-container är inte ett typiskt produktionsscenario, men det ger en miljö för att slutföra den här utbildningsmodulen.