BlogInfrastructure-as-Code mit Azure Bizep statt ARM

Infrastructure-as-Code mit Azure Bizep statt ARM

Infrastructure-as-Code mit Azure Bizep

Nachdem wir uns in drei Beiträgen mit der Möglichkeit befasst haben, Ressourcen in Azure automatisiert mit Hilfe deklarativer Vorlagen nach dem „Infrastructure-as-Code“-Prinzip mit Hilfe von Azure-Resource-Manager-Templates bereitzustellen, werfen wir jetzt einen Blick auf die Descripting Language Bizep an. Die Sprache ermöglicht laut Microsoft ein im Vergleich zu ARM-Templates deutlich einfacheres Vorgehen beim Erstellen von Vorlagen.

Mit Bicep stellt Microsoft eine weitere so genannte domänenspezifische Sprache (DSL) zur Verfügung, welche eine deklarative Syntax zum Bereitstellen von Azure-Ressourcen verwendet, ähnlich wie das auch Azure Resource Manager Vorlagen (ARM-Templates) tun. So definierst du auch in einer Bicep-Datei die Infrastruktur, die du in Azure bereitstellen möchtest und kannst diese formal in JSON verpackte Datei dann nicht nur zur initialen Bereitstellung deiner Infrastruktur, sondern über den gesamten Entwicklungslebenszyklus hinweg verwenden, auch um deine Infrastruktur beispielsweise wiederholt implementieren zu können. Soweit also kein prinzipiell nennenswerter Unterschied zu ARM-Templates.

Laut Microsoft stellt Bicep aber mit seiner sehr präzisen Syntax, der zuverlässigen Typsicherheit und der Wiederverwendbarkeit von Code das im Vergleich zu ARM-Templates bessere Toolset zum Erstellen von Infrastructure-as-Code-Lösungen dar und benennt dazu eine Reihe von Vorteilen.

Vorteile von Bizep

So unterstützt Bizep sämtliche Ressourcentypen und API-Versionen, auch alle Vorschau- und allgemein verfügbaren Versionen für Azure-Dienste direkt. Sobald ein bestimmter Ressourcenanbieter neue Ressourcentypen und API-Versionen einführt, lassen sich diese in einer Bicep-Datei benutzen.

Im direkten Vergleich mit einem ARM-Template sind Bicep-Dateien präziser und einfacher lesbar. Dazu sind laut Microsoft keinerlei Vorkenntnisse ĂĽber Programmiersprachen notwendig. Erstellst du deine Bicep-Dateien zudem mit Hilfe von VS Code, profitierst du von zahlreichen nĂĽtzlichen Funktionen, weil VS Code umfassende Typsicherheit, IntelliSense und Syntaxvalidierung mitbringt. NatĂĽrlich kannst du auch Bizep-Projekte modular aufsetzen und ihre Bereitstellung mit Hilfe von Modulen in kleinere verwaltbare Teile runterbrechen. Module ermöglichen das Wiederverwenden von Code, was letztendlich die Entwicklung vereinfacht. Bicep ist zudem bestens in zahlreiche in Azure-Diensten wie Azure Policy, Vorlagenspezifikationen oder Azure Blueprints integriert. Ein weiterer Vorteil ist, dass du keinen Status oder irgendwelche Statusdateien verwalten musst, weil sämtliche Statusänderungen direkt in Azure gespeichert werden. So können auch mehrere Benutzer zusammenarbeiten und sich immer darauf verlassen, dass ihre Updates wie erwartet verarbeitet werden. Dabei können sie mit Hilfe eines Was-wäre-wenn-Vorgangs auch vor der eigentlichen Bereitstellung der Vorlage jederzeit eine Vorschau der zu erwartenden Ă„nderungen anzeigen. Bizep ist vollständig quelloffen und damit kostenlos. Es gibt auch keinerlei Premium-Features und trotzdem wird Bicep vollumfänglich vom Microsoft-Support unterstĂĽtzt.

Arbeiten mit Bizep

