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