Implementatie Azure-resources via IaC-techniek

Microsoft Azure is een van de toonaangevende clouserviceproviders op de markt wanneer we het hebben over cloudtechnologie. Applicatieontwikkelaars moeten applicaties naar de cloud implementeren. Het handmatig opzetten van de infrastructuur is een tijdrovend proces, of het nu gaat om on-premises of de cloud. De vraag is hoe het proces van het maken van resources eenvoudiger kan worden gemaakt. 

Development
04 november 2020
Martijn van der Put

Het antwoord is: Implementatie van resources via de techniek van Infrastructure as Code (IaC) met behulp van het Azure Resource Manager-sjabloon (ARM). We beginnen met het basisbegrip IaC en wat de voordelen zijn. 


Wat is IaC?

IaC is het proces van het beheren en voorzien van infrastructuur (app-services, databases, etc.) door middel van machine-leesbare configuratiebestanden. IaC is ontwikkeld om problemen van verschillende resources tussen omgevingen op te lossen. Met IaC kunnen gebruikers het machine-leesbare modelbestand maken dat meestal in JSON-formaat opgeslagen wordt, en dit kan vervolgens worden gebruikt om resources in de Cloud te voorzien. 


Voordelen van IaC

  • Snelheid: de snelheid van implementatie. IaC biedt de optie om de volledige infrastructuur op te zetten door een script uit te voeren. Hetzelfde script kan in alle omgevingen gebruikt worden, van ontwikkeling tot productie. De gehele levenscyclus van de software wordt hierdoor sneller. 
  • Consistentie: Het handmatig voorzien van Cloud resources over verschillende regio’s leidt tot menselijke fouten en verschillen tussen omgevingen. IaC elimineert het probleem van fouten door een enkelvoudig waarheidsbronbestand te hebben dat wordt gebruikt voor het voorzien van resources in de Cloud over meerdere omgevingen. Hierdoor worden dezelfde configuraties telkens weer zonder enige verschil geïmplementeerd. 
  • Foutopsporing: Het is gemakkelijker om de fouten op te sporen met de IaC-aanpak, omdat we over een enkelvoudig waarheidsbronbestand beschikken. Wijzigingen in het bestand worden getraceerd met behulp van versiebeheer. 
  • Efficiëntie: Omdat IaC’s generiek zijn en in elke regio gebruikt kunnen worden, is het gemakkelijker om nieuwe resources te creëren op basis van vraag. 
  • Verminderde kosten van kansenverlies: IaC verwijdert de noodzaak om hoogbetaalde professionals in te zetten voor het uitvoeren van taken voor het voorzien van resources in de Cloud.
  • Uitbreidbaar: Net als bij code kunnen IaC-bestanden uitgebreid worden. Op basis van behoefte kan het op elk moment worden aangepast. 

Wat is Azure Resource Manager (ARM)

Binnen het Cloud platform van Microsoft worden IaC’s mogelijk gemaakt met behulp van de Azure Resource Manager (ARM). ARM stelt gebruikers in staat sjablonen van de infrastructuur te maken in JSON-indeling, die de configuratie van het project bevat dat moet worden voorzien. Er zijn 2 manieren om te definiëren hoe IaC werkt: 

  1. De imperatieve benadering: een reeks commando’s die worden gegeven om de uiteindelijke stap van het maken van de infrastructuur te bereiken.
  2. De declaratieve benadering: het gewenste resultaat wordt verklaard in plaats van expliciet te vermelden welke stappen erbij betrokken zijn.

ARM-sjablonen volgen een declaratieve benadering, waardoor gebruikers rechtstreeks kunnen aangeven wat er moet worden geïmplementeerd. 

Praktische implementatie van een ARM-sjabloon

Er zijn meerdere manieren om de ARM-sjablonen te gebruiken voor het maken van resources in het Azure-portal. Een van de technieken is via Visual Studio. Hieronder wordt stapsgewijs uitgelegd hoe het proces van het maken van ARM-sjablonen voor web-apps met behulp van Visual Studio werkt. 

  • Stap 1: maak een nieuw project aan in Visual Studio. 



Kies 'Azure Resource Group' als sjabloon.


  • Stap 2: geef de projectnaam op en klik op de knop ‘Maken’. 


In de volgende stap, kies de categorie: ‘Azure Quickstart’. 


  • Stap 3: In ons geval zullen we een basis web-app kiezen. Klik op 'OK' zodra deze is geselecteerd.


  • Stap 4: zodra je het project hebt aangemaakt, zal het eruitzien zoals hieronder is afgebeeld. Er zijn twee hoofdbestanden die we nodig hebben, één is: azuredeploy.json en de andere is azuredeploy.parameters.json. Onthoud dat azuredeploy.json wordt gebruikt om de resources vast te houden, terwijl azuredeploy.parameters.json wordt gebruikt om de door de gebruiker gedefinieerde parameters vast te houden.


Parameters die zijn gedefinieerd in het bestand azuredeploy.parameters.json kunnen worden gebruikt in het bestand azuredeploy.json.


In het bovenstaande fragment hebben we een variabele genaamd ‘webappName’ gedefinieerd en deze is gebruikt in azuredeploy.json onder de standaardwaarde-eigenschap van de sectie “webAppName”.


Zodra alle vereiste gegevens zijn bewerkt in beide bestanden, klik met de rechtermuisknop op het project en selecteer 'Implementeren' → 'Nieuw'.


Er verschijnt een pop-up met de details van het resource- en parameterbestand. Dit zal worden gebruikt om de resources in het Azure-portal te maken, die op hun beurt zijn gekoppeld aan Visual Studio.

Conclusie

IaC is een krachtige en gemakkelijk te onderhouden techniek die helpt bij het creëren en beheren van resources in Azure. ARM-sjablonen kunnen consequent de benodigde resources in de cloud leveren en helpen ook bij het voorzien van dezelfde resources in andere omgevingen. Dezelfde Arm-sjablonen kunnen worden gebruikt om virtuele machines, Azure Functions en Azure SQL-databases in Azure te maken.


Wil je meer informatie? Neem dan contact op.

Cookies
Deze site gebruikt geanonimiseerde cookies. Klik op "Akkoord" als je akkoord gaat met het gebruik van cookies, of klik op "Aanpassen" om je voorkeuren te bepalen.
Deze site gebruikt geanonimiseerde cookies.