Ga naar hoofdinhoud

Infrastructure as Code voor industriële automatiseringsomgevingen

Software Defined Automation (SDA) introduceert een Terraform provider waarmee klanten SDA-platformresources kunnen definiëren, uitrollen en beheren met behulp van Infrastructure as Code (IaC). Deze functie wordt momenteel aangeboden als private preview. Als uw organisatie geïnteresseerd is in deelname, neem dan contact op met SDA.


Waarom we het hebben gebouwd​

Wanneer een nieuwe tenant in SDA wordt aangemaakt, moeten klanten doorgaans een breed scala aan resources configureren: projecten, apparaten, gateways, vaults, documenten, resourcegroepen en meer. Op dit moment kan dat slechts op twee manieren:

1. Handmatige configuratie in de webconsole​

  • Tijdrovend en repetitief
  • Gevoelig voor configuratiefouten
  • Niet eenvoudig reproduceerbaar of auditeerbaar
  • Geen versiebeheer of wijzigingshistorie

2. Aangepaste automatisering met SDA-API's​

Het gebruik van REST- of GraphQL-API's is beter schaalbaar dan handmatige configuratie, maar brengt eigen uitdagingen met zich mee:

  • Vergt aanzienlijke ontwikkelinspanning en kennis van onze API's
  • Scripts krijgen vaak veel boilerplate-code
  • Klanten moeten zelf idempotentie, retries en herstel na gedeeltelijke fouten regelen
  • Vereist eigen statebeheer
  • Moeilijker te standaardiseren over locaties, teams en leveranciers heen

Samen zorgen deze uitdagingen ervoor dat het onboarden van nieuwe locaties en tenants langzamer verloopt dan nodig is en dat er onnodige operationele risico's ontstaan.


Wat we bouwen​

Om deze problemen op te lossen ontwikkelt SDA een eigen Terraform provider die gebruikmaakt van het industriestandaard IaC-framework van HashiCorp. Met Terraform kunnen gebruikers de gewenste systeemstatus definiëren in een eenvoudige declaratieve taal (HCL), waarna Terraform het volgende verzorgt:

  • Uitrol
  • Updates
  • Rollbacks
  • Driftdetectie
  • Verwijdering
  • Statebeheer

Dit is dezelfde technologie die SDA intern gebruikt om zijn eigen AWS-cloudinfrastructuur te beheren.

Wat de Terraform provider mogelijk maakt​

Zodra de implementatie volledig is, kunnen klanten alle SDA-resources via Terraform provisionen en beheren, waaronder:

  • Resourcegroepen (inclusief geneste groepen)
  • Projecten
  • Apparaten
  • Gateways
  • Documenten
  • Vaults en secrets
  • Toekomstige SDA-objecten

Terraform-configuraties kunnen net als andere code in Git worden opgeslagen, wat het volgende mogelijk maakt:

  • Wijzigingen traceren
  • Peer review
  • Reproduceerbare uitrol
  • Geautomatiseerde CI/CD-workflows

Hoe het werkt​

Terraform communiceert met SDA via een aangepaste provider die als brug fungeert tussen de declaratieve configuratiebestanden van Terraform en de API's van SDA (REST en GraphQL).

  • Gebruikers definiëren resources in HCL:

    resource "sda_resource_group" "example" {
    name = "Production"
    parent_id = "root"
    }
  • Terraform zet dit om in API-aanroepen naar SDA

  • SDA maakt, wijzigt of verwijdert resources overeenkomstig

  • Terraform beheert de state en zorgt ervoor dat de werkelijke systeemstatus overeenkomt met de gewenste configuratie


Huidige beschikbaarheid​

De huidige Terraform provider biedt de volgende mogelijkheden:

  • Resourcegroepen lezen
  • Resourcegroepen aanmaken
  • Resourcegroepen bijwerken
  • Resourcegroepen verwijderen
    (inclusief geneste hiërarchieën)

Belangrijke delen van de providerarchitectuur, API-abstracties en patronen zijn vastgelegd en worden hier gedocumenteerd terwijl het product zich verder ontwikkelt.

Technologische opmerkingen​

Het project is gebouwd met de GraphQL- en REST-API's van SDA:

  • GraphQL is zeer efficiënt voor de interne front-end ↔ back-end communicatie van SDA, maar complexer te implementeren in een Terraform provider.
  • REST blijft de industriestandaard voor externe automatiseringstooling en we blijven REST-endpoints voor klanten ondersteunen en uitbreiden.

Geïnteresseerd in het gebruik van de Terraform provider?​

De SDA Terraform provider bevindt zich momenteel in private preview.
We verwelkomen early adopters die Infrastructure as Code voor SDA-omgevingen willen verkennen.

Als u geïnteresseerd bent in deelname, neem dan contact op met SDA.

We werken dan direct met u samen om:

  • Uw use cases te evalueren
  • Toegang tot de private preview te activeren
  • Onboardingondersteuning te bieden
  • Feedback te verzamelen die de definitieve release vormgeeft