enanuchit - stock.adobe.com
IaC : Hashicorp arme la lutte contre les infrastructures à la dérive
Après avoir présenté la version 1.2 de Terraform en mai dernier, Hashicorp a profité de son événement européen pour présenter Drift Detection, un mécanisme qui simplifie la détection de dérives de configuration dans une infrastructure.
Pour bon nombre d’administrateurs système, d’architectes et de développeurs, Terraform est devenu le framework d’infrastructure as code par défaut.
L’outil open source a été pensé pour configurer, construire, modifier, voire versionner automatiquement des éléments bas niveau des infrastructures (déploiement d’instances, du réseau, allocation de capacités de calcul et de stockage, etc.). Puis, le logiciel a petit à petit inclus des moyens pour piloter des composants plus hauts niveaux (DNS, bases de données, logiciels SaaS, etc.).
Maintenant, les porte-parole de l’entreprise insistent sur le soutien aux « opérations J-2 », celles liées à la maintenabilité et à la stabilité des infrastructures cloud.
En ce sens, lors de la Hashiconf Europe, l’éditeur a présenté une nouvelle fonctionnalité nommée Drift Detection, disponible en bêta public depuis Terraform Cloud.
Drift Detection : automatiser la détection de la dérive de configuration
Comme son nom l’indique, le rôle de cette fonction est de vérifier les états de l’infrastructure pour détecter et notifier les changements de configuration. L’appellation découle d’un phénomène baptisé « dérive de configuration ». Ce problème apparaît quand l’infrastructure déployée dans le monde réel ne correspond plus à sa définition ancrée dans les fichiers Terraform. Ces dérives peuvent être dues à la chute d’une VM, au temps de latence élevée d’un DNS ou une mauvaise composition d’un fichier provider, par exemple. Pendant ce temps-là, l’infrastructure peut changer sous l’impulsion d’une équipe suivant l’évolution des besoins fonctionnels, ou pire selon le bon vouloir d’acteurs malicieux infiltrés.
Dans ces deux cas-là, les ressources peuvent être configurées en dehors de Terraform. La dérive est alors intentionnelle. « Supposons que je veuille déployer une instance EC2 depuis la console AWS », explique Michael Simo, ingénieur plateforme chez Honeycomb.io, dans une vidéo de présentation. « Par défaut, Terraform n’a aucun moyen de savoir quelle est cette ressource parce qu’elle n’est pas définie via HCL [le langage de programmation spécifique à Terraform, N.D.L.R.] ».
Aussi étrange que cela puisse paraître, Terraform Cloud ne bénéficiait pas jusqu’alors de mécanismes automatiques pour alerter des changements d’état aux opérateurs. Il fallait passer par un outil tiers de gestion de politique de configuration pour en être prévenu.
La méthode en place était plus manuelle. Avec Terraform, tous les changements d’état sont enregistrés dans un seul fichier : terraform.tfstate. À chaque exécution, la commande terraform plan permet de créer un plan d’exécution pour apercevoir les modifications dans l’infrastructure. Le plan lit le fichier d’état, dresse le portrait de l’infrastructure à l’instant T et la compare aux fichiers de configuration définis par l’opérateur. Les dérives sont alors détectées. Puis, Terraform demande d’appliquer les changements nécessaires ou l’opérateur peut revenir à la configuration établie au départ. Un processus complexe à mener manuellement quand les équipes IT doivent gérer des déploiements multicloud et hybrides.
Avec Drift Detection, sur Terraform Cloud, ce processus de vérification est automatique. « En arrière-plan, nous effectuons un rafraîchissement toutes les 12 à 24 heures », précise Armon Dadgar, cofondateur et CTO d’Hashicorp.
Aussi, les workspaces apportent une interface permettant de savoir quand la dernière audit des dérives a été opérée, quelles sont les ressources concernées, et d’avoir une visualisation des attributs modifiés. Ensuite, il est possible de valider les changements depuis un simple bouton.
À cela, s’ajoute la configuration des notifications via Slack, email ou tout autre système compatible avec un webhook. Drift Detection notifie les dérives et les échecs de vérifications.
Quand la résilience rejoint la conformité
Pourquoi maintenant ? Hashicorp a promis depuis la disponibilité de Terraform 1.0 qu’il s’affairait à la stabilité de son logiciel et des actifs qu’il peut manipuler.
De son côté, Armon Dadgar présente l’outil comme un moyen d’assurer la conformité de l’infrastructure. « Lorsque vous parlez de la plupart de ces contrôles réglementaires, les gens veulent savoir qui a fait quel changement. Pourquoi l’ont-ils fait ? Où ? Étaient-ils autorisés à le faire ? etc. », déclare-t-il.
Il y a pourtant une liste de bonnes pratiques bien établies pour éviter les dérives de configuration, mais elles peuvent se révéler inefficaces lorsque l’infrastructure nécessite des optimisations spécifiques.
En ce qui concerne les erreurs de configuration elles-mêmes, Hashicorp a introduit un mécanisme dans Terraform 1.2 pour s’en prémunir. Les pré et postconditions sont des blocs de code délimités par les utilisateurs afin d’anticiper des problèmes ou d’effectuer des vérifications avant le déploiement de ressources. Par exemple, avec la bonne règle écrite dans le code HCL, une erreur apparaîtra si un développeur tente de déployer une base de données sur une instance incompatible ou trop petite pour soutenir la charge de travail.
Armon DadgarCofondateur et CTO d’Hashicorp
Pour d’autres types de vérification que l’éditeur ne supporterait pas encore, il a présenté les Run Tasks en disponibilité générale. Cela permet d’exécuter des flux de travail de type CI/CD en ajoutant des outils tiers dans la boucle, comme Snyk pour la gestion des vulnérabilités, Vantage pour le contrôle des coûts ou Kion pour le respect de la conformité. Les Run Tasks peuvent également servir à intégrer les autres outils d’Hashicorp, par exemple Nomad pour l’orchestration de conteneurs ou plus couramment Vault, pour la gestion des secrets.
D’autres outils viendront. « Actuellement, nous avons une vingtaine de partenaires et nous souhaitons développer un écosystème complet autour de nos produits cloud », commente Armon Dadgar.
Normalement, Drift Detection entrera en disponibilité générale au prochain trimestre, après qu’il ait fait ses preuves auprès d’une bonne portion des 200 000 utilisateurs de Terraform Cloud.