Was ist Bicep? Bicep ist eine domänenspezifische Sprache (DSL) zur deklarativen Bereitstellung von Azure-Ressourcen. Also raus aus den ARM-Templates und eine deklarativere Beschreibung nutzen, um zu definieren, was man in Azure bereitstellen möchte. Mehr über das Projekt erfährt man auf der GitHub-Seite.
Mein erster Schritt war die Installation der Tooling-Komponenten für Bicep und der Erweiterung für Visual Studio Code. Die Installationsanleitung findet ihr ebenfalls auf der GitHub-Projektseite. Sobald alles installiert ist, hat VS Code Unterstützung für *.bicep-Dateien:

Wie im Screenshot zu sehen, bekommt man Unterstützung für einige Snippets, um sich mit der Syntax von Bicep vertraut zu machen. Hier ein Beispiel von der GitHub-Projektseite zur Deklaration eines Storage Accounts:
resource sa 'Microsoft.Storage/storageAccounts@2019-06-01' = {
name: 'satest12345no' // muss global eindeutig sein
location: 'westeuope'
kind: 'Storage'
sku: {
name: 'Standard_LRS'
}
}
Das sieht sehr strukturiert aus, und sobald man diese *.bicep-Datei baut, erhält man ein ARM-Template wie dieses:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"functions": [],
"variables": {},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "satest12345no",
"location": "eastwesteuopeus",
"kind": "Storage",
"sku": {
"name": "Standard_LRS"
}
}
],
"outputs": {}
}
Am Ende erhalten wir ein deploybares ARM-Template, das zur Bereitstellung der Ressourcen in Azure über den Azure Resource Manager verwendet werden kann. Ihr könnt diesen Schritten auf der GitHub-Seite folgen. Ich ermutige euch, es auszuprobieren und mehr über das erste Release dieses Projekts zu lernen.
Meiner Meinung nach ist es ein großartiger Start! Ich hoffe, das Projekt entwickelt sich schnell weiter und wir bekommen eine neue Möglichkeit, unsere Infrastruktur in Azure auf Basis von Bicep aufzubauen. Im Moment ist es viel zu früh, etwas Produktives auf Bicep aufzubauen, aber wenn man sich die Ideen ansieht (z.B. die Verwendung von Expressions), sieht es so aus, als würden wir ein leistungsfähiges Tool bekommen!
Ein interessanter Punkt wird sein, ob und wie Bicep den aktuellen Zustand der Umgebung in Azure handhaben wird. Der “AzOps"-Ansatz aus der Enterprise-Scale Landing Zone wäre dafür interessant.
Und für diejenigen, die die “Alpha”-Version nicht auf ihrem Rechner installieren möchten – nutzt den bereitgestellten Playground, um Bicep in Aktion zu sehen.
Also bleibt dran an der GitHub-Seite – ich werde es tun!