Um möglichst effizient mit Bizep arbeiten zu können solltest du dafür sorgen, dass deine Umgebung für das Entwickeln und Bereitstellung von Bicep-Dateien geeignet ist. Am besten eignet sich dazu Visual Studio Code mit der Bicep-Erweiterung für Visual Studio Code. Diese bietet neben der prinzipiellen Sprachunterstützung automatische Vervollständigung für Ressourcen.

Suche dazu einfach in den VS Code Extension nach „Bicep“ und klicke auf „Installieren“.

Das Installieren der VS Code Ereiterung fĂĽr Bicep.

Hast du deine Entwicklungsumgebung eingerichtet, kannst und musst du die Bicep CLI fĂĽr deine Bereitstellungsumgebung installieren, wahlweise fĂĽr Azure CLI oder Azure PowerShell. Die Schritte unterscheiden sich, sind aber in der Azure-Dokumentation gut erläutert. Bei der Azure-CLI brauchst du mindestens die Version 2.20.0, was du mittels

az --version

leicht ĂĽberprĂĽfen kannst. Installieren kannst du die Bicep-CLI dann einfach mit:

az bicep install

oder

az bicep update

zum Aktualisieren einer bestehenden Version.

Arbeiten mit VS Code

Zurück zu VS Code. Hast du die Erweiterung für Bicep installiert kannst du eine neue Datei mit der Erweiterung „.bicep“ anlegen. Jetzt kannst du einfach zum „resources“-Abschnitt wechseln „res.:“ tippen und dir dann anhand der Autovervollständigung die zu erstellenden Azure-Ressource aussuchen, z. B. res-storage.

Die Autovervollständigung in VS Code hilft beim Erstellen von Bicep-Dateien.

Bicep erstellt dann den erforderlichen Rumpf:

Die Bereitstellungsvorlage fĂĽr ein Speicherkonto in Bicep.

Jetzt fehlt dir nur noch die zugehörigen Parameter-Definitionen. Dazu fügst du am Anfang des Dokuments den Abschnitt

param name

gefolgt von einem Leerzeichen ein, damit die Autovervollständigung die verfügbaren Typen anbietet, z. B. „string“.

Mit “param“… leiten Sie die Definition von Parametern ein.

Das Ergebnis könnte dann so aussehen:

Die Bereitstellungsvorlage um einen Parameter erweitert.

Fehlt noch die Location. Diese kannst du entweder als eigenen Parameter definieren wie auch den Namen des Speicherkontos, oder du fĂĽgst im Resourcen-Abschnitt

location: resourceGroup().location

ein. Experimentiere nach Belieben mit den verfĂĽgbaren Ressource- und Parameter-Typen. Um dieses einfache Beispiel nun in Azure bereitzustellen, speichere die Datei ab und fĂĽhre dann die Bereitstellung z. B in der Azure-CLI wie folgt aus:

az group create --name <ResourceGroup-Name> --location <location>

az deployment group create --resource-group <ResourceGroup-Name>  --template-file main.bicep --parameters name=<mein name>

Die Bereitstellung läuft.

Das fertige Ergebnis sieht dann so aus:

Ein erfolgreich per Bicep bereitgestelltes Speicherkonto.

Schulungen die dich interessieren könnten

Bewertungen

Kundenstimme
Martin S.
Bundeseisenbahnvermögen
star-participantstar-participantstar-participantstar-participantstar-participant
Das Training zeichnet sich durch einen sehr hohen Praxisbezug und Raum für individuelle Hilfe persönlicher Problemstellungen sowie durch einen engagierten und hoch kompetenten Trainer aus.
Kundenstimme
Torsten B.
Westdeutscher Rundfunk WDR
star-participantstar-participantstar-participantstar-participantstar-participant
Das Seminar hat nicht nur SpaĂź gemacht, sondern auch wirklich 'ne Menge gebracht :-)
Kundenstimme
Thomas M.
Aldi GmbH & Co. KG
star-participantstar-participantstar-participantstar-participantstar-participant
Lernen in einem sehr entspannten und angenehmen Klima. Prima!
Kundenstimme
Markus H.
CARAT Dreieich
star-participantstar-participantstar-participantstar-participantstar-participant
Der Trainer machte einen sehr netten und kompetenten Eindruck und ging auf unsere WĂĽnsche und Anregungen sehr praxisorientiert ein .