Passa al contenuto principale

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