iX 6/2021
S. 134
Praxis
Cloud
Montage iX; Lisa Hemmerling

Infrastructure as Code mit Pulumi

Redegewandt

Oliver Frommel

Infrastructure as Code beschränkt sich meist auf einfache Beschreibungssprachen wie YAML oder JSON. Pulumi erlaubt die Konfiguration von Cloud-Ressourcen mit ausgewachsenen Programmiersprachen wie TypeScript, Python oder Go und eröffnet so neue Möglichkeiten.

Auch wenn es möglich ist, sich bei Cloud-Providern seine Infrastruktur in einem Browser grafisch zusammenzuklicken, entfaltet die Cloud ihre Stärken erst mit Automatisierung. Virtuelle Maschinen, Container und andere Dienste sind dabei in Textdateien beschrieben, die ein Tool dann in laufende Cloud-Infrastruktur umsetzt. Diese Vorgehensweise bezeichnet man als Infrastructure as Code. Die Amazon-Cloud AWS verwendet dafür etwa die Templatesprache CloudFormation, Microsoft die Azure Resource Manager Templates und Google den Cloud Deployment Manager, der ebenfalls Templates verarbeitet. Solche Templates lassen sich in den bekannten Textformaten wie YAML oder JSON verfassen.

Ein häufig verwendetes Tool für Infrastructure as Code ist das cloudunabhängige, von HashiCorp als Open Source bereitgestellte Terraform, das für die großen Clouds und kleinere Anbieter Plug-ins (in Terraform als Providers bezeichnet) mitbringt, die auf die jeweils angebotenen Ressourcen zugeschnitten sind. So gibt es etwa Support für Elastic Block Store nur auf AWS, da es diesen spezifischen Dienst ausschließlich dort gibt. Das zeigt, dass der Portabilität von Terraform-Modulen Grenzen gesetzt sind. Dennoch ist es sinnvoll, sich mit Terraform zu beschäftigen, wenn man mit mehreren Cloud-Anbietern arbeitet. Die Syntax der Templatesprache und die grundlegenden Abläufe sind nämlich immer die gleichen.

Kommentieren