Automatisierte und agile Bereitstellung einer Cloud Infrastruktur mit Azure Bicep

Warum schafft Azure Bicep die optimale Basis für den Betrieb von agilen SaaS Applikationen auf Azure?

Für den Betrieb einer agilen SaaS Applikation in Azure braucht man Cloud Infrastruktur. Diese wird meistens in Form eines virtualisierten Betriebssystems (Kubernetes) oder bei Cloud Native Applikationen mit den entsprechenden Azure Ressourcen betrieben.

Für Azure gibt es seit 2021 eine einfachere domänenspezifische Sprache (Bicep) die eine deklarative Syntax bietet zum Bereitstellen von Azure-Ressourcen.

Mit den agilen Entwicklungsmethoden welche schnellen Iterationen untergeordnet sind muss sichergestellt werden, dass für die Applikationen wiederholt automatisierte Infrastrukturen bereitgestellt werden und diese sich in einem zuverlässigen Zustand befinden. Die Infrastruktur ist somit ein Teil der Agilen Entwicklung geworden und es gibt keine Trennung mehr zwischen Entwicklung und Betrieb.

Als übergeordnetes Thema kann man sich «Azure Infrastruktur als Code» vorstellen.

Im Jahr 2014 ist fast gleichzeitig zu Terraform (Eine open source Lösung für alle gängigen Clouds) die erste Version von den ARM (Azure Resource Manager) publiziert worden.

Azure ARM-Vorlagen

Die ARM-Vorlagen arbeiten mit einer deklarativen Syntax (Declarative programming – Wikipedia) und kann damit die ganze Infrastruktur wie Netzwerk und Virtuelle Computer oder die Cloud Ressourcen zur Verfügung stellen.

Das Ziel mit den ARM-Vorlagen ist es ein wiederholtes Bereitstellen der Cloud Infrastruktur sicherzustellen während des gesamten Entwicklungsprozesses und diese zu gewährleisten.

Der grosse Vorteil von Vorlagen ist, dass diese mehrfach benutzt werden kann und dieselbeben Cloud Ressourcentypen im exakt gleichen Zustand wieder herstellen oder mit weiteren Ressourcentypen erweitern.

Ein Ressource Manager nimmt die Komplexität der Orchestrierung von der Bereitstellung abhängiger Ressourcen ab. Die Bereitstellung kann je nach Anforderung und gewünschter Geschwindigkeit entweder seriell oder parallel erfolgen.

Funktionen wie Testen, was-wäre-wenn Vorgänge, Prüfung dass die Bereitstellung so durchgeführt werden kann und anschliessend noch prüfen ob die Infrastruktur so funktioniert, «Richtlinie als Code», Integration in CI/CD (continues integration and continues deployment) sind Standard Funktionen.

Azure Bicep (aus dem Medizinischen Funktionale Anatomie)

Evolutionär zu den ARM ist im Jahr 2021 eine domänenspezifische Sprache (DSL  Domain-specific language – Wikipedia) entstanden die eine deklarative Syntax zum Bereitstellen der Azure-Ressourcen verwendet.

Die Datei, welche daraus entsteht, kann genutzt werden um die Infrastruktur wiederholt und auf einheitliche Weise jederzeit wieder bereit zu stellen.

Persönlich hat mich die einfache und präzise Syntax im Vergleich zu einer entsprechenden JSON Vorlage welche für ARM verwendet überzeugt. Sie ist einfacher zu lesen präziser und es braucht keine Vorkenntnisse über Programmiersprachen. Die Bicep-Syntax gibt an welche Ressourcen und Ressourceneigenschaften bereitgestellt werden sollen dieselbe Datei kann problemlos mehrmals bereit gestellt werden mit den gleichen Ressourcentypen und im selben Zustand.

Bicep verwaltet die Abhängigkeiten zwischen den Azure Ressourcen automatisch und ist dadurch flexibler als die ARM JSON Vorlage. Sämtliche ARM Vorlagen können in Bicep interpretiert und weiterverwendet werden.

Beispiel einer Vereinfachung:

(Source Microsoft)

Weiterführende Links:

Bicep documentation | Microsoft Docs

Vergleichen der Syntax für Azure Resource Manager-Vorlagen in JSON und Bicep – Azure Resource Manager | Microsoft Docs

Compare Azure Bicep vs. Terraform to provision infrastructure (techtarget.com)

Declarative programming – Wikipedia

Domain-specific language – Wikipedia

 

Beitrag teilen

Daniel Altmann

Daniel Altmann ist Product Owner bei cerri.com AG und bloggt aus dem Unterricht des CAS DevOps Leadership and Agile Methods.

Alle Beiträge ansehen von Daniel Altmann →

Schreibe einen Kommentar