← Retour au blog
StackX Infrastructure as Code (IaC)Intelligence ArtificielleDevOpsTerraformCloud

IA(C) : Quel avenir pour l’infra as code à l’aube de l’ère de l’IA ?

L'intelligence artificielle transforme déjà la manière de développer des applications, mais qu'en est-il de l'Infrastructure as Code ? Génération automatique de code, agents IA, orchestration intelligente… les pratiques évoluent rapidement. Découvrez comment l'IA pourrait redéfinir le rôle des ingénieurs Cloud et DevOps, sans pour autant faire disparaître leur expertise.

Depuis l’arrivée de GPT, Claude, Gemini et tous leurs cousins, il est difficile de passer une journée sans entendre un collègue ou lire un article ou scroller sur un poste LinkedIn, qui nous explique que le métier de développeur sera bientôt complètement remplacé par l’IA. A l’inverse, les métiers qui gravitent autour de l’infrastructure sont beaucoup moins cités comme étant menacés. Le code qui permet de gérer l’infrastructure, en comparaison du code applicatif, serait-il d’une complexité extrême, voir ésotérique, pour que l’intelligence artificielle soit incapable de s’en approprier les préceptes ? Évidemment non ! Tous ceux qui utilisent l’infra as code au quotidien vont eux aussi voir leur façon de travailler évoluer et c’est cette évolution que nous allons tenter de prédire dans cet article.

● Quelques définitions Tout d’abord un petit rappel sur ce qu’est l’IAC pour les plus néophytes, voici donc comment le concept est définis par Red Hat, Wikipedia et Microsoft (dans cet ordre) :

<< L’IaC (Infrastructure-as-Code, ou infrastructure en tant que code) est une pratique qui consiste à gérer et provisionner une infrastructure à l’aide de lignes de code plutôt que de processus manuels. >>

<< L’Infrastructure as code (IaC) (littéralement : « infrastructure en tant que code ») est un ensemble de mécanismes permettant de gérer, par des fichiers descripteurs ou des scripts (code informatique), une infrastructure (informatique) virtuelle. >>

<< Infrastructure as code (IaC) utilise la méthodologie DevOps et le contrôle de version avec un modèle descriptif pour définir et déployer l’infrastructure, comme les réseaux, les machines virtuelles, les équilibreurs de charge et les topologies de connexion. >>

● Adoption et développement On comprend donc bien grâce aux définitions que le but premier de l’Infra as code, comme son nom l’indique, est de déployer son infrastructure avec du code et de remplacer les encyclopédies humaines capable de monter une infrastructure de tête sans erreurs (si si ça existe) ainsi que les pdf de 40 pages remplis de screenshots et de flèches rouges qui retracent pas à pas les actions manuelles permettant de déployer telles ou telles ressources chez tel ou tel Cloud provider.

Le principe d’utiliser du code pour gérer son infrastructure n’est pas si récent mais si on s’intéresse à l’évolution des Google Trends pour des termes comme IAC, Terraform ou encore Ansible c’est à partir de 2015 qu’on remarque le début d’une croissance exponentielle jusqu’en 2022, année à partir de laquelle la tendance se met à stagner. C’est évidemment les nombreux “move to cloud” qui ont démocratisé son utilisation et ont fait quasiment disparaître le click ops des bonnes pratiques des entreprises à tel point qu’il est aujourd’hui presque impossible d’en trouver une qui ne fait pas du tout d’infra as code.

● Et l’IA dans tout ça ? Même si l’IAC a transformé la gestion de l’infrastructure le concept et son utilisation ne reste qu’un moyen, plus scalable, plus résilient et plus robuste, certes, mais dont la finalité reste de passer de la situation “Je n’ai pas d’infrastructure” à “Mon infrastructure est déployée et fonctionnelle”. En prenant ce postulat en considération, quels impacts pourraient avoir l’IA ? Le point le plus évident (et qui est déjà répandu) est la génération du code (Terraform, OpenTofu, etc…) pour ensuite l’utiliser pour déployer des ressources.

De nombreux chatbot en sont déjà capable et même avec un prompt très simple tel que : “Give the Terraform code to deploy a simple VM in Azure”

