Infrastructure as Code pour les environnements d'automatisation industrielle
SEW-EURODRIVE introduit un fournisseur Terraform qui permet aux clients de définir, déployer et gérer les ressources de la plateforme SEW à 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 SEW.
Pourquoi nous l'avons développé
Lorsqu'un nouveau tenant est créé dans SEW, les clients doivent généralement configurer un large éventail de ressources : projets, appareils, passerelles, coffres-forts, documents, groupes de ressources, etc. Aujourd'hui, cela ne peut être réalisé 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 via les API SEW
L'utilisation des API REST ou GraphQL est plus évolutive que la configuration manuelle, mais elle présente ses propres défis :
- Nécessite un effort de développement important et une bonne connaissance de nos API
- Les scripts tendent à accumuler du code boilerplate
- 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 difficultés ralentissent inutilement la mise en service de nouveaux sites et tenants et introduisent un risque opérationnel superflu.
Ce que nous construisons
Pour résoudre ces problèmes, SEW développe un fournisseur Terraform natif qui s'appuie sur le framework IaC standard du secteur proposé par 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
- La suppression
- La gestion de l'état
Il s'agit de la même technologie que SEW utilise en interne pour gérer sa propre infrastructure cloud AWS.
Ce que permet le fournisseur Terraform
Une fois entièrement implémenté, les clients pourront provisionner et gérer toutes les ressources SEW 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 SEW
Les configurations Terraform peuvent être stockées dans Git comme tout 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 SEW via un fournisseur personnalisé qui fait le lien entre les fichiers de configuration déclaratifs de Terraform et les API SEW (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 SEW
-
SEW 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 fournisseur Terraform actuel offre les capacités suivantes :
- Lecture des groupes de ressources
- Création de groupes de ressources
- Mise à jour des groupes de ressources
- Suppression des groupes de ressources
(y compris les hiérarchies imbriquées)
Des parties importantes de l'architecture du fournisseur, 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é développé à l'aide des API GraphQL et REST de SEW :
- GraphQL est très efficace pour la communication interne front-end ↔ back-end de SEW, mais plus complexe à implémenter dans un fournisseur Terraform.
- REST demeure le standard du secteur 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 fournisseur Terraform ?
Le fournisseur Terraform de SEW est actuellement en private preview.
Nous accueillons volontiers les early adopters souhaitant explorer l'Infrastructure as Code pour les environnements SEW.
Si vous souhaitez participer, veuillez contacter SEW.
Nous travaillerons directement avec vous pour :
- Évaluer vos cas d'usage
- Activer l'accès à la private preview
- Fournir un accompagnement à la mise en service
- Recueillir vos retours afin de façonner la version finale