Infrastructure as Code für industrielle Automatisierungsumgebungen
Software Defined Automation (SDA) führt einen Terraform Provider ein, mit dem Kunden Ressourcen der SDA-Plattform über Infrastructure as Code (IaC) definieren, bereitstellen und verwalten können. Diese Funktion steht derzeit als Private Preview zur Verfügung. Wenn Ihre Organisation daran teilnehmen möchte, wenden Sie sich bitte an SDA.
Warum wir ihn entwickelt haben
Wird in SDA ein neuer Mandant angelegt, müssen Kunden in der Regel eine Vielzahl von Ressourcen konfigurieren – Projekte, Geräte, Gateways, Vaults, Dokumente, Ressourcengruppen und mehr. Bislang ist das nur auf zwei Wegen möglich:
1. Manuelle Einrichtung in der Web Console
- Zeitaufwendig und repetitiv
- Anfällig für Konfigurationsfehler
- Nicht ohne Weiteres wiederholbar oder auditierbar
- Keine Versionsverwaltung und keine Änderungshistorie
2. Eigene Automatisierung über die SDA-APIs
Der Einsatz von REST- oder GraphQL-APIs skaliert besser als eine manuelle Konfiguration, bringt aber eigene Herausforderungen mit sich:
- Erfordert erheblichen Entwicklungsaufwand und Vertrautheit mit unseren APIs
- Skripte sammeln mit der Zeit viel Standardcode an
- Kunden müssen Idempotenz, Wiederholungen und die Behandlung von Teilfehlern selbst umsetzen
- Erfordert eine eigene Zustandsverwaltung
- Schwieriger über Standorte, Teams und Hersteller hinweg zu standardisieren
Zusammengenommen verlangsamen diese Punkte das Onboarding neuer Standorte und Mandanten unnötig und erhöhen das betriebliche Risiko.
Was wir entwickeln
Um diese Probleme zu lösen, entwickelt SDA einen eigenen Terraform Provider auf Basis des branchenüblichen IaC-Frameworks von HashiCorp. Mit Terraform definieren Benutzer den gewünschten Systemzustand in einer einfachen deklarativen Sprache (HCL); Terraform übernimmt anschließend:
- Bereitstellung
- Aktualisierungen
- Rollbacks
- Erkennung von Abweichungen (Drift)
- Löschung
- Zustandsverwaltung
Es handelt sich um dieselbe Technologie, die SDA intern zur Verwaltung der eigenen AWS-Cloud-Infrastruktur einsetzt.
Was der Terraform Provider ermöglicht
Nach vollständiger Umsetzung können Kunden sämtliche SDA-Ressourcen über Terraform bereitstellen und verwalten, darunter:
- Ressourcengruppen (einschließlich verschachtelter Gruppen)
- Projekte
- Geräte
- Gateways
- Dokumente
- Vaults & Secrets
- Künftige SDA-Objekte
Terraform-Konfigurationen lassen sich wie jeder andere Code in Git ablegen und ermöglichen so:
- Nachverfolgung von Änderungen
- Peer Review
- Reproduzierbare Bereitstellungen
- Automatisierte CI/CD-Workflows
Wie es funktioniert
Terraform kommuniziert über einen eigenen Provider mit SDA, der als Brücke zwischen den deklarativen Konfigurationsdateien von Terraform und den APIs von SDA (REST und GraphQL) fungiert.
-
Benutzer definieren Ressourcen in HCL:
resource "sda_resource_group" "example" {name = "Production"parent_id = "root"} -
Terraform übersetzt dies in API-Aufrufe an SDA
-
SDA erstellt, aktualisiert oder löscht die Ressourcen entsprechend
-
Terraform führt den Zustand nach und stellt sicher, dass der tatsächliche Systemzustand der gewünschten Konfiguration entspricht
Aktuelle Verfügbarkeit
Der derzeitige Terraform Provider bietet die folgenden Möglichkeiten:
- Ressourcengruppen lesen
- Ressourcengruppen erstellen
- Ressourcengruppen aktualisieren
- Ressourcengruppen löschen
(einschließlich verschachtelter Hierarchien)
Wesentliche Teile der Provider-Architektur, der API-Abstraktionen und der Muster sind bereits festgelegt und werden hier dokumentiert, sobald sich das Produkt weiterentwickelt.
Technische Hinweise
Das Projekt wurde auf Basis der GraphQL- und REST-APIs von SDA umgesetzt:
- GraphQL ist für die interne Kommunikation zwischen Frontend und Backend von SDA sehr effizient, in einem Terraform Provider jedoch aufwendiger umzusetzen.
- REST bleibt der Branchenstandard für externe Automatisierungswerkzeuge; wir werden REST-Endpunkte für Kunden weiterhin unterstützen und ausbauen.
Interesse am Terraform Provider?
Der Terraform Provider von SDA befindet sich derzeit in der Private Preview.
Wir freuen uns über Early Adopters, die Infrastructure as Code für SDA-Umgebungen erproben möchten.
Wenn Sie teilnehmen möchten, wenden Sie sich bitte an SDA.
Wir arbeiten dann direkt mit Ihnen zusammen, um:
- Ihre Anwendungsfälle zu bewerten
- Den Zugang zur Private Preview freizuschalten
- Sie beim Onboarding zu unterstützen
- Rückmeldungen zu sammeln, die in die finale Version einfließen