Infrastructure as Code per ambienti di automazione industriale
Software Defined Automation (SDA) introduce un Terraform provider che consente ai clienti di definire, distribuire e gestire le risorse della piattaforma SDA utilizzando l'Infrastructure as Code (IaC). Questa funzionalità è attualmente offerta in private preview. Se la vostra organizzazione è interessata a partecipare, vi invitiamo a contattare SDA.
Perché l'abbiamo sviluppato
Quando viene creato un nuovo tenant in SDA, i clienti devono in genere configurare un'ampia gamma di risorse: progetti, dispositivi, gateway, vault, documenti, resource group e altro ancora. Ad oggi, ciò può essere fatto solo in due modi:
1. Configurazione manuale nella Web Console
- 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 di SDA
L'utilizzo di API REST o GraphQL è più scalabile rispetto alla configurazione manuale, ma comporta le proprie sfide:
- Richiede un notevole sforzo di sviluppo e familiarità con le nostre API
- Gli script tendono ad accumulare codice boilerplate
- I clienti devono gestire idempotenza, tentativi ripetuti e ripristino da errori parziali
- Richiede una gestione dello stato personalizzata
- Più difficile da standardizzare tra siti, team e fornitori
Nel complesso, queste sfide rendono l'onboarding di nuovi siti e tenant più lento del necessario e introducono rischi operativi superflui.
Che cosa stiamo sviluppando
Per risolvere questi problemi, SDA 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:
- Distribuzione
- Aggiornamenti
- Rollback
- Rilevamento del drift
- Eliminazione
- Gestione dello stato
Si tratta della stessa tecnologia che SDA 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 gestire tutte le risorse SDA tramite Terraform, tra cui:
- Resource Group (inclusi gruppi annidati)
- Progetti
- Dispositivi
- Gateway
- Documenti
- Vault e segreti
- Futuri oggetti SDA
Le configurazioni Terraform possono essere archiviate in Git come qualsiasi altro codice, consentendo:
- Tracciamento delle modifiche
- Peer review
- Distribuzioni riproducibili
- Flussi di lavoro CI/CD automatizzati
Come funziona
Terraform comunica con SDA attraverso un provider personalizzato che funge da ponte tra i file di configurazione dichiarativi di Terraform e le API di SDA (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 SDA
-
SDA 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
L'attuale Terraform provider offre le seguenti funzionalità:
- Lettura dei Resource Group
- Creazione dei Resource Group
- Aggiornamento dei Resource Group
- Eliminazione dei Resource Group
(incluse le gerarchie annidate)
Porzioni 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 SDA:
- GraphQL è estremamente efficiente per la comunicazione interna front-end ↔ back-end di SDA, ma più complesso da implementare in un Terraform provider.
- REST rimane 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 SDA è attualmente in private preview.
Accogliamo con favore gli early adopter che desiderano esplorare l'Infrastructure as Code per gli ambienti SDA.
Se siete interessati a partecipare, vi invitiamo a contattare SDA.
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