Skip to content Skip to footer
Infra as code

Comment intégrer l’infrastructure as code dans votre pipeline d’intégration continue ?

Le principe de l’intégration continue (CI/CD) vise à identifier des problèmes d’intégration le plus tôt possible dans les cycles de développement. Lors du développement d’une fonctionnalité, son développeur écrit également un test qui lui est associé. Si aucune erreur n’est trouvée, le serveur d’intégration déploie le code en production. Et dans cette démarche d’intégration et de livraison continue, la logique veut que tout devienne code. Concrètement, la technologie permet aujourd’hui d’automatiser la création et la configuration de machines virtuelles avec du code. L’infra as a code (IaC) permet non seulement de poser un langage commun entre le monde des Devs et des Ops, mais également une utilisation commune. Cette façon d’aborder l’infrastructure par le code permet d’approvisionner et d’administrer automatiquement une infrastructure informatique. Elle ne nécessite que l’usage du code, s’affranchit des processus manuels et économise des ressources.

Démarche et conseil sur l’infrastructure as code

Pourtant il existe encore beaucoup de services qui restent bloqués sur le fait qu’une infrastructure ne pourrait se gérer que depuis une console, ou directement dans le datacenter. Aujourd’hui il faut challenger vos processus en les mettant à plat, et trouver un langage de développement commun, mais aussi des outils. L’IaC est donc une composante essentielle pour la mise en œuvre de l’intégration continue et de la distribution continue : vos déploiements d’applications n’ont plus à attendre que l’infrastructure soit prête, et vos administrateurs systèmes n’ont plus à gérer de longs processus manuels.

Notre vision

Permettre à vos équipes de développement et d'exploitation de s’aligner grâce à l’infrastructure as code

Notre expérience montre qu’il est possible d’accélérer, de fiabiliser et d’automatiser le déploiement et la mise en production avec l’infrastructure as code. Nous voyons notre démarche comme la possibilité de partir d’une page blanche pour déployer une infrastructure spécifiquement pensée pour une application. Elle permet également à vos développeurs de travailler sur une infrastructure qui se rapproche beaucoup de celle de la production, quel que soit votre environnement. Vos développeurs peuvent donc coder dans des conditions « réelles ».
Cette approche favorise une intégration continue efficace, et vous donne un environnement de référence. Vous pouvez ainsi générer un binaire de manière reproductible et sécurisé. C’est également cet environnement qui sera utilisé par la suite pour lancer le binaire en production. Cela permet d’éviter les problèmes lors de la mise en production quand chaque développeur compile de son côté.

Mais pour automatiser un environnement, encore faut-il que celui-ci soit cohérent. Et comment faire si votre équipe de développement et votre équipe d’exploitation ne s’alignent pas sur la façon de configurer les environnements ? L’IaC aide vos équipes de développement et d’exploitation à s’entendre en partageant une description commune du déploiement des applications. Cette démarche se rapproche ainsi de l’approche DevOps.

Concrètement

Faire en sorte que votre infrastructure et les applications partagent le même pipeline CI/CD

Nous recommandons d’appliquer à votre infrastructure IT les pratiques DevOps via l’IaC. En effet, l’infrastructure elle-même peut passer par le pipeline CI/CD utilisé par les applications lors du développement d’un logiciel. Il est donc possible de lui soumettre les mêmes tests et contrôles des versions. Avec un avantage de taille : les changements appliqués peuvent être annulés très facilement.

La réponse se trouve donc dans l’automatisation et la possibilité de lancer des tests de façon automatisée avec l’intégration continue. Les environnements peuvent être créés automatiquement à la demande et mis à jour lors du déploiement de la prochaine configuration. Cependant, nos experts sont convaincus que l’IaC est une démarche qui va bien au-delà de son but primaire, c’est-à-dire déployer de l’infrastructure. Ce type d’infrastructure donne en effet la possibilité de déployer aussi une approche service. Elle peut amener par exemple de la sécurisation avec le DevSecOps, du FinOps, ou des mécaniques bien pensées de scaling et de gestion de la ressource. L’IaC permet donc à vos équipes infras de faire beaucoup.

  • Déploiement d’un pipeline CI/CD
  • Automatisation des tests et maîtrise des risques d’erreurs
  • Alignement des équipes de développement et d’exploitation
  • Création d’un environnement de référence
  • Amélioration du time to market

L’infrastructure passe par le même pipeline CI/CD utilisé par les applications lors du développement d’un logiciel

1ère étape : l'automatisation

Automatiser

Etape : Reproductibilité

Reproductibilité

Etape : le service

Service

Etape : la mise en cohérence

Cohérence

Allons-y

Nos propositions pour mettre en œuvre cette approche moderne de l’infrastructure

Les équipes et centres de compétences Digital et Infrastructures au sein de l'ESN Inside

Il existe deux types d’approches pour aborder l’IaC : impérative ou déclarative. Nous avons pour habitude d’utiliser Ansible pour l’impératif, et Terraform pour le déclaratif. L’approche impérative apporte le principe de l’idempotence. Cela signifie qu’une opération a toujours le même effet qu’on l’applique une ou plusieurs fois. Elle a notre préférence, car elle permet de garantir que les choses seront telles qu’elles ont été pensées à l’origine. Par définition, une production bouge régulièrement. Et quelqu’un peut créer un incident et oublier de revenir en arrière, oublier de nettoyer le code… L’approche déclarative ne va pas forcément traiter ces problèmes, alors que l’approche impérative peut aisément garantir qu’il n’y aura pas d’altération. 

Terraform propose une multitude d’interfaçages qui permet d’adresser quasiment toutes les infrastructures, qu’elles soient virtuelles ou physiques. Il peut faire de l’AWS, du GCP, de l’Alibaba, de l’On-premise… C’est le langage par excellence de l’IaC, qui permet de déployer une infrastructure en 3 commandes. 

Mais de manière plus générale, il faut toujours avoir une approche agnostique. Gardez à l’esprit qu’il faut d’abord déployer un pipeline CI/CD pour un déploiement automatique, et utiliser les meilleurs outils en fonction des besoins et de l’existant. 

Avec cette approche de l’infrastructure, il n’est donc pas uniquement question de rationalisation, de fiabilisation ou de sécurisation, mais également de performances. Ainsi, à travers l’IaC et l’automatisation, votre entreprise peut accélérer son time to market ou son time to business.  

Notre audit de chaîne de déploiement continu

Nous réalisons une analyse de vos processus d’automatisation afin d’identifier des pistes d’optimisation.

L'industrialisation des infrastructures

Nous vous accompagnons pour mettre en place une démarche d’IaC et moderniser le déploiement et la gestion de vos infrastructures.

transformation digitale, accompagnement dsi, projets IT, devops, infrastructures cloud

Vous souhaitez échanger avec nos experts autour de l’infrastructure as code et de l’intégration continue, c’est par ici !