Net als vorig jaar is ook dit jaar MSIgnite geheel digitaal. Thursday.cloud organiseerde samen met partners in de Jaarbeurs in Utrecht een Watch Party met sidetalks en gezamenlijk kijken van de Keynote van Ignite. Jona Koudijs, Public Cloud Engineer bij True, was van de partij en geeft je interessante ontwikkelingen mee.
Automatisering van infrastructuur deployment met Infrastructuur als Code
Als het over automatisering van deployments gaat, gaat het vaak over een deployment pijplijn voor infrastructuur en een deployment pijplijn voor de klant-oplossing. Wat als je die twee combineert, in de vorm van automatisering van opzetten of wijzigen van (nieuwe) infrastructuur? Bijvoorbeeld voor software-ontwikkelaars, die bij het onboarden van nieuwe klanten of bij het upgraden van bestaande klanten nieuwe Azure resources nodig kunnen hebben of een wijziging in de configuratie.
Met Infrastructuur als Code (IaC) is het mogelijk om een beschrijvend model te maken van de infrastructuur (zoals netwerken, VM’s en load balancers). IaC genereert dan elke keer dezelfde omgeving, ongeacht in welk deel van de release-pijplijn het zich bevindt. Daarmee is automatisering van opzetten en wijzigen van (nieuwe) infrastructuur mogelijk.
De oplossing die hiervoor tijdens de Watch Party in Utrecht werd toegelicht, is een zelfgebouwde API in Azure Functions. Een software-ontwikkelaar kan die gebruiken om een eindklant toe te voegen (bijvoorbeeld een combinatie van app service en MySQL database).
Het is één centrale API die software-bedrijven vanuit eigen code en automatisering kunnen integreren in de onboarding van hun klanten. De API wordt gehost met Azure Functions en opgezet met Azure DevOps pipelines, om de daadwerkelijke taken (bijvoorbeeld het aanmaken van een Azure resource) uit te voeren. Hoewel het niet voor elke SaaS nuttig is, is het wel een interessante manier van automatisering van infrastructuur.
GitHub Copilot
Afgelopen juli introduceerde GitHub een private preview van GitHub CoPilot. Deze tool is een plugin voor Visual Studio Code, die code suggesties in je IDE editor doet terwijl je programmeert. CoPilot gebruikt daarvoor Machine Learning om te voorspellen waar je heen gaat met je script. Tijdens de Watch Party werd een demo van CoPilot gegeven, met voorbeelden van onder andere if/else statements en for loops. Om GitHub CoPilot zelf te gebruiken, is er een wachtlijst. Meld je hiervoor aan met je GitHub account op copilot.github.com.
Infrastructuur als Code via Pulumi
Pulumi is een nieuwe tool als het gaat om infrastructuur als code. Net als bij Terraform creëer, deploy en beheer je infrastructuur als code in elke cloud. In tegenstelling tot Terraform zet je in Pulumi definities niet in de eigen taal (HCL in Terraform), maar in een bestaande programmeertaal, zoals Python, Go, Javascript, Typescript or C#. Kies een taal waar je al veel kennis van in huis hebt 😉 De flow en output is redelijk te vergelijken met Terraform (zoals plan en apply).
Tijdens de Ignite Watch Party werd er een demo gegeven waarbij Pulumi code direct in TypeScript werd geschreven en uitgevoerd via de Pulumi CLI. Deze code maakt vervolgens een AKS (Azure Kubernetes Service) cluster aan.
Dat maakt Pulumi een interessante tool met oneindige automatiseringmogelijkheden, juist omdat het in bestaande programmeertalen wordt geschreven. Daarnaast maakt Pulumi gebruik van OpenAPI om queries bij het destreffende platform te doen voor opties. Die zijn dan direct beschikbaar om te gebruiken. In veel gevallen is er bij nieuwe features of aanpassingen in de API van het platform geen aanpassing nodig om het in Pulumi beschikbaar te hebben (denk aan een nieuwe dienst, of nieuwe opties bij een resource).