Jump to section

L'IaC (Infrastructure-as-Code), qu'est-ce que c'est ?

Copier l'URL

L'IaC (Infrastructure-as-Code) consiste à gérer et à approvisionner une infrastructure à l'aide de lignes de code plutôt que par des processus manuels.

L'IaC implique la création de fichiers de configuration qui contiennent les caractéristiques de l'infrastructure, ce qui facilite les modifications et la distribution des configurations. L'IaC permet également de s'assurer que le même environnement est fourni à chaque fois. En codifiant et en documentant les caractéristiques de configuration, l'IaC facilite la gestion des configurations et permet d'éviter les changements de configuration ad hoc non documentés.

Le contrôle des versions est une partie importante de l'IaC : les fichiers de configuration doivent être gérés par un système de contrôle de source comme n'importe quel autre fichier de code source de logiciel. Le déploiement de type IaC permet également de scinder l'infrastructure en modules qui peuvent ensuite être combinés de différentes façons, de manière automatisée.

Par l'automatisation du provisionnement de l'infrastructure selon l'approche IaC, les développeurs n'ont plus besoin d'approvisionner ni de gérer manuellement les serveurs, les systèmes d'exploitation, le stockage et les autres composants de l'infrastructure chaque fois qu'ils développent ou déploient une application. La codification de l'infrastructure fournit un modèle à suivre pour le provisionnement et, même si l'opération peut toujours se faire manuellement, il est possible d'utiliser un outil d'automatisation tel que Red Hat® Ansible® Automation Platform

Il existe deux approches pour aborder l'IaC : une approche déclarative et une approche impérative. 

Selon l'approche déclarative, l'état souhaité du système doit d'abord être défini, y compris les ressources nécessaires et leurs propriétés. Un outil IaC se chargera ensuite de la configuration. 

Cette approche permet également de dresser une liste de l'état actuel des objets du système, ce qui rend le démontage de l'infrastructure plus simple à gérer.

Selon l'approche impérative, ce sont les commandes spécifiques nécessaires pour obtenir la configuration souhaitée qui doivent être définies, et ces commandes doivent ensuite être exécutées dans le bon ordre. 

De nombreux outils IaC utilisent une approche déclarative et fourniront automatiquement l'infrastructure souhaitée. Si vous apportez des modifications à l'état souhaité, l'outil IaC déclaratif appliquera ces modifications pour vous, alors que l'outil impératif vous demandera de déterminer la manière dont ces changements doivent être appliqués.

Les outils IaC sont souvent capables de fonctionner selon les deux approches, mais ont tendance à privilégier une seule approche.

Le provisionnement de l'infrastructure a toujours été un processus manuel long et coûteux. Aujourd'hui, la gestion de l'infrastructure ne s'effectue plus au niveau du matériel physique dans les datacenters (même si de nombreuses entreprises y ont encore recours) mais plutôt au niveau de la virtualisation, des conteneurs et du cloud computing

Avec le cloud computing, le nombre de composants d'infrastructure a augmenté, de même que le nombre d'applications mises en production chaque jour. L'infrastructure doit donc pouvoir être mise en service, mise à l'échelle et démontée fréquemment. Sans l'IaC, il devient de plus en plus difficile de gérer la taille des infrastructures actuelles.

Avec l'IaC, votre entreprise peut gérer les besoins en matière d'infrastructure informatique tout en améliorant la cohérence et en réduisant le nombre d'erreurs et d'opérations manuelles de configuration.

Avantages :

  • Réduction des coûts
  • Accélération des déploiements
  • Diminution du nombre d'erreurs
  • Amélioration de la cohérence de l'infrastructure
  • Élimination des écarts de configuration

Étendre sa stratégie IaC aux opérations de maintenance 

Les entreprises commencent à utiliser les pratiques de leur stratégie IaC (Infrastructure-as-Code ou infrastructure en tant que code) pour automatiser les processus informatiques à chaque étape du cycle d'exploitation. Avec l'IaC, les équipes informatiques ont standardisé la création, le provisionnement et le déploiement de l'infrastructure. Elles peuvent maintenant adopter l'approche OaC (Operations-as-Code ou exploitation en tant que code) pour codifier la gestion et la maintenance des systèmes après leur déploiement. Cette approche se prolonge avec l'approche PaC (Policy-as-Code ou politique en tant que code), qui permet d'automatiser les processus liés à la gouvernance, la sécurité et la conformité des applications et des solutions.

Fortes de l'expérience gagnée en automatisant l'IaC, les équipes informatiques peuvent utiliser les mêmes méthodes et outils pour gérer l'exploitation de manière plus efficace et adaptable tout au long du cycle de développement.

Les outils de gestion des configurations et d'automatisation des serveurs conviennent généralement. Il existe également des solutions spécialisées pour l'IaC. 

Voici quelques-unes des solutions les plus utilisées :

  • Chef
  • Puppet
  • Red Hat Ansible Automation Platform
  • SaltStack
  • Terraform
  • AWS CloudFormation

La solution Ansible Automation Platform permet d'approvisionner des systèmes d'exploitation et des périphériques réseau, de déployer des applications et de gérer les configurations.

L'IaC est une partie importante de la mise en œuvre des pratiques DevOps et CI/CD (intégration continue/distribution continue). Elle soulage les développeurs de la plupart des tâches de provisionnement. Ils n'ont plus qu'à exécuter un script pour que leur infrastructure soit opérationnelle.  

Ainsi, les déploiements d'applications ne sont pas retardés le temps que l'infrastructure soit prête, et les administrateurs système n'ont pas à gérer les processus manuels chronophages. 

L'approche CI/CD repose sur l'automatisation et la surveillance continues tout au long du cycle de vie de l'application, des phases d'intégration et de test jusqu'à la distribution et au déploiement. 

Pour automatiser un environnement, il faut que celui-ci soit cohérent. Il est impossible d'automatiser le déploiement d'une application si l'équipe de développement et l'équipe d'exploitation ne se mettent pas d'accord sur la manière de déployer les applications ou de configurer les environnements.

L'entente entre les équipes de développement et d'exploitation selon une approche DevOps permet de réduire le nombre d'erreurs, de déploiements manuels et d'incohérences. 

L'IaC aide les équipes de développement et d'exploitation à s'accorder, car elles peuvent utiliser la même description du déploiement des applications, ce qui va dans le sens d'une approche DevOps.

Aussi, vous devez appliquer le même processus de déploiement à tous vos environnements, y compris à l'environnement de production. L'IaC génère le même environnement chaque fois qu'il est utilisé.

L'IaC supprime également la nécessité d'assurer la maintenance des environnements de déploiement individuels, avec des configurations uniques qui ne peuvent pas être reproduites automatiquement, et garantit que l'environnement de production sera cohérent.

Les meilleures pratiques DevOps sont également appliquées à l'infrastructure via l'approche IaC. L'infrastructure peut passer par le même pipeline CI/CD qu'une application lors du développement d'un logiciel, en appliquant les mêmes tests et le même contrôle des versions au code de l'infrastructure.

La création d'une approche d'automatisation à l'échelle de l'entreprise vous permet d'automatiser non seulement les processus informatiques, mais également les technologies, équipes et services dans leur ensemble. 

La solution Red Hat® Ansible® Automation Platform comprend tous les outils nécessaires pour mettre en œuvre l'automatisation à l'échelle de l'entreprise, notamment des playbooks, une solution orientée événement, un tableau de bord visuel et des outils d'analyse. La solution Ansible Automation Platform utilise également des webhooks pour automatiser les workflows IaC et prendre en charge les pratiques GitOps.

Les playbooks Ansible, rédigés en YAML, décrivent l'état souhaité de vos systèmes. Ils sont généralement stockés dans un système de contrôle de source. La solution Ansible Automation Platform se charge de faire passer vos systèmes à l'état souhaité, quel que soit leur état actuel. 

La solution Ansible Automation Platform augmente la reproductibilité et la fiabilité des installations, des mises à niveau et de la gestion au quotidien.

Avec la solution d'automatisation adéquate, vous pouvez déployer plus rapidement de nouveaux services et applications, gérer plus efficacement l'infrastructure informatique et constater une amélioration de la productivité en matière de développement d'applications.

Lire la suite

Article

Apprendre les bases d'Ansible

Ansible permet d'automatiser les processus informatiques tels que le provisionnement et la gestion des configurations. Apprenez les bases d'Ansible en lisant cette présentation des concepts clés.

Article

La gestion des processus métier, qu'est-ce que c'est ?

La gestion des processus métier est une pratique de modélisation, d'analyse et d'optimisation des processus métier de bout en bout qui vous permet d'atteindre vos objectifs métier stratégiques.

Article

Red Hat, un partenaire de choix en matière d'automatisation

La solution Red Hat Ansible Automation Platform comprend tous les outils nécessaires au partage des processus d'automatisation entre les équipes et à la mise en œuvre de l'automatisation à l'échelle de l'entreprise.

En savoir plus sur l'automatisation

Produits

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Plateforme pour la mise en œuvre de l'automatisation à l'échelle de l'entreprise, quelle que soit votre situation.

Ressources

Formations

Cours gratuit

L'essentiel d'Ansible : automatiser en toute simplicité – Présentation technique

Cours gratuit

Red Hat Ansible Automation pour SAP