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