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.

Du benötigst mehr Know-how rund um MS Azure? Dann empfehlen wir dir unsere Microsoft Azure Schulungen!

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.

Kontakt

Dein INCAS Team
Akkordion öffnen
telephone-icon-contact-coaching-box
0800 4772466
email-icon-contact-coaching-box
info@incas-training.de

*“ zeigt erforderliche Felder an

Hidden
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Schulungen die dich interessieren könnten

Bewertungen

Kundenstimme männlich
Dimitri B.
HSBC Trinkaus
star-participantstar-participantstar-participantstar-participantstar-participant
Sehr informativ und in der Praxis wiederverwendbar.
Kundenstimme männlich
Nina P.
GEUTEBRÜCK GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Das Seminar hat meine Erwartungen voll erfüllt. Man hat gemerkt, dass der Trainer Spaß an der Sache und sehr viel Ahnung vom Thema hat. Das Gefühl hat man nicht in allen Schulungen (auf Schulungen im Allgemeinen bezogen).
Kundenstimme männlich
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 .
Kundenstimme männlich
Michael W.
Ernst & Young Retail Services GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Ich fühlte mich in diesem Seminar hervorragend betreut. Es war sehr praxisorientiert und anschaulich.