Infrastructure as Code : une gestion plus simple des environnements

24 septembre 2018/Emilie Ravet

L'Infrastructure As Code simplifie l’administration de l’infrastructure IT. Le traitement ne s’appuie plus sur des processus manuels difficiles à suivre et favorisant les erreurs.Cette pratique clé de DevOps permet d’effectuer des changements d’infrastructure plus facilement, rapidement et de manière plus fiable tout en étant répétables.

Les silos sont contre-productifs ! Même avec le cloud, des équipes informatiques peuvent se retrouver avec des silos. C’est le cas avec l’IaaS.

Schématiquement, chaque application déployée dispose d’une infrastructure dédiée. Résultat, chacune est gérée de manière unique. D’où l’accumulation de silos, car dans de nombreux cas les opérationnels oublient de partager les serveurs qu’ils empruntent ponctuellement...

Qu'est ce que l'infrastructure as a code ?

Pour résoudre ce problème, des entreprises ont recours à l’IaC (Infrastructure as a Code). Appelée aussi « infrastructure programmable », l’IaC peut être assimilée aux scripts de programmation utilisés pour automatiser des processus IT importants.

À la différence près que ces scripts sont essentiellement destinés à automatiser une série d’étapes statiques qui doivent être répétées de nombreuses fois sur plusieurs serveurs.

L’IaC s’appuie sur un langage descriptif (DSL - Domain-Specific-Language) pour coder des processus de déploiement et de mise à disposition qui sont adaptatifs et plus polyvalents.

En un mot, il s’agit d’écrire du code pour provisionner et gérer un serveur, en plus d’automatiser les processus. Ce concept va donc au-delà de la simple automatisation de l’infrastructure.

En se référant aux pratiques DevOps, les équipes doivent s’assurer que les scripts d’automatisation sont en effet exempts d’erreurs, qu’ils peuvent être redéployés sur plusieurs serveurs et qu’ils peuvent être engagés à la fois par les équipes d’exploitation et de développement.

Les avantages de l’Infrastructure as Code

Les équipes qui implémentent une infrastructure en tant que code peuvent fournir des environnements stables rapidement et à grande échelle. Une commande de déploiement définit toujours l’environnement cible avec la même configuration, quel que soit l’état initial de l’environnement. C’est le principe de l’idempotence.

Pour l’équipe de développement, cet environnement unifié permet à l’équipe des opérations informatiques de gérer le cycle de vie continu des nouvelles applications.

Le second avantage est que le calcul, le stockage et la mise en réseau sont traités comme des pools de ressources fluides et désagrégées : dès qu’une ressource n’est plus nécessaire, elle retourne dans le pool, où elle peut être affectée à une autre application.

Par ailleurs, la gestion quotidienne et la mise à jour sont simplifiées. L’IaC permet de réaliser automatiquement des tâches de routine telles que la mise à jour du firmware, l’ajout de stockage ou la modification de la connectivité réseau. Les configurations matérielles sont maintenues sous forme de modèles logiciels qui sont stockés dans les mêmes référentiels que le code de l’application.

L’IaC séduit de plus en plus d’équipes au fur et à mesure de l’apparition d’outils (Ansible, Jenkins, Testinfra, Puppet...) qui facilitent l’ensemble du processus.

infrastructure as code ansiblePar exemple, Ansible modélise votre infrastructure informatique en décrivant comment tous vos systèmes sont reliés entre eux, plutôt que de gérer un seul système à la fois. Par ailleurs, il est possible de modifier les environnements non seulement pendant le lancement d’une instance, mais aussi lorsqu’une instance est déjà en cours d’exécution.

 

infrastructure as code puppet

Puppet peut notamment installer un serveur Apache, vérifier qu’il fonctionne correctement, créer un compte utilisateur et un mot de passe, le configurer sur un port spécifique et configurer de nouveaux hôtes virtuels. Le tout via du code.

Ces solutions rendent les environnements IaC accessibles à toute personne ayant une connaissance de base des techniques et des structures de codage modernes. C’est peut-être là le point faible de l’IaC.

Cette méthodologie doit être utilisée avec parcimonie et sous contrôle par des débutants. La facilité avec laquelle il est possible de faire tourner une centaine d’instances en quelques minutes peut aussi être à l’origine de dysfonctionnements...

Autre recommandation : préciser l’environnement aussi strictement que possible, en laissant peu de place au hasard...

L’IaC représente une réelle opportunité pour des équipes d’aller plus vite et mieux. Mais il faut raison garder. Comme dit le proverbe, « il ne faut pas confondre vitesse et précipitation ».

Renforcer sa reprise d'activité grâce au Cloud

Emilie Ravet
À propos de Emilie Ravet : Emilie est responsable Marketing en charge de la publication des articles du blog.

À lire ensuite

protection-donnees-aws

3 mesures indispensables pour protéger ses données dans AWS

La moitié des entreprises qui utilisent le service de stockage cloud Amazon Web Services (AWS) S3 ont subi au...

virtual

Six types de virtualisation

Réduction des coûts, utilisation efficace des ressources, meilleure accessibilité, minimisation des risques......

Cloud-Panne

Cloud et Panne : Ne pas sous-estimer les risques

Même s’ils répondent à des critères précis et à des certifications, TIER notamment, les data centers ne sont pas...