Deploy jij Azure resources nog steeds handmatig via de Azure Portal?
Dat is de simpelste manier om te starten:maar is het ook de beste?
Wat begint als een snelle setup verandert vaak in inconsistenties tussen omgevingen, samen met ongedocumenteerde wijzigingen en fouten die moeilijk te traceren zijn. Replicatie is niet mogelijk en het vertraagt je als projecten groeien.
De oplossing?Gebruik Infrastructure as Code (IaC) in Azure.
Auteur
Niels Kroeze
Leestijd 10 minutenGepubliceerd: 04 juli 2025
In dit artikel lees je alles wat je moet weten over IaC in Azure, waaronder:
10 Best Practices om te starten (automatisering, setup tips en meer)
Wat is Infrastructure as Code (IaC)?
Infrastructure as Code (IaC) betekent dat je cloud infrastructuur beheert en deployed via code in plaats van handmatig klikken. Je regelt je compute infrastructuur via bestanden die leesbaar zijn voor machines én bruikbaar voor mensen.
Populaire tools voor IaC zijn Azure Bicep, Azure Resource Manager (ARM) templates, Terraform en meer (hier komen we zo op terug).
Met IaC kunnen developers en admins automatiseren hoe resources worden aangemaakt, aangepast en gemonitord. Geen handmatige provisioning meer, dus snellere en betrouwbaardere deployments over al je omgevingen.
“IaC houdt in dat code wordt gebruikt om de infrastructuur te definiëren die moet worden ingezet in een descriptief model, vergelijkbaar met hoe code applicaties definieert.”
Je beschrijft je Azure infrastructuur (denk aan virtuele machines, netwerken en storage) in templates. Maar het gaat verder dan alleen IaaS: je kunt bijna alles automatiseren in Azure.
“If you've run out of backups or your backups don't work... having infrastructure as code means you can rebuild that environment super quickly”.
Simon Lee - Azure Expert & Consultant
Voordelen van Infrastructure as Code (IaC)
IaC betekent dat je compute infrastructuur beheert via definities in code – in plaats van fysiek klikken of tools gebruiken met een UI.
De voordelen:
Consistentie: Deployments zijn altijd gelijk, ongeacht omgeving.
Versiebeheer: Tools zoals Bicep en Terraform geven je controle via Git. Je ziet alle aanpassingen, kunt terugrollen en samenwerken terwijl je een historie van je infrastructuur opbouwt.
Snellere deployments: Minder downtime en sneller herstel bij problemen.
Herbruikbaarheid: Of het nou test, dev of productie is: je draait overal dezelfde configuratie.
Schaalbaarheid: Templates maken het makkelijk om op te schalen – betrouwbaar en herhaalbaar.
Automatisering: IaC regelt alles – van provisioning tot teardown – automatisch. Minder fouten, snellere uitrol, hogere efficiëntie.
Infrastructure as Code en Disaster Recovery (DR)
Wat als je geen werkende backups meer hebt? Als je alles opnieuw moet opbouwen – servers, software – dan ben je wel even bezig…
Maar met Infrastructure as Code kun je je hele omgeving snel opnieuw opbouwen. Super belangrijk als je snel weer up-and-running moet zijn.
Wil je meer leren over Infrastructure as Code (IaC) in Azure?
Lees onze nieuwste whitepaper over IaC in Azure, meester Azure Bicep, Azure Verified Modules (AVM) en meer!
We beantwoorden die vraag door te kijken naar hoe een typische workflow eruitziet bij het bouwen van Infrastructure as Code in Microsoft Azure:
Een developer of operator schrijft eerst de infrastructuurdefinitie in code – met tools zoals Azure Bicep, ARM templates, Terraform (of een andere tool).
Die code wordt gecommit naar een Git-repository.
Daarna wordt de wijziging gereviewd en gevalideerd – om te checken of het geen kwaadaardige code bevat en doet wat het moet doen.
Na goedkeuring wordt de wijziging gemerged en gaat het door een CI/CD pipeline.
Die pipeline bestaat meestal uit een build fase (met tests en checks) en een release fase.
In de release fase worden de resources daadwerkelijk aangemaakt in Azure.
Laten we er wat verder op inzoomen, beginnend bij de build fase.
Build fase
In de build pipeline schrijven developers code en tests. Die worden verpakt in een artefact dat je kunt deployen in meerdere omgevingen.
De pipeline doet syntax checks en scant op secrets, credentials, misconfiguraties en kwetsbaarheden.
Als er iets mis is, faalt de pipeline meteen. Zo voorkom je dat onveilige assets doorgaan naar de release fase.
Release fase
In de release fase verbindt de pipeline met Azure via een service principal of managed identity. Secrets (zoals wachtwoorden, keys, certificaten, connection strings) worden opgehaald uit Azure Key Vault. Je slaat secrets dus niet meer op in files, maar veilig in Key Vault.
De meeste IaC tools werken goed samen met Key Vault. De pipeline haalt de secrets op tijdens runtime, zonder dat developers zelf toegang hebben. Daardoor verklein je de kans dat secrets worden misbruikt of per ongeluk gelekt.
Daarna voert de IaC tool de deployment commando’s uit en past de configuratie toe op de Azure omgeving. Azure vergelijkt de gewenste staat uit je code met de huidige infrastructuur.
Als er verschillen zijn, onderneemt de tool actie – hij maakt ontbrekende resources aan, past bestaande aan, of verwijdert wat niet meer nodig is. Zo blijft je omgeving altijd overeenkomen met wat er in de code staat.
Gratis Infrastructure Scan
Problemen met de infrastructuur blijven vaak onopgemerkt... tot het te laat is. Handel nu om kostbare verstoringen, schaalproblemen of systeemstoringen te voorkomen. Optimaliseer je Azure infrastructuur nu om dure reparaties later te voorkomen!
Het is een domain-specific language (DSL) die het makkelijker maakt om ARM templates te schrijven. Bicep is declaratief – je geeft aan wat je wilt, en Azure regelt de rest.
Het is veel leesbaarder en eenvoudiger dan ruwe JSON-templates zoals ARM. Bicep past perfect in het Microsoft ecosysteem.
Azure Resource Manager (ARM) Templates
Azure Resource Manager (ARM) templates zijn JSON-bestanden waarmee je Azure resources declaratief beschrijft. Ze zijn diep geïntegreerd met Azure, maar vrij complex om met de hand te schrijven of te onderhouden.
Daarom is Bicep ontwikkeld – als abstractielaag boven ARM templates, zodat het gebruiksgemak toeneemt.
Terraform is cloud-agnostisch. Je kunt er infrastructuur mee deployen over meerdere providers, niet alleen Azure. Net als Bicep is het declaratief. De taal die je gebruikt is HashiCorp Configuration Language (HCL) en is makkelijk te leren.
Werk je in een multi-cloud omgeving of wil je dat later gaan doen? Dan is Terraform een sterke optie.
Voor sommige features heb je wel een licentie nodig. In dat geval is OpenTofu ook interessant: een open-source alternatief dat onder de Linux Foundation valt.
Onderstaand voorbeeld laat zien hoe je een storage account aanmaakt met Terraform.
In tegenstelling tot Bicep en Terraform laat Pulumi je infrastructuur schrijven in gewone programmeertalen zoals Python, TypeScript of C#. Handig voor developers die liever imperatief programmeren.
Pulumi geeft je veel flexibiliteit, maar vereist wel wat meer programmeerkennis.
Hieronder een voorbeeld van een storage account deployment met Pulumi (TypeScript).
Er zijn veel tools die je kunt gebruiken. Maar stel jezelf (en je team) eerst deze vragen:
Hebben jullie al ervaring met een specifieke IaC tool?
Welke programmeerskills zijn er in het team? (C#, Go, JSON, TypeScript – of geen?)
Welke cloud provider gebruik je? Oftewel: waar deploy je je resources?
Hoe ziet jullie deploymentproces eruit?
Wat zijn de eisen binnen de organisatie? Zijn er compliance verplichtingen?
Heb je een imperatieve of declaratieve aanpak nodig?
Wie beheert de IaC templates en waar worden die opgeslagen?
Beheer je ook configuratie of alleen provisioning?
Gebeuren er aanpassingen buiten de templates om?
Check welke talen je omgeving ondersteunt
Voordat je een IaC-taal kiest, check eerst wat er in je omgeving ondersteund wordt.
Hoe je dat aanpakt:
Check de officiële documentatie: Cloud providers updaten hun docs met ondersteunde tools. Azure ondersteunt bijvoorbeeld Bicep, Terraform, Pulumi en ARM templates.
Bekijk policy en compliance eisen: Sommige organisaties eisen specifieke tools om security en governance te borgen.
Kijk naar je huidige setup: Gebruikt je team al Terraform of ARM? Dan is het logisch om daarbij aan te sluiten.
Probeer het uit in een testomgeving: Doe een simpele deployment met verschillende tools en kijk wat het beste werkt.
Kies de juiste taal
Je keuze hangt af van je cloud provider, werkomgeving en voorkeur. De juiste taal kiezen is stap één – het bepaalt hoe je werkt en hoe schaalbaar je setup wordt.
Dus eerst: check wat je omgeving ondersteunt. Dan kun je kiezen wat het beste past bij jouw situatie.
Kies op basis van je cloudprovider, organisatiebehoeften en voorkeur. Zoek uit hoe je ermee start en maak de overstap zo soepel mogelijk.
10 Azure IaC Best Practices
Beginnen lijkt misschien veel, maar als je het stap voor stap aanpakt valt het mee. Hier zijn 10 tips om goed van start te gaan:
1. Richt je ontwikkelomgeving in
Installeer de tools en CLI voor je gekozen IaC-taal.
Zorg dat je toegang hebt tot een Azure subscription.
Gebruik de PowerShell Terminal in VS Code om scripts te runnen en direct te deployen.
2. Leer via officiële bronnen
Microsoft heeft goede Bicep modules op Microsoft Learn. Voor Terraform en Pulumi is er ook uitgebreide documentatie en labs.
3. Begin met een simpele deployment
Begin met kleine resources, zoals een storage account.
Test je scripts eerst in een sandbox omgeving.
Gebruik parameters en modulaire opbouw. Check ook Azure Verified Modules – die werken met Bicep en Terraform.
4. Gebruik version control
Sla je IaC bestanden op in GitHub, Azure DevOps of een andere Git-repo. Zo hou je een wijzigingsgeschiedenis bij en kun je terugrollen bij fouten. Ook kun je een 4-ogen principe afdwingen.
5. Test en valideer
Test je scripts regelmatig. Check of ze doen wat ze moeten doen vóór je ze in productie zet – dat voorkomt problemen.
6. Voorkom configuration drift
Laat alle changes via CI/CD gaan. Geen directe toegang tot resources. Zo blijft je code altijd de bron van waarheid en blijven je omgevingen consistent.
Automatisering voorkomt handwerk, fouten en versnelt je processen. Gebruik CI/CD pipelines zoals Azure DevOps of GitHub Actions voor alle omgevingen (dev, test, staging, prod).
8. Gebruik parameters in je templates
Gebruik 1 template voor alle omgevingen en pas alleen de input parameters aan (zoals regio, schaal, SKU’s). Dat houdt alles consistent en voorkomt afwijkingen.
9. Beperk toegang tot productie
Als mensen handmatig dingen aanpassen in productie, kan je IaC stuk gaan – vooral bij scripts die uitgaan van een bekende staat. Beperk dus schrijfrechten tot het minimum.
Gebruik een break glass account: Alleen voor echte noodgevallen. Staat veilig opgeslagen en wordt alleen onder strikte voorwaarden gebruikt.
10. Beheer secrets op de juiste plek
Stop nooit hardcoded secrets in je code. Gebruik Azure Key Vault om ze veilig en centraal op te slaan.
Conclusie
Met Infrastructure as Code beheer je je cloud resources efficiënter en veiliger. Door alles te automatiseren via code krijg je controle, snelheid én een solide basis voor disaster recovery.
Meer hulp nodig bij het kiezen/implementeren van de juiste IAC-tool?
Laten we onze handen ineenslaan en je applicatie naar een hoger niveau tillen.