Wissen von A bis Z

Bicep

Bicep bringt die Muskeln für Ihre Cloud-Infrastruktur: Weniger JSON-Klammern, mehr klare Ansagen an Azure.

Bicep ist die domänenspezifische Sprache (DSL) von Microsoft für die deklarative Beschreibung von Azure-Ressourcen und der direkte Nachfolger der ARM-Templates in JSON-Form. Bicep-Code wird vom Bicep-CLI verlustfrei in ein klassisches ARM-Template übersetzt und anschließend gegen den Azure Resource Manager deployed; das ARM-JSON ist dabei nur noch ein internes Zwischenformat. Damit bietet Bicep dieselben Fähigkeiten wie ARM-Templates — Scopes, Conditions, Loops, Modulen, Outputs, what-if-Vorschau — in einer deutlich kompakteren, lesbareren Syntax mit Type-Safety und IDE-Unterstützung in Visual Studio Code.

Eingesetzt wird Bicep für Infrastructure as Code in Azure-Umgebungen. Module — wiederverwendbare Bicep-Dateien — werden über Pfade, Container Registries (Azure Container Registry) oder den öffentlichen Bicep Public Module Registry verteilt. Deployments sind auf Resource Group-, Subscription-, Management Group- oder Tenant-Ebene möglich; in Kombination mit Azure DevOps Pipelines, GitHub Actions oder dem ‚az deployment'-Befehl entstehen vollständige IaC-Pipelines mit Linting, what-if-Vorschau und Rollback-Strategien über Deployment Stacks.

Der Einsatzzweck und das gelöste Problem liegen in den Schwächen reiner ARM-JSON-Templates: redundante Schreibweisen, schwer lesbare Verschachtelungen, fehleranfällige String-Konkatenation für Resource-IDs, fehlende statische Typprüfung. Bicep adressiert dies mit prägnanter Syntax, automatischer Auflösung von Resource-IDs, eingebauten Funktionen wie ‚resourceId' nur dort, wo wirklich nötig, einem klaren Modul-Konzept, Decoratoren wie @description, @allowed, @minLength sowie Linter-Regeln, die Best Practices durchsetzen.

Bicep wurde im August 2020 als experimentelles Open-Source-Projekt auf GitHub veröffentlicht, mit der allgemeinen Verfügbarkeit von Bicep 0.3 im März 2021. Seitdem entwickelt sich die Sprache in regelmäßigen Releases weiter; bedeutsame Meilensteine sind die Einführung des Decoratorsystems, der Resource-Functions, der typed Outputs (‚type'-System ab Bicep 0.21) sowie die Bicep-Param-Files (.bicepparam) als reine Parameter-Dateien parallel zum Modul. Mit Bicep für Microsoft Graph (Bicep extensibility, ab 2024) wurde der Anwendungsbereich über Azure-Ressourcen hinaus auf Microsoft-Graph-Objekte erweitert.

Eingeführt wurde Bicep vom ARM-Team bei Microsoft, federführend von Anthony Martin und Alex Frankel. ‚Bicep' ist eine bewusste Anspielung auf ‚ARM' — das ARM-Template-Konzept blieb erhalten, bekam aber sprichwörtlich einen ‚Bizeps' in Form einer modernen Sprache. Diese Namensspielerei spiegelt eine pragmatische Strategie wider: Statt einen kompletten Bruch mit dem etablierten ARM-Modell zu vollziehen, wurde mit Bicep eine reine Syntax-Schicht über dem stabilen ARM-Backend etabliert, was Migrationen aus bestehenden ARM-Templates über das Werkzeug ‚bicep decompile' weitgehend automatisierbar macht.

Zurück