Azure Bicep: Een introductie tot eenvoudig infrastructuur­beheer

Technologie

Azure Bicep: Een introductie tot eenvoudig infrastructuur­beheer

Het handmatig aanmaken en beheren van infrastructuur via de Azure Portal kent nadelen. Een virtuele machine vereist bijvoorbeeld keuzes over naam, locatie, image, type (grootte), disk(s), netwerkadapter en IP-configuratie. Als je meerdere virtuele machines wilt aanmaken, moet je dit proces voor elke machine herhalen, wat kan leiden tot inconsistenties en fouten, zoals het vergeten of negeren van naamgevingsconventies.

In een teamomgeving kunnen deze problemen zich verergeren. Stel dat jij doorgaans de virtuele machines voor de ontwikkelafdeling aanmaakt, maar je bent op vakantie en een collega moet deze taak overnemen. Hoe weet je collega welke stappen jij volgt? Is dit proces gedocumenteerd? De kans is groot dat je collega een andere naamgeving of configuratie gebruikt bij handmatige uitrol via de Azure Portal. Gelukkig biedt Infrastructure as Code (IaC) een oplossing voor deze problemen.

Binnen Microsoft Azure is er een optie voor het gebruik van IaC, namelijk Azure Bicep. Met Bicep kun je je infrastructuurconfiguraties als code vastleggen, wat zorgt voor herhaalbaarheid en consistentie. Hierdoor kunnen teamleden gemakkelijk dezelfde configuraties toepassen zonder de risico's van handmatige fouten en variaties. Bicep integreert naadloos met Azure Resource Manager, waardoor je infrastructuur automatisch en efficiënt kan worden uitgerold en beheerd.

Wat is Infrastructure as Code (IaC)?

Infrastructure as Code (IaC) is een DevOps methode waarbij infrastructuurcomponenten zoals netwerken, apps, containers, databases en opslag worden beheerd via beschrijvende modellen. Met IaC kunnen teams sneller en met meer vertrouwen wijzigingen ontwikkelen en implementeren. De infrastructuur wordt in code gedefinieerd, die deel uitmaakt van het project. Net als bij broncode wordt deze infrastructuurcode opgeslagen in een versiebeheersysteem, waardoor iedereen in het team de code kan uitvoeren en vergelijkbare omgevingen kan uitrollen. 

Voordelen van IaC:

  • Meer vertrouwen in implementaties: Consistente en reproduceerbare configuraties verminderen de kans op fouten.
  • Consistent en geautomatiseerd uitrollen: Automatisering zorgt voor een gestandaardiseerde en efficiënte implementatie van infrastructuur.
  • Vastleggen van naamgevingsconventies: Conventies kunnen direct in de code worden vastgelegd, wat consistentie bevordert.
  • Beheren van meerdere omgevingen: Met dezelfde code en omgeving specifieke parameters kunnen ontwikkel-, test- en productieomgevingen eenvoudig worden beheerd.
  • Cross-platform: Het is eenvoudig om van cloud-platform wisselen.
  • Integratie met versiebeheersystemen en tooling: Vergemakkelijkt samenwerking en tracking van wijzigingen.

 

Azure ondersteunt al lange tijd de mogelijkheid om infrastructuur als code uit te rollen met ARM-templates, die door de Azure Resource Manager worden geïnterpreteerd en in JSON-formaat zijn geschreven.

Bicep2

Wat is Bicep?

Bicep is een domein specifieke taal (DSL) die is ontworpen door Microsoft voor het implementeren van infrastructuur op Azure. Het biedt een eenvoudigere syntax en meer gebruiksgemak dan de traditionele ARM-templates die in JSON zijn geschreven. Bicep-bestanden worden tijdens de implementatie automatisch omgezet in ARM-templates.

Bicep kan helaas niet cross-platform worden ingezet, wat met gebruik van bijvoorbeeld Terraform wel mogelijk is.

Voordelen van Bicep

1. Eenvoudige syntax:

Bicep is veel leesbaarder en eenvoudiger te schrijven dan ARM-templates in JSON. Dit maakt het toegankelijker voor zowel beginners als ervaren gebruikers. De hoeveelheid code die nodig is om infrastructuur te definiëren is aanzienlijk minder.

2. Uitstekende ondersteuning in VSCode:

Met de Visual Studio Code-extensie voor Bicep krijg je toegang tot functies zoals autocompletion, syntaxvalidatie, en visualisatie van de resources die je Bicep-bestand zal creëren. Dit maakt het ontwikkelen en beheren van je infrastructuurcode efficiënter en gebruiksvriendelijker.
Je kunt in Visual Studio Code ook Copilot inzetten om de infrastructuur te genereren.

3. Schaalbaarheid:

Bicep maakt gebruik van loops en variabelen, wat betekent dat je met minder code grote hoeveelheden infrastructuur kunt beheren en implementeren. In ARM-templates moest je vaak dezelfde codeblokjes herhalen met unieke waarden, wat in Bicep niet nodig is.


4. Indeling en afhankelijkheden:

De volgorde van resources in je Bicep-bestand is niet van groot belang omdat Azure Resource Manager (ARM) de resources organiseert op basis van hun afhankelijkheden. Onafhankelijke resources kunnen parallel worden uitgerold, wat de implementatietijd kan verkorten.

5. Modulariteit:

Bicep ondersteunt het gebruik van modules, waardoor je herbruikbare stukken code kunt creëren voor soortgelijke resources. Deze modules kunnen vanuit je hoofd Bicep-bestand worden aangeroepen, wat het onderhoud van je infrastructuurcode vereenvoudigt en de kans op fouten vermindert.

6. Open Source:

Bicep is open source, wat betekent dat de community kan bijdragen aan de ontwikkeling en verbetering van de taal. De broncode is beschikbaar op GitHub, waar iedereen suggesties kan doen en wijzigingen kan voorstellen.

Waarom Bicep gebruiken?

Het gebruik van Bicep voor het uitrollen van infrastructuur in Azure biedt verschillende voordelen ten opzichte van handmatige configuratie via de Azure Portal en zelfs ten opzichte van ARM-templates:

  • Consistentie en betrouwbaarheid: Door je infrastructuur als code te definiëren, kun je herhaalbare en betrouwbare implementaties garanderen. Dit vermindert de kans op menselijke fouten en inconsistenties.
  • Automatisering: Bicep maakt het mogelijk om je infrastructuur geautomatiseerd uit te rollen, wat tijd bespaart en het beheer van je omgevingen vereenvoudigt.
  •        Samenwerking: Omdat Bicep-bestanden opgeslagen kunnen worden in een versiebeheersysteem zoals Git, kunnen teams beter samenwerken en wijzigingen in de infrastructuur bijhouden en reviewen.
  • Schaalbaarheid: Bicep maakt het eenvoudig om complexe en grootschalige infrastructuren te beheren met relatief weinig code, dankzij de ondersteuning voor loops, variabelen en modules.

Kortom, Bicep biedt een krachtige en gebruiksvriendelijke manier om infrastructuur in Azure te beheren en uit te rollen, met tal van voordelen ten opzichte van traditionele methoden en tools. Het vereenvoudigt niet alleen het proces, maar verhoogt ook de efficiëntie en betrouwbaarheid van je infrastructuurimplementaties.

Rlxgaransys 2 0057 Michiel

Meer weten? Neem contact op!

Michiel Leenaers

Business Development
0614688177
m.leenaers@garansys.nl