Passa al contenuto principale

Infrastructure as Code per ambienti di automazione industriale

SEW-EURODRIVE introduce un Terraform provider che consente ai clienti di definire, distribuire e gestire le risorse della piattaforma SEW tramite Infrastructure as Code (IaC). Questa funzionalità è attualmente offerta in private preview. Se la vostra organizzazione è interessata a partecipare, contattate SEW.


Perché lo abbiamo realizzato​

Quando in SEW viene creato un nuovo tenant, i clienti devono in genere configurare un'ampia gamma di risorse: progetti, dispositivi, gateway, vault, documenti, gruppi di risorse e altro ancora. Ad oggi, ciò è possibile solo in due modi:

1. Configurazione manuale nella console web​

  • Dispendiosa in termini di tempo e ripetitiva
  • Soggetta a errori di configurazione
  • Non facilmente ripetibile o verificabile
  • Nessun controllo di versione o cronologia delle modifiche

2. Automazione personalizzata tramite le API SEW​

L'utilizzo di API REST o GraphQL è più scalabile della configurazione manuale, ma comporta le proprie criticità:

  • Richiede un notevole sforzo di sviluppo e la conoscenza delle nostre API
  • Gli script tendono ad accumulare codice boilerplate
  • I clienti devono gestire idempotenza, tentativi ripetuti e ripristino da guasti parziali
  • Richiede una gestione dello stato personalizzata
  • Più difficile da standardizzare tra siti, team e fornitori

Nel complesso, queste criticità rendono l'onboarding di nuovi siti e tenant più lento del necessario e introducono rischi operativi superflui.


Che cosa stiamo realizzando​

Per risolvere questi problemi, SEW sta sviluppando un Terraform provider first-party che utilizza il framework IaC standard di settore di HashiCorp. Terraform consente agli utenti di definire lo stato desiderato del sistema in un semplice linguaggio dichiarativo (HCL) e si occupa di:

  • Deployment
  • Aggiornamenti
  • Rollback
  • Rilevamento del drift
  • Eliminazione
  • Gestione dello stato

Si tratta della stessa tecnologia che SEW utilizza internamente per gestire la propria infrastruttura cloud AWS.

Cosa consente il Terraform provider​

Una volta completata l'implementazione, i clienti potranno effettuare il provisioning e la gestione di tutte le risorse SEW tramite Terraform, tra cui:

  • Gruppi di risorse (inclusi i gruppi annidati)
  • Progetti
  • Dispositivi
  • Gateway
  • Documenti
  • Vault e segreti
  • Futuri oggetti SEW

Le configurazioni Terraform possono essere archiviate in Git come qualsiasi altro codice, abilitando:

  • Tracciamento delle modifiche
  • Revisione tra pari
  • Deployment riproducibili
  • Flussi di lavoro CI/CD automatizzati

Come funziona​

Terraform comunica con SEW tramite un provider personalizzato che funge da ponte tra i file di configurazione dichiarativi di Terraform e le API di SEW (REST e GraphQL).

  • Gli utenti definiscono le risorse in HCL:

    resource "sda_resource_group" "example" \{
    name = "Production"
    parent_id = "root"
    \}
  • Terraform traduce tutto ciò in chiamate API verso SEW

  • SEW crea, aggiorna o elimina le risorse di conseguenza

  • Terraform mantiene lo stato e garantisce che lo stato effettivo del sistema corrisponda alla configurazione desiderata


Disponibilità attuale​

Il Terraform provider attuale offre le seguenti funzionalità:

  • Lettura dei gruppi di risorse
  • Creazione dei gruppi di risorse
  • Aggiornamento dei gruppi di risorse
  • Eliminazione dei gruppi di risorse
    (incluse le gerarchie annidate)

Parti significative dell'architettura del provider, delle astrazioni API e dei pattern sono già state definite e verranno documentate qui man mano che il prodotto evolve.

Note tecnologiche​

Il progetto è stato realizzato utilizzando le API GraphQL e REST di SEW:

  • GraphQL è estremamente efficiente per la comunicazione interna front-end ↔ back-end di SEW, ma più complesso da implementare in un Terraform provider.
  • REST resta lo standard di settore per gli strumenti di automazione esterni e continueremo a supportare e potenziare gli endpoint REST per i clienti.

Interessati a utilizzare il Terraform provider?​

Il Terraform provider di SEW è attualmente in private preview.
Accogliamo con favore gli early adopter che desiderano esplorare l'Infrastructure as Code per gli ambienti SEW.

Se siete interessati a partecipare, contattate SEW.

Lavoreremo direttamente con voi per:

  • Valutare i vostri casi d'uso
  • Abilitare l'accesso alla private preview
  • Fornire supporto all'onboarding
  • Raccogliere feedback per definire la versione finale