Infrastructure as Code (IaC)
Beheer infrastructuur via code en versiebeheer. Infrastructuurdefinities worden geversioneerd, gereviewd en uitgerold zoals applicatiecode. Zo krijgt u reproduceerbare omgevingen en minder configuratiedrift.
Van template tot resource group
param env string
param planSku string
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = { … }
resource st 'Microsoft.Storage/storageAccounts@2023-05-01' = { … }
resource sb 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' = { … }
resource plan 'Microsoft.Web/serverfarms@2023-12-01' = { … }
resource func 'Microsoft.Web/sites@2023-12-01' = { … }
resource appi 'Microsoft.Insights/components@2020-02-02' = { … }
$ az deployment group what-if -g rg-crx-prod-weu -p prod.bicepparam
Resource changes: 6 to create.
rg-crx-prod-weu
0/6 resourcesIllustratief voorbeeld
De juiste tool kiezen
Alle drie zijn volwassen opties. De juiste keuze hangt af van uw cloudlandschap en van de kennis die al in het team aanwezig is.
Bicep
De taal van Microsoft voor Azure Resource Manager. Beknopte syntax, ondersteuning voor nieuwe Azure-functies vanaf dag één en geen state-bestand om te beheren, omdat Azure zelf de bron van waarheid is. Onze standaardkeuze voor omgevingen die volledig op Azure draaien.
Terraform
Een multicloudtool met een groot ecosysteem van providers. Terraform houdt een state-bestand bij dat veilig bewaard moet worden, bijvoorbeeld in een Azure Storage-account met locking. Een goede keuze als u ook andere clouds of diensten zoals GitHub via code beheert.
ARM-templates
Het JSON-formaat waarnaar Bicep compileert. Nog steeds volledig ondersteund, maar omslachtig; bestaande templates kunnen naar Bicep gedecompileerd worden als vertrekpunt voor een migratie.
Werkwijzen die infrastructuurcode onderhoudbaar houden
- Modules. Herbruikbare bouwstenen voor veelvoorkomende patronen, zoals een function app met bijhorende storage, monitoring en identiteit.
- Eén template, meerdere omgevingen. Verschillen tussen Dev, Test en Productie zitten in parameterbestanden, niet in kopieën van het template.
- Elke wijziging vooraf bekijken. Voer what-if (Bicep) of plan (Terraform) uit in de pull request, zodat reviewers precies zien wat aangemaakt, gewijzigd of verwijderd wordt.
- Geen manuele wijzigingen in de portal. Aanpassingen in de portal veroorzaken drift. Wijzigingen verlopen via code, en geplande what-if-runs brengen drift vroeg aan het licht.
- Vangrails met Azure Policy. Policies dwingen naamgeving, toegelaten regio's, tags en securitybaselines af, wie er ook uitrolt.
- Identiteiten in plaats van secrets. Managed identities en Key Vault-verwijzingen houden connection strings en sleutels uit de templates.
En Dynamics 365 en Dataverse?
Solutions van Dynamics 365 en Power Platform worden niet met Bicep of Terraform uitgerold: ze reizen via een eigen pipeline. Omgevingen, DLP-beleid en tenantinstellingen kunt u wel als code beheren met de Power Platform-provider voor Terraform. De Azure-resources errond, zoals Functions, Service Bus en Key Vault, passen perfect in infrastructure as code, en beide pipelines kunnen naast elkaar draaien.
Bekijk ALM & CI/CD voor Dynamics 365