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, et s’affranchit des processus manuels. 

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

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. Mais nous sommes 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 FineOps, 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 plus.

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. Mais nous sommes 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 FineOps, 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 plus.

  • Déploiement d’un pipeline CI/CD
  • Automatisation des tests
  • 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

Automatiser

Reproductibilité

Service

Cohérence

Allons-y

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

En quoi notre CDC Digital Foundation accompagne nos Ingénieurs DevOps dans leur carrière ?

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.  

Audit de chaîne de déploiement continu

Ils sont basés sur des bibliothèques de CVE (Common Vulnerabilities and Exposures) qui référencent et numérotent de manière publique toutes les failles de sécurité connues ainsi que les méthodes d’attaques utilisées.

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 !