Wat is Azure Pipelines?
Microsoft Azure Pipelines is een cloudservice die u kunt gebruiken om uw codeproject automatisch te bouwen, testen en implementeren. U kunt het ook beschikbaar maken voor andere gebruikers en het werkt met vrij veel taal of projecttype.
Mara is enthousiast over het repliceren van het buildproces van het team in Azure Pipelines. Amita, de tester, heeft eindelijk wat vrije tijd en wil inhaalen. Mara besluit dat het nu een goed moment is om haar te vertellen over haar plan: een geautomatiseerde build-pijplijn instellen voor de Space Game-website met behulp van Azure Pipelines.
Wanneer ze Het plan van Mara hoort, is Amita een beetje aarzelend, maar omdat Mara's plan is om het bouwproces te repliceren, maar niet te vervangen, is ze ook nieuwsgierig. Ze weet dat het buildproces enkele verbeteringen kan gebruiken.
Amita: Het klinkt als een interessante oefening, maar u moet een DevOps-punt bewijzen!
Mara: Je kent me al zo goed!
Amita: Welke verbeteringen verwacht u te zien, vooral omdat u gaat doen wat we al doen?
Mara: Ik denk dat het overstappen naar Azure Pipelines veel voordelen oplevert. Azure Pipelines is een cloudservice. We kunnen deze gebruiken om automatisch code te bouwen en te testen. En het is ook beschikbaar voor anderen. Het werkt met vrijwel elke taal en elk projecttype.
Onze buildserver heeft problemen en zelfs het up-to-date houden is moeilijk. Omdat Azure Pipelines buildservers biedt die Door Microsoft worden gehost en onderhouden, heeft het altijd de nieuwste patches en beveiligingsupdates. We hoeven ons geen zorgen te maken over het onderhouden van buildservers.
Daarnaast hebben we allerlei scripts geschreven door verschillende personen. We begrijpen niet eens hoe sommige van hen werken. Azure Pipelines wordt geleverd met een catalogus met taken. Een taak is een verpakt script of een procedure die is geabstraheerd met een set invoer. Ik ga proberen toe te wijzen wat onze buildscripts met deze taken doen. We kunnen tenminste standaardiseren hoe dingen worden gedaan en het automatiseringsniveau verhogen.
En Azure Pipelines werkt met veel verschillende talen en app-typen. Als we in die richtingen willen uitbreiden, hoeven we niet opnieuw te krukken.
Amita: Ik weet dat het egoïstisch is, maar waarom kan het me schelen? Een van mijn grote problemen is dat ik nooit weet wanneer een build klaar is om te testen. Soms herinnert iemand zich om het werkblad bij te werken, maar vaak vergeten ze het. Het lijkt erop dat ik de laatste persoon ben die ik ken.
Mara: Juist, dat is iets wat we gemakkelijk kunnen oplossen. We kunnen de pijplijn zo instellen dat u automatisch via e-mail of een andere melding wordt gewaarschuwd wanneer een build gereed is. Je hoeft nooit meer te wachten tot iemand je eraan herinnert.
Amita: Oké, dus uw doel is nu om de app te bouwen en mij te laten weten wanneer deze klaar is?
Mara: Juist! Natuurlijk heb ik grotere plannen. Ik weet dat je allemaal van deze eerste stap houdt, dus ik wil erop bouwen om ons echte continue integratie te geven.
Amita: Geef me de rundown van vijf minuten voor continue integratie.
Mara: Laat me je een foto tekenen.
Mara gaat naar het whiteboard en tekent de pijplijn.
Schermopname van een met de hand getekende afbeelding van een CI-pijplijn. De fasen Build, Test en Verify werken op code. Het build-artefact is de uitvoer.
Mara: Dit is mijn CI-pijplijn. CI is het proces voor het automatiseren van het bouwen en testen van code telkens wanneer een teamlid wijzigingen doorvoert in versiebeheer. Ik weet dat we nog geen geautomatiseerde tests uitvoeren, maar het tijd geven.
Een pijplijn definieert het continue integratieproces voor de app. Het bestaat uit stappen die taken worden genoemd. U kunt het beschouwen als een script dat definieert hoe uw build-, test- en implementatiestappen worden uitgevoerd. Ik probeer onze scripts toe te wijzen aan taken.
De pijplijn wordt uitgevoerd wanneer u codewijzigingen verzendt. U kunt de pijplijn zo configureren dat deze automatisch wordt uitgevoerd of u kunt deze handmatig uitvoeren. U verbindt uw pijplijn met een bronopslagplaats, zoals GitHub, Bitbucket of Subversion. Een van onze taken voor deze sprint is om GitHub te gaan gebruiken, dus we gebruiken GitHub voor dit project.
Een buildagent bouwt of implementeert de code. Wanneer uw build of implementatie wordt uitgevoerd, begint het systeem een of meer taken. Een agent is een installeerbare software die één build- of implementatietaak tegelijk uitvoert. Omdat we Azure Pipelines gebruiken, kunnen we een door Microsoft gehoste agent gebruiken. Met door Microsoft gehoste agents worden onderhoud en upgrades voor ons geregeld. Telkens wanneer we een pijplijn uitvoeren, krijgen we een nieuwe virtuele machine. Er zijn verschillende installatiekopieën van virtuele machines waaruit u kunt kiezen, waaronder Ubuntu 22.04, wat we gebruiken.
Het eindproduct van de pijplijn is een buildartefact . U kunt een artefact beschouwen als de kleinste gecompileerde eenheid die we nodig hebben om de app te testen of te implementeren. Een artefact kan bijvoorbeeld het volgende zijn:
- Een Java- of .NET-app die is verpakt in een .jar - of .zip-bestand .
- Een C++ of JavaScript-bibliotheek.
- Een virtuele machine, cloud of Docker-installatiekopieën.
En dat is alles. Ik weet dat we dit kunnen doen.
Amita: Het klinkt geweldig. Laten we eens kijken wat u moet doen om het te laten werken en hoe lang het duurt. Je kunt ons allemaal een demo geven.
Mara: Will do!
Buildagents beheren
Nu u en het team bekend zijn met Azure Pipelines, gaan we wat meer praten over buildagents. Een buildagent is een stukje installeerbare software waarmee één build- of implementatietaak tegelijk wordt uitgevoerd. Als u uw code wilt bouwen of uw software wilt implementeren, hebt u ten minste één agent nodig. Wanneer u meer code en personen toevoegt, hebt u uiteindelijk meer dan één agent nodig. Er zijn twee hoofdcategorieën van agents.
Door Microsoft gehoste agents zijn agents die Door Microsoft worden beheerd, dus onderhoud en upgrades worden voor u geregeld. Telkens wanneer u een pijplijn uitvoert, krijgt u een nieuwe agent voor elke taak in de pijplijn. Wanneer u in deze module lokale ontwikkelomgeving kiest met behulp van een door Microsoft gehoste agent, voert u uw pijplijn uit op een door Microsoft gehoste agent. Als u pijplijnen wilt uitvoeren op een door Microsoft gehoste agent, moet uw organisatie ten minste één door Microsoft gehoste parallelle taak hebben. Controleer het aantal door Microsoft gehoste parallelle taken om ervoor te zorgen dat u ten minste één door Microsoft gehoste parallelle taak hebt. Als het aantal door Microsoft gehoste parallelle taken nul is (nieuwe Azure DevOps-organisaties hebben doorgaans nul parallelle taken), kunt u een gratis toekenning aanvragen. Het goedkeuringsproces voor de gratis toekenning duurt doorgaans twee tot drie werkdagen.
Zelf-hostende agents zijn agents die u beheert. U configureert de virtuele machines of containers door de agentsoftware en gewenste hulpprogramma's te installeren en de agents te registreren bij Azure DevOps. Wanneer u in deze module GitHub Codespaces-ontwikkelomgeving kiest met behulp van een zelf-hostende agent, gebruikt u een zelf-hostende agent die wordt uitgevoerd in uw GitHub Codespaces-container. De agent zelf hosten op een GitHub Codespaces-container is geen typisch productiescenario, maar biedt wel een omgeving voor het voltooien van deze trainingsmodule.