DevOps: vers l’infrastructure self-service

07 Février 2018 Par David Ledanseur
(Photo: Post Luxembourg)

DevOps est le rapprochement entre l’univers du développement et celui de l’infrastructure. Le développement logiciel devient une collaboration étroite entre deux mondes qui travaillaient traditionnellement de manière cloisonnée. Aujourd’hui, l’échange de compétences est de mise. Chacun acquiert du métier de l’autre des idées et pratiques pour développer sa propre efficacité.

Les développeurs ont besoin de connaissances réseau et système pour déployer leurs applications sur des infrastructures virtuelles. Tandis que les Ops acquièrent les bonnes pratiques issues du développement d’applications fonctionnelles, l’infrastructure s’automatise et devient plus fiable à mesure que les profils IT deviennent plus hybrides.

L’Infrastructure embrasse de nouveaux concepts

  • Infrastructure as code

Au nombre des nouvelles tendances, on compte l’infrastructure as code qui conçoit la configuration de l’infrastructure comme la gestion des fichiers sources d’une application. Elle peut alors être régie par un outil de gestion de versions pour suivre l’évolution et mieux gérer son exécution.

Des outils de provisionnement tels que Chef, Puppet ou Ansible, sont en plein essor. Ils remplacent progressivement l’utilisation de scripts par une formalisation déclarative de l’état dans lequel les serveurs doivent se trouver à la fin de leur configuration.

  • Infrastructure immuable

Ces outils atteignent pourtant leurs limites. D’abord parce qu’ils sont conçus pour opérer sur des serveurs existants. Ensuite parce que la configuration des serveurs évolue et s’altère au fil du temps en rendant l’exécution de ces outils imprévisible. À l’heure du Cloud privé ou public, la création d’un serveur est l’affaire d’un simple appel d’API. Il est donc possible d’industrialiser la construction et destruction d’instances virtuelles par l’utilisation d’outils de provisionnement dédiés comme Terraform par exemple.

Quant à l’instabilité liée à l’évolution du serveur, la solution est aussi simple que radicale: la configuration d’un serveur doit être systématiquement reconstruite et ne plus changer au cours de la vie du serveur. On parle alors d’infrastructure immuable.

  • Docker

Les développeurs d’applications utilisent déjà ce paradigme lorsqu’ils font usage de la containérisation à l’aide de Docker par exemple. Sur ce type de plateformes, les applications sont construites à partir d’un système de fichier de base, auquel on ajoute le nécessaire pour l’exécution de l’application, ainsi que son script ou binaire. Lorsqu’une nouvelle version est nécessaire, ce processus est répété et le conteneur précédent est détruit pour être remplacé par une nouvelle instance. Pour fiabiliser ce processus, il est nécessaire d’appliquer les pratiques bien connues des développeurs: la création des conteneurs est automatisée par la mise en place d’une chaîne d’intégration et/ou de déploiement continu, permettant de construire les images et d’exécuter les tests au fil du développement pour s’assurer de son bon fonctionnement.

  • Chaîne automatisée

Docker n’est pas la réponse ultime à tous les cas de figure. Il est en effet fréquent de devoir se reposer sur la création de machines virtuelles pour exécuter des services. Mais le principe reste le même. Les images sont construites sur une chaîne automatisée à partir de l’installation de base du système d’exploitation. On y ajoute l’installation des services nécessaires et souvent d’une application. Cette image est instanciée, les volumes de données éventuellement montés. Des tests peuvent être menés pour s’assurer de la conformité de l’image, opération primordiale pour s’assurer du bon fonctionnement des images avant leur utilisation en production.

Les systèmes de fichiers contenant les exécutables peuvent être placés en lecture seule. Plus aucune modification ne doit pouvoir être réalisée manuellement, renforçant ainsi la sécurité des installations.

Même dans le cas d’opérations comme le provisionnement d’hôtes physiques et leur inclusion dans une IaaS, des solutions existent. Elles sont notamment basées sur PXE (Pre-Boot eXecution Environment). La gestion d’un data centre s’oriente donc vers le maintien d’une chaîne automatisée, qui débute à l’allumage du serveur puis déclenche l’installation du nécessaire sans aucune autre intervention humaine. Cette automatisation s’appuie sur des pratiques de développement d’applications traditionnelles.

 LIRE LA SUITE DE L’ARTICLE

Retrouvez l'intégralité de ICT Expert Luxembourg

La rédaction a choisi pour vous

Le tram passe au plus près de la Schueberfouer cette année.

17 Août 2018

La Schueberfouer, 678e du nom, est en approche. Cette fête foraine qu’on ne présente plus au Luxembourg doit accueillir deux millions de personnes cette année, du 23 août au 11 septembre prochain. Et pour la deuxième année consécutive, le tram bouscule la Fouer. Explications.