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