Terug naar Deployment & DevOps

Deployment & DevOps

Infrastructure as Code

Azure-omgevingen beschreven in code, gereviewd in pull requests en telkens op dezelfde manier uitgerold

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

Parameterbestand:
main.bicep

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 resources

Illustratief voorbeeld

Eén Bicep-template beschrijft de omgeving. De pipeline toont de wijziging vooraf met what-if en rolt ze daarna uit; wissel van parameterbestand om Test of Productie met hetzelfde template op te zetten.

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

Klaar om uw softwarelevering te versnellen?

Laten we bespreken hoe DevOps-werkwijzen en automatisering uw organisatie kunnen helpen om sneller, betrouwbaarder en met meer vertrouwen op te leveren.