Wenn von Infrastructure as Code die Rede ist, denken die meisten wahrscheinlich zuerst an Terraform. Wir stellen dir in diesem Artikel ein neues Werkzeug vor. Pulumi ist ein Startup aus dem Silicon Valley und angetreten, IaC noch einfacher zu machen.
Was ist IaC?
Mit Infrastructure as Code (IaC) können IT-Teams die Bereitstellung von Infrastruktur automatisieren. IaC beschleunigt die Provisionierung neuer Infrastruktur-Komponenten und sorgt für mehr Agilität bei der Verwaltung von Infrastruktur inkl. Änderungen oder Erweiterungen. Das bekannteste Werkzeug im Zusammenhang mit IaC ist Terraform, ein Open-Source-Werkzeug der Firma HashiCorp. Ähnlich wie andere Automatisierungstools basiert auch IaC auf deklarativer Programmierung. Dabei steht der Use Case im Vordergrund, nicht wie bei imperativer Programmierung der Weg als Ziel zur Lösung.
Bei einem deklarativen Ansatz übernimmt Software die Hauptarbeit. Am besten lässt sich das mit einer Navigationssoftware vergleichen: Du sagst der Software, wohin du möchtest und ob zu Fuß, mit dem Rad oder der Bahn; Google oder OpenStreetMap übernehmen den Rest. Im Backend definierte Parameter sorgen dafür, dass du schnell oder wirtschaftlich an dein Ziel kommst.
Allerdings sind ist es bei Automatisierungstools wie Ansible, Kubernetes oder Terraform nicht ganz so einfach wie bei der Navigation. Automatisierungstools arbeiten mit Skripten – bei Ansible sind das Playbooks – und fertigen Modulen. Das erleichtert vielen Administratoren die Arbeit. Dennoch ist jede Systemlandschaft anders und die zunehmende Adaption neuer Vorgehensweisen wie CI/CD (Continuous Integration/Continuous Delivery) erforderrn Anpassungen.
Und das ist ein Nachteil bei der Automatisierung. Jedes Werkzeug benutzt eigene Sprachen. Ansible-Playbooks sind in YAML geschrieben. Für Terraform hat HashiCorp eine eigene Configuration Language (HCL) entwickelt. Wenn also ein Unternehmen auf die Entwicklung eigener Skripte und Pipelines angewiesen ist – und die meisten großen IT-Services-Landschaften sind das –, braucht es einen Experten. Davon gibt es zu wenige, und oft sind sie nicht da, wo sie gebraucht werden.
Ein Tool für alle(s)
Pulumi 🌐 hat das erkannt und eine Plattform mit neuem universellen Ansatz entwickelt. Mit der Cloud Engineering Platform adressiert das 2017 gegründete Unternehmen auf einen hohen Skalierungsgrad angewiesene Firmen. Das sind viele und werden im Zuge der Digitalisierung und Containerisierung immer mehr. Selbst kleinere und mittelständische Betriebe müssen immer mehr Dienste und Geräte beherrschen. Dabei müssen sie agil bleiben und widerstandsfähig, Stichwort Cyber-Resilience. Mit bisherigen Denkmustern und Werkzeugen ist das kaum möglich.
Die Erfahrung der beiden Gründer basiert auf zusammen über 35 Jahren im Aufbau und der Skalierung innovativer, milliardenschwerer Unternehmen in großem Maßstab. Von diesem Wissen profitieren jetzt auch Cloud- und Managed Service Provider bis hin zu KMU.
Die IaC-Plattform von Pulumi erlaubt Standard-Workflows über alle Clouds hinweg für Entwickler, Infrastruktur- oder Sicherheitsexperten. Bestehende Ökosysteme lassen sich nahtlos integrieren und erweitern. Die Plattform verfügt über zahlreiche Integrationen(u. a. Git, Chef, Ansible, Salt) und CI/CD-Systeme zur Vereinheitlichung der Erstellung, Bereitstellung Verwaltung und dem Schutz von Anwendungen und Infrastruktur, egal ob Serverless, in Containern oder als virtuelle Maschine.
Fertige Building Blocks und Architektur-Templates 🌐 lassen sich direkt in der Praxis anwenden. Davon profitieren vor allem Junior-DevOPs und KMU, die sofort loslegen können und dabei lernen.
Besonders beeindruckend ist die Fähigkeit, bestehende Templates – z. B. ARM, K8s, Terraform – übersetzen zu können und für den Einsatz in der Pulumi-Plattform zu konvertieren. Das Unternehmen betont, dass es sich dabei tatsächlich um eine Übersetzung und Konversion handelt und kein reverse engineering + rebuild.
$ pulumi config set –secret
Die Plattform verfügt über diverse Sicherheitsfunktionen. Deep Machine Understanding (ein Ergebnis von Deep Learning) sorgt dafür, dass Geheimnisse und sensible Daten nicht preisgegeben werden. Die Verschlüsselung erfolgt in Echtzeit zur Runtime und automatisiert für Daten wie sensible Konfigurationen.
Ebenfalls zur Laufzeit können Richtlinien durchgesetzt werden. Dazu können Leitplanken eingerichtet werden, um konzerneigene Policies einzuhalten aber auch Budgets und Kosten im Zaum zu halten: Stichwort FinOps ☝️
Integrierte, sofort einsatzbereite Checks prüfen im Hintergrund die Einhaltung von Industriestandards, Best Practices und Compliance-Frameworks. Die Prüfungen können vollständig und leicht erweitert werden, um zusätzlich zu den Best Practices der Branche auch eigene Regeln durchzusetzen. Auditfähige Protokolle dokumentieren die Einhaltung – oder Verstöße.
DevSecOps little Helper
Die Plattform eignet sich sowohl für alte IT-Hasen als auch Junioren oder Quereinsteiger. KI unterstützt Unerfahrene bei der Arbeit und spart Experten Zeit gleichermaßen.
Die integrierte Intelligenz ist auch ein Sicherheitsfeature und hilft, Fehler zu vermeiden sowie saubereren Code zu schreiben.
Pulumi ist quelloffen und verfügt über Sicherheitsfunktionen wie Zustandsspeicher und Concurrency-Kontrolle, IAM, SAML/SSO, RBAC, Audit-Protokolle, Durchsetzung von Richtlinien, Webhooks und mehr. Die Plattform ist Mandanten-fähig, SOC 2-konform und kann als SaaS genutzt werden oder on-prem in geschützten Umgebungen. Selbstverständlich können die Funktionen der Pulumi-Plattform auch via CLI oder API genutzt werden. Das SDK 🌐 ist auf GitHub verfügbar. Unternehmen profitieren von Enterprise-Support-Optionen inkl. SLAs, Live-Chat (Slack), Schulungen, Workshops, u. a. m. Mit dem aufgeräumten GUI der Plattformen behalten auch Entscheider und Verantwortliche stets den Überblick.
Die Preise 🌐 starten bei 1 USD pro 2.000 Credits. Credits sind Pulumis Einheit für ein Objekt für eine Stunde. Einzelprojekte sind free forever, allerdings mit Einschränkungen wie Deployments nur als Vorschau. Aus unserer Sicht eignet sich der kostenlose Individual-Account am besten für Tests bzw. um die Auswirkungen von Codeänderungen zu evaluieren.
Fazit
Mit einem Infrastructure-as-Code-Ansatz können Unternehmen automatisisiert AWS-, Azure-, Google Cloud Platform- und Kubernetes-Ressourcen bereitstellen und verwalten. Pulumi erlaubt DevSecOps, den Code in ihrer bevorzugten Sprache (u. a. TypeScript, Python, Go, C#, Java, YAML) zu schreiben und beliebte Standard-Funktionen wie Schleifen, Funktionen, Klassen und Package Management zu verwenden.
Wir trafen Pulumi-CEO und Co-Founder Joe Duffy im Rahmen der IT Press Tour 🌐 im Januar in San Francisco.