Aller au contenu principal

Infrastructure as Code pour les environnements d'automatisation industrielle

Software Defined Automation (SDA) introduit un Terraform provider qui permet aux clients de définir, déployer et gérer les ressources de la plateforme SDA à l'aide de l'Infrastructure as Code (IaC). Cette fonctionnalité est actuellement proposée en private preview. Si votre organisation souhaite y participer, veuillez contacter SDA.


Pourquoi nous l'avons développé​

Lorsqu'un nouveau tenant est créé dans SDA, les clients doivent généralement configurer un large éventail de ressources : projets, appareils, passerelles, coffres-forts, documents, groupes de ressources, et bien d'autres. Aujourd'hui, cela n'est possible que de deux manières :

1. Configuration manuelle dans la console web​

  • Chronophage et répétitive
  • Sujette aux erreurs de configuration
  • Difficilement reproductible ou auditable
  • Aucun contrôle de version ni historique des modifications

2. Automatisation personnalisée à l'aide des API SDA​

L'utilisation des API REST ou GraphQL est plus évolutive que la configuration manuelle, mais elle comporte ses propres défis :

  • Nécessite un effort de développement important et une bonne connaissance de nos API
  • Les scripts ont tendance à accumuler du code passe-partout
  • Les clients doivent gérer l'idempotence, les nouvelles tentatives et la récupération après échec partiel
  • Nécessite une gestion d'état personnalisée
  • Plus difficile à standardiser entre les sites, les équipes et les fournisseurs

Ensemble, ces défis ralentissent inutilement l'intégration de nouveaux sites et tenants et introduisent un risque opérationnel superflu.


Ce que nous construisons​

Pour résoudre ces problèmes, SDA développe un Terraform provider first-party qui s'appuie sur le framework IaC standard de l'industrie de HashiCorp. Terraform permet aux utilisateurs de définir l'état souhaité de leur système dans un langage déclaratif simple (HCL), et Terraform prend en charge :

  • Le déploiement
  • Les mises à jour
  • Les rollbacks
  • La détection de dérive (drift detection)
  • La suppression
  • La gestion de l'état

Il s'agit de la même technologie que SDA utilise en interne pour gérer sa propre infrastructure cloud AWS.

Ce que permet le Terraform provider​

Une fois entièrement implémenté, les clients pourront provisionner et gérer toutes les ressources SDA via Terraform, notamment :

  • Les groupes de ressources (y compris les groupes imbriqués)
  • Les projets
  • Les appareils
  • Les passerelles
  • Les documents
  • Les coffres-forts et secrets
  • Les futurs objets SDA

Les configurations Terraform peuvent être stockées dans Git comme n'importe quel autre code, ce qui permet :

  • Le suivi des modifications
  • La revue par les pairs
  • Des déploiements reproductibles
  • Des workflows CI/CD automatisés

Comment cela fonctionne​

Terraform communique avec SDA via un provider personnalisé qui fait le lien entre les fichiers de configuration déclaratifs de Terraform et les API de SDA (REST et GraphQL).

  • Les utilisateurs définissent les ressources en HCL :

    resource "sda_resource_group" "example" {
    name = "Production"
    parent_id = "root"
    }
  • Terraform traduit cela en appels d'API vers SDA

  • SDA crée, met à jour ou supprime les ressources en conséquence

  • Terraform maintient l'état et garantit que l'état réel du système correspond à la configuration souhaitée


Disponibilité actuelle​

Le Terraform provider actuel offre les capacités suivantes :

  • Lecture des groupes de ressources
  • Création de groupes de ressources
  • Mise à jour des groupes de ressources
  • Suppression de groupes de ressources
    (y compris les hiérarchies imbriquées)

Des parties importantes de l'architecture du provider, des abstractions d'API et des patterns ont été établies et seront documentées ici au fur et à mesure de l'évolution du produit.

Notes techniques​

Le projet a été construit à l'aide des API GraphQL et REST de SDA :

  • GraphQL est très efficace pour la communication interne front-end ↔ back-end de SDA, mais plus complexe à implémenter dans un Terraform provider.
  • REST reste le standard de l'industrie pour les outils d'automatisation externes et nous continuerons à prendre en charge et à enrichir les endpoints REST pour nos clients.

Intéressé par l'utilisation du Terraform provider ?​

Le Terraform provider SDA est actuellement en private preview.
Nous accueillons volontiers les early adopters qui souhaitent explorer l'Infrastructure as Code pour les environnements SDA.

Si vous êtes intéressé par une participation, veuillez contacter SDA.

Nous travaillerons directement avec vous pour :

  • Évaluer vos cas d'usage
  • Activer l'accès à la private preview
  • Fournir un accompagnement à la prise en main
  • Recueillir vos retours afin de façonner la version finale