Ga naar hoofdinhoud

Infrastructure as Code voor industriële automatiseringsomgevingen

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


Waarom we het hebben gebouwd​

Wanneer er een nieuwe tenant in SEW wordt aangemaakt, moeten klanten doorgaans een breed scala aan resources configureren: projecten, apparaten, gateways, vaults, documenten, resourcegroepen en meer. Vandaag de dag kan dit slechts op twee manieren:

1. Handmatige configuratie in de webconsole​

  • Tijdrovend en repetitief
  • Gevoelig voor configuratiefouten
  • Niet eenvoudig herhaalbaar of controleerbaar
  • Geen versiebeheer of wijzigingshistorie

2. Eigen automatisering met SEW-API's​

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

  • Vereist aanzienlijke ontwikkelinspanning en kennis van onze API's
  • Scripts verzamelen doorgaans veel boilerplate-code
  • Klanten moeten zelf idempotentie, retries en herstel na gedeeltelijke fouten afhandelen
  • Vereist eigen statusbeheer
  • Moeilijker te standaardiseren over locaties, teams en leveranciers heen

Samen zorgen deze uitdagingen ervoor dat het onboarden van nieuwe locaties en tenants trager verloopt dan nodig is en introduceren ze onnodig operationeel risico.


Wat we bouwen​

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

  • Uitrol
  • Updates
  • Rollbacks
  • Driftdetectie
  • Verwijdering
  • Statusbeheer

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

Wat de Terraform provider mogelijk maakt​

Zodra deze volledig is geïmplementeerd, kunnen klanten alle SEW-resources via Terraform inrichten en beheren, waaronder:

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

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

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

Hoe het werkt​

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

  • Gebruikers definiëren resources in HCL:

    resource "sda_resource_group" "example" \{
    name = "Production"
    parent_id = "root"
    \}
  • Terraform vertaalt dit naar API-aanroepen richting SEW

  • SEW maakt, wijzigt of verwijdert resources dienovereenkomstig

  • Terraform beheert de status 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)

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

Technologische opmerkingen​

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

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

Interesse in het gebruik van de Terraform provider?​

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

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

We werken rechtstreeks met u samen om:

  • Uw use cases te evalueren
  • Toegang tot de private preview te activeren
  • Ondersteuning bij de onboarding te bieden
  • Feedback te verzamelen om de uiteindelijke release vorm te geven