Azure Bicep vs. Terraform: Infrastructure-as-Code-Tools im Vergleich

24.06.2021 | Daniel Kristandl, Anis Fatnassi

Was ist Infrastructure-as-Code?

Bei Infrastructure-as-Code (IaC) handelt es sich um ein IT-Konzept, demzufolge nicht nur die Applikation, sondern auch die zur Ausführung benötigte Infrastruktur beschrieben wird. Infrastructure-as-Code verwendet eine high-level Coding Language, um die Bereitstellung der IT-Infrastruktur zu automatisieren. Diese Automatisierung erleichtert Entwicklern die Arbeit, denn normalerweise müssen diese jedes Mal, wenn sie eine Softwareanwendung entwickeln, testen oder bereitstellen, die Server, Betriebssysteme, Speicher oder andere Infrastrukturelemente manuell bereitstellen. Die Automatisierung bringt jedoch noch zahlreiche weitere Vorteile mit sich: der Prozess zur Bereitstellung der Infrastruktur wird beschleunigt, ihre Konsistenz wird erhöht und die Entwicklung erfolgt schneller und effizienter.

 

Infrastructure-as-Code in Azure  

Eine der bekanntesten IaC-Methoden in Azure sind Vorlagen für den Azure Ressource Manager (ARM-Templates). ARM-Templates sind die Microsoft-Azure-native Umsetzung des Infrastructure as Code Konzepts. Ein ARM-Template ist im Wesentlichen eine JSON-Datei, in der die Infrastruktur und die Konfiguration für ein Projekt definiert werden, d.h., es enthält Angaben zu den bereitzustellenden Ressourcen und den Eigenschaften für diese Ressourcen. Die dafür verwendete Syntax ist deklarativ, das bedeutet, in den ARM-Templates wird lediglich angegeben was bereitgestellt wird, ohne die Folge der Programmierbefehle für die Erstellung schreiben zu müssen. 

 

Wie funktioniert Terraform?

Ein weit verbreiteter Konkurrent von ARM-Templates ist das Open-Source IaC-Tool Terraform von HashiCorp, das in der Programmiersprache Go entwickelt wurde. Terraform ist nicht auf einen bestimmten Cloud Anbieter ausgerichtet, sondern lässt sich sowohl in Azure als auch für andere Cloud-Anbieter verwenden. Terraform nutzt eine eigene deklarative Sprache mit dem Namen HCL (HashiCorp Configuration Language). Das Tool bietet aber auch die Möglichkeit, die Infrastruktur – analog zu ARM-Templates – im JSON-format zu definieren. 

 

Wie funktioniert  Microsoft Azure Bicep?

Azure Bicep ist eine DSL (Domain Specific Language) für ARM-Templates, die von Microsoft entwickelt wurde. Im Vergleich zu den ARM-Templates bietet Azure Bicep eine einfachere und präzisere Syntax. Damit eignet sich Azure Bicep für die Beschreibung, Validierung und Bereitstellung von Azure-Ressourcen als Infrastructure-as-Code. 

Terraform vs. Azure Bicep: Wo liegen die Unterschiede?

Welche Lösung ein Entwickler wählt, ist eine sehr individuelle Entscheidung, die von der genauen Entwicklungssituation abhängt. Dennoch gibt es ein paar grundlegende Unterschiede zwischen den beiden Tools, die man bei der Auswahl berücksichtigen sollte:

 

Fazit zum Vergleich Azure Bicep vs. Terraform 

Azure Bicep und Terraform haben beide ihre Stärken und Schwächen. Terraform bietet den großen Vorteil, auf einer Mulitprovider-kompatiblen Sprache aufgebaut zu sein und wird deshalb von vielen Cloud-Anbietern unterstützt. Azure Bicep kann hingegen ausschließlich für Azure verwendet werden. Azure Bicep basiert allerdings auf ARM-Templates und hat deshalb den Vorteil, Day-Zero-Support für neue Features bereitstellen zu können. Zudem sollte man nicht vergessen, dass Azure Bicep sich zurzeit noch in der Beta-Version befindet und noch nicht allgemein verfügbar ist. Microsoft hat also im Rahmen der noch laufenden Weiterentwicklung die Möglichkeit, weitere Verbesserungen vorzunehmen und zusätzliche Features bereitzustellen.

 

Ein großer Terraform-Vorteil ist der große Community-Support, der bei Azure Bicep aktuell nur sehr dürftig ausfällt. Nach der offiziellen Veröffentlichung könnte es sein, dass auch hier der Community-Support ansteigt. Für Benutzer von Terraform gibt es momentan keinen Grund für einen Wechsel zu Azure Bicep. Für Benutzer von ARM-Templates, die in Zukunft auf eine leichtere und weniger schreibintensive Sprache umsteigen möchten, könnte Azure Bicep eine geeignete Alternative sein.  

 

Ob man sich in Zukunft in einem Azure-Projekt für Bicep oder Terraform entscheidet, hängt als vor allem an den eigenen Präferenzen und an der weiteren Entwicklung von Azure Bicep. Da Azure Bicep sich aktuell noch in einem frühen Entwicklungsstadium befindet, empfiehlt es sich in jedem Fall, das Tool weiter zu beobachten.  


Sie suchen eine ähnliche Lösung?

Wir freuen uns auf Ihre Fragen. Rufen Sie uns an oder schreiben Sie uns!

Data Management Webseminare

Ihr Ansprechpartner

Daniel Kristandl
Data Engineer
pmOne Schweiz GmbH
Hardturmstrasse 135
8005 Zürich
+41 79 801 13 95