Infrastructure as Code para entornos de automatización industrial
Software Defined Automation (SDA) presenta un proveedor de Terraform que permite a los clientes definir, desplegar y gestionar los recursos de la plataforma SDA mediante Infrastructure as Code (IaC). Esta funcionalidad se ofrece actualmente en versión preliminar privada. Si su organización está interesada en participar, póngase en contacto con SDA.
Por qué lo hemos creado
Cuando se crea un nuevo tenant en SDA, los clientes suelen necesitar configurar una amplia variedad de recursos: proyectos, dispositivos, gateways, vaults, documentos, grupos de recursos y más. Actualmente, esto solo puede hacerse de dos maneras:
1. Configuración manual en la consola web
- Requiere mucho tiempo y es repetitiva
- Propensa a errores de configuración
- No es fácilmente repetible ni auditable
- Sin control de versiones ni historial de cambios
2. Automatización personalizada mediante las API de SDA
Utilizar API REST o GraphQL es más escalable que la configuración manual, pero conlleva sus propios retos:
- Requiere un esfuerzo de desarrollo considerable y familiaridad con nuestras API
- Los scripts tienden a acumular código repetitivo (boilerplate)
- Los clientes deben gestionar la idempotencia, los reintentos y la recuperación ante fallos parciales
- Requiere una gestión de estado personalizada
- Resulta más difícil de estandarizar entre plantas, equipos y proveedores
En conjunto, estos retos hacen que la puesta en marcha de nuevas plantas y tenants sea más lenta de lo necesario e introducen riesgos operativos innecesarios.
Qué estamos construyendo
Para resolver estos problemas, SDA está desarrollando un proveedor de Terraform propio (first-party) que utiliza el framework de IaC estándar del sector de HashiCorp. Terraform permite a los usuarios definir el estado deseado del sistema en un lenguaje declarativo sencillo (HCL) y Terraform se encarga de:
- Despliegue
- Actualizaciones
- Reversiones (rollbacks)
- Detección de desviaciones (drift)
- Eliminación
- Gestión del estado
Esta es la misma tecnología que SDA utiliza internamente para gestionar su propia infraestructura en la nube de AWS.
Qué permite el proveedor de Terraform
Una vez implementado por completo, los clientes podrán aprovisionar y gestionar todos los recursos de SDA mediante Terraform, incluidos:
- Grupos de recursos (incluidos grupos anidados)
- Proyectos
- Dispositivos
- Gateways
- Documentos
- Vaults y secretos
- Futuros objetos de SDA
Las configuraciones de Terraform pueden almacenarse en Git como cualquier otro código, lo que permite:
- Seguimiento de cambios
- Revisión por pares
- Despliegues reproducibles
- Flujos de trabajo CI/CD automatizados
Cómo funciona
Terraform se comunica con SDA a través de un proveedor personalizado que actúa como puente entre los archivos de configuración declarativos de Terraform y las API de SDA (REST y GraphQL).
-
Los usuarios definen los recursos en HCL:
resource "sda_resource_group" "example" {name = "Production"parent_id = "root"} -
Terraform traduce esto en llamadas a la API de SDA
-
SDA crea, actualiza o elimina los recursos en consecuencia
-
Terraform mantiene el estado y garantiza que el estado real del sistema coincida con la configuración deseada
Disponibilidad actual
El proveedor de Terraform actual ofrece las siguientes capacidades:
- Lectura de grupos de recursos
- Creación de grupos de recursos
- Actualización de grupos de recursos
- Eliminación de grupos de recursos
(incluidas jerarquías anidadas)
Se han establecido partes significativas de la arquitectura del proveedor, las abstracciones de API y los patrones, que se documentarán aquí a medida que el producto evolucione.
Notas sobre la tecnología
El proyecto se ha construido utilizando las API GraphQL y REST de SDA:
- GraphQL es muy eficiente para la comunicación interna front-end ↔ back-end de SDA, pero más compleja de implementar en un proveedor de Terraform.
- REST sigue siendo el estándar del sector para las herramientas de automatización externas y continuaremos dando soporte y mejorando los endpoints REST para los clientes.
¿Le interesa utilizar el proveedor de Terraform?
El proveedor de Terraform de SDA se encuentra actualmente en versión preliminar privada.
Damos la bienvenida a los primeros adoptantes que deseen explorar Infrastructure as Code para entornos SDA.
Si está interesado en participar, póngase en contacto con SDA.
Trabajaremos directamente con usted para:
- Evaluar sus casos de uso
- Habilitar el acceso a la versión preliminar privada
- Proporcionar soporte de incorporación
- Recopilar comentarios para dar forma a la versión final