ChatGPT nous répond : #———————- #Virtual Machine (Linux) #———————- resource « azurerm_linux_virtual_machine » « vm » { name = « vm-simple » resource_group_name = “myrg” location = “francecentral” size = « Standard_B1s » admin_username = « azureuser » network_interface_ids = [ azurerm_network_interface.nic.id ] admin_ssh_key { username = « azureuser » public_key = file(« ~/.ssh/id_rsa.pub ») } os_disk { caching = « ReadWrite » storage_account_type = « Standard_LRS » } source_image_reference { publisher = « Canonical » offer = « 0001-com-ubuntu-server-jammy » sku = « 22_04-lts » version = « latest » } }

Évidemment en lui donnant si peu d’informations, le chatbot va déduire ou proposer certains paramètres, mais le code reste fonctionnel tel quel. Après cet exemple basique, poussons un peu plus notre imagination, la mode étant aux “Agents IA”, on pourrait imaginer un workflow d’agents générateurs de code, exécutant le code, etc… avec au milieu une étape (ou non) de validation par un humain. Certaines solutions existent déjà mais il est possible également de construire son propre workflow avec un orchestrateur d’agents, voici quelques exemples :

Solutions  clefs en main :

Firefly : Outils qui unifie l’IAC en automatisant le provisioning, en appliquant les policies et en détectant le drift. Grâce à des intégrations profondes, il garantit la sécurité et la compliance tout au long du cycle de vie des ressources dans le cloud

Spacelift : Plateforme d’automatisation pour l’infrastructure as code qui intègre de plus en plus de capacités d’IA pour assister les équipes DevOps. Grâce à l’IA, elle aide à analyser les changements, détecter les risques, proposer des optimisations et agir comme un agent intelligent pour sécuriser et accélérer la gestion des déploiements

Solutions orchestrateur :

n8n : Plateforme d’automatisation open source qui permet d’orchestrer des workflows intégrant des agents IA et des services externes. Elle facilite la création d’agents intelligents capables de raisonner, d’appeler des API et d’automatiser des tâches complexes sans dépendre d’un code lourd.

Dify : Plateforme open source dédiée à la création et au déploiement d’applications basées sur des agents IA et des LLM. Elle permet de concevoir facilement des assistants intelligents, de gérer les prompts, les bases de connaissances et les chaînes d’outils pour construire des solutions IA personnalisées.

A court terme ce type d’implémentation est réalisable sans trop de difficulté que ça soit pour les solutions clefs en main ou bien en construisant ses propres workflows.

Dans les deux situations précédentes, la gestion de l’IAC est “augmentée” grâce à l’IA mais reste globalement la même qu’à l’heure actuelle, la différence entre les deux est surtout le pourcentage de travail qu’effectue un humain, et même si ce dernier diminue une personne réelle avec des connaissances en infrastructure doit tout de même intervenir dans le processus. Mais en poussant un peu plus notre réflexion, pourrait-on imaginer que ce pourcentage tombe à 0 ? Va-t-on voir un jour apparaître des chatbots directement intégrés chez les cloud providers et avec lesquels nous pourrons discuter en langage naturel, sans aucun bagage technique et qui déploieront l’infrastructure liées à nos besoins ? Même si pour l’instant les Clouds provider ne semble pas emprunter cette route, au vu de l’explosion du no-code (ou low code), qui permet à des non développeur de créer des applications dans de nombreux langage de programmation, on peut légitimement penser que le même phénomène se propage à la couche infra qui permettra à l’application d’être déployée, le code deviendra alors le prompt et le fichier d’état sera remplacé par le fameux contexte (l’historique de conversation des chatbots).

● Que peut-on conclure de tout ça ? Aujourd’hui l’Infra-as-code a encore un bel avenir car l’IA n’est pas encore assez mature ou du moins les géants du Cloud n’ont pas la volonté (ou ne sont pas prêts) de l’utiliser pour remplacer l’IAC à court terme. On peut également s’interroger sur les limitations de l’IA en termes de sécurité, d’optimisation et de coût financier qui sont souvent des décisions partiales pour lesquelles il n’y a pas toujours de solutions parfaites mais plutôt des bonnes solutions avec des compromis. Mais est ce que nous arriverons au même constat dans 5 ans ? 10 ans ? Il est difficile de répondre avec certitude mais il est certain que nos métiers vont évoluer et qu’il est nécessaire de s’approprier les outils d’intelligence artificielle (agent, chatbot, LLM, etc…).

Références : – Morris, K. (2020). Infrastructure as code. O’Reilly Media. – Rahman, A., Mahdavi-Hezaveh, R., & Williams, L. (2019). A systematic mapping study of infrastructure as code research. Information and Software Technology