Infrastructure as Code

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

Infrastructure as Code (IaC) est le concept de gérer et provisionner des machines au sein d'un centre de données uniquement à l'aide de fichiers de définition plutôt qu'une configuration manuelle, à travers des interfaces interactives ou physiquement[1]. Le périmètre du système d'information (SI) couvert par ces techniques peuvent aller des équipements eux-mêmes ("bare metal") aux machines virtuelles et leurs ressources associées (sous le format de configurations sur l'hyperviseur). L'ensemble des fichiers de définitions peuvent bénéficier d'un système de gestion de versions.

Le concept d'IaC peut se décliner sous le format de scripts ou plus souvent sous une forme de fichiers déclaratifs, interprétés en aval par l'orchestrateur idoine.

L'approche est souvent plébiscitée dans le cadre du cloud computing, qui l'utilise pour les services d'infrastructure as a service (IaaS). La différence entre les deux termes est importante : si IaC supporte IaaS, l'inverse n'est pas forcément vrai[1].

Concept[modifier | modifier le code]

Le concept d'IaC est né du besoin des entreprises à répondre efficacement à la transformation des architectures logicielles, devenues orientées web et pouvant être mises à l'échelle. La problématique d'alignement des ressources physiques aux besoins applicatifs était auparavant une problématique de grande entreprise informatique, elle s'est élargie à toute activité dont le service grandit[2].

C'est en 2006 qu'Amazon Web Services (AWS) introduit le concept durant la présentation d'Elastic Compute Cloud et de la première version de Ruby on Rails quelques mois auparavant[3]. L'apparition rapide de nouveaux outils d'orchestration qui suivit l'essor de ce marché porteur a permis au concept d'Infrastructure as Code de faire sens et de se développer au sein des acteurs d'architectures redimensionnables. L'idée de pouvoir modéliser une infrastructure de haut en bas avec du code permettait de centraliser les besoins d'une part, mais aussi d'appliquer les bonnes pratiques du développement logiciel, de la conception à l'implémentation, jusqu'au déploiement entier. L'avantage de cette approche est la capacité des développeurs de décrire et de déployer eux-mêmes leur infrastructure matérielle ; et en contrepartie de bénéficier de la rapidité de déploiement Agile[4].

En 2011, AWS introduit Infrastructure as Code sous la forme de fichiers déclaratifs à partir d'un modèle pour configurer ses instances IaaS par le biais de CloudFormation[5].

Avantages[modifier | modifier le code]

Les avantages liés à une approche Infrastructure as Code peuvent être déclinées en trois catégories : la réduction du cout, la rapidité d'exécution et la diminution du risque.[6]

Références[modifier | modifier le code]

  1. a et b Andreas Wittig et Michael Wittig, Amazon Web Services in Action, Manning Press, (ISBN 978-1-61729-288-0), p. 93
  2. Colin Fletcher et Terrence Cosgrove, Innovation Insight for Continuous Configuration Automation Tools, (lire en ligne)
  3. Joseph L. Bower et Clayton M. Christensen, « Disruptive Technologies: Catching the Wave », Harvard Business Review,‎ janvier-février 1995 (lire en ligne)
  4. Chris Riley, « Version Your Infrastructure », DevOps.com,‎ (lire en ligne)
  5. https://aws.amazon.com/about-aws/whats-new/2011/02/25/introducing-aws-cloudformation/
  6. Lori Macvittie, « How Deploy Frequency Impacts Infrastructure Stability », sur DevOps.com,