Pular para o conteúdo principal

Infrastructure as Code para Ambientes de Automação Industrial

A Software Defined Automation (SDA) está a introduzir um Terraform provider que permite aos clientes definir, implementar e gerir recursos da plataforma SDA utilizando Infrastructure as Code (IaC). Esta funcionalidade é atualmente oferecida em private preview. Se a sua organização estiver interessada em participar, entre em contacto com a SDA.


Por Que a Desenvolvemos​

Quando um novo tenant é criado na SDA, os clientes normalmente precisam de configurar uma vasta gama de recursos — projetos, dispositivos, gateways, vaults, documentos, grupos de recursos e muito mais. Atualmente, isso só pode ser feito de duas formas:

1. Configuração Manual na Consola Web​

  • Demorada e repetitiva
  • Propensa a erros de configuração
  • Difícil de repetir ou auditar
  • Sem controlo de versões ou histórico de alterações

2. Automação Personalizada Utilizando as APIs da SDA​

Utilizar APIs REST ou GraphQL é mais escalável do que a configuração manual, mas traz os seus próprios desafios:

  • Exige um esforço de desenvolvimento significativo e familiaridade com as nossas APIs
  • Os scripts tendem a acumular código boilerplate
  • Os clientes têm de lidar com idempotência, novas tentativas e recuperação de falhas parciais
  • Requer gestão de estado personalizada
  • Mais difícil de padronizar entre instalações, equipas e fornecedores

No conjunto, estes desafios tornam o onboarding de novas instalações e tenants mais lento do que o necessário e introduzem risco operacional desnecessário.


O Que Estamos a Construir​

Para resolver estas questões, a SDA está a desenvolver um Terraform provider próprio (first-party) que utiliza a framework IaC padrão da indústria da HashiCorp. O Terraform permite aos utilizadores definir o estado desejado do sistema numa linguagem declarativa simples (HCL), e o Terraform encarrega-se de:

  • Implementação
  • Atualizações
  • Rollbacks
  • Deteção de drift
  • Eliminação
  • Gestão de estado

Esta é a mesma tecnologia que a SDA utiliza internamente para gerir a sua própria infraestrutura cloud AWS.

O Que o Terraform Provider Permite​

Quando estiver totalmente implementado, os clientes poderão provisionar e gerir todos os recursos da SDA através do Terraform, incluindo:

  • Grupos de Recursos (incluindo grupos aninhados)
  • Projetos
  • Dispositivos
  • Gateways
  • Documentos
  • Vaults e Secrets
  • Futuros objetos da SDA

As configurações do Terraform podem ser armazenadas em Git como qualquer outro código, permitindo:

  • Rastreamento de alterações
  • Revisão por pares
  • Implementações reproduzíveis
  • Fluxos de trabalho CI/CD automatizados

Como Funciona​

O Terraform comunica com a SDA através de um provider personalizado que atua como ponte entre os ficheiros de configuração declarativa do Terraform e as APIs da SDA (REST e GraphQL).

  • Os utilizadores definem os recursos em HCL:

    resource "sda_resource_group" "example" {
    name = "Production"
    parent_id = "root"
    }
  • O Terraform traduz isto em chamadas de API para a SDA

  • A SDA cria, atualiza ou elimina os recursos em conformidade

  • O Terraform mantém o estado e assegura que o estado real do sistema corresponde à configuração desejada


Disponibilidade Atual​

O Terraform provider atual disponibiliza as seguintes capacidades:

  • Leitura de Grupos de Recursos
  • Criação de Grupos de Recursos
  • Atualização de Grupos de Recursos
  • Eliminação de Grupos de Recursos
    (incluindo hierarquias aninhadas)

Partes significativas da arquitetura do provider, das abstrações de API e dos padrões já foram estabelecidas e serão documentadas aqui à medida que o produto evoluir.

Notas Tecnológicas​

O projeto foi construído utilizando as APIs GraphQL e REST da SDA:

  • GraphQL é altamente eficiente para a comunicação interna front-end ↔ back-end da SDA, mas mais complexo de implementar num Terraform provider.
  • REST continua a ser o padrão da indústria para ferramentas de automação externas e continuaremos a suportar e a melhorar os endpoints REST para os clientes.

Interessado em Utilizar o Terraform Provider?​

O Terraform provider da SDA encontra-se atualmente em private preview.
Damos as boas-vindas a early adopters que queiram explorar Infrastructure as Code para ambientes SDA.

Se estiver interessado em participar, entre em contacto com a SDA.

Trabalharemos diretamente com o cliente para:

  • Avaliar os seus casos de uso
  • Ativar o acesso ao private preview
  • Fornecer apoio no onboarding
  • Recolher feedback para moldar a versão final