Connexion
<< Retour au portail

Le mouvement DevOps, l’intégration continue et les conteneurs Docker

Alors que la virtualisation est à présent une technologie mature, incontournable dans les infrastructures systèmes et réseaux, on assiste à l’arrivée de conteneurs de virtualisation, et à la montée en puissance d’outils comme Docker. L’émergence du mouvement « DevOps », qui combine les prérogatives des Développeurs et des Administrateurs Systèmes, auparavant séparés dans des équipes distinctes, est une réalité. Ces métiers se rejoignent de plus en plus pour être en mesure de faire de l’intégration continue. C’est à dire ne plus développer selon le cycle classique (développement - tests - mise en production - développement d’une nouvelle grosse version - tests - mise en production), avec parfois des délais énormes entre chaque livraison. Mais plutôt pousser les mises à jour mineures au fur et à mesure de leur développement et des tests, en continu. Cela pose le problème des différences de versions entre les environnements (développement, test, production), et du paramétrage nécessaire lors de chaque migration et déploiement. C’est là que Docker intervient.
Au contraire de la virtualisation classique qui consiste à virtualiser un système d’exploitation complet, un conteneur Docker virtualise uniquement un environnement d'exécution (système de fichiers, accès au réseau, processeur, RAM...). Il ne contient que l’application et ses dépendances. Ces environnements sont isolés les uns des autres et partagent le noyau de l’hôte. Ils sont beaucoup plus légers qu’une machine virtuelle traditionnelle en taille et en ressources consommées. Par conséquent, un hôte peut exécuter un très grand nombre de conteneurs Docker simultanément dans de bonnes conditions de performances. A la différence d’un système entièrement virtualisé, un conteneur Docker ne va contenir que le strict nécessaire à l’exploitation d’un service ou d’une application. Par exemple, des bibliothèques, un framework, des API et une application web. La base de données pourra être exécutée dans son propre conteneur. Un avantage des conteneurs est leur portabilité : un conteneur exécuté sur un poste de développement pourra être migré sur un poste de test avant d’être déplacé en production, sans qu’aucun paramétrage ou adaptation ne soit nécessaire. Il n’y a plus de problèmes de versions entre les différents environnements. Il suffit d’avoir des hôtes supportant la technologie de conteneur. Les développeurs peuvent travailler sereinement en se concentrant sur leur code, sans se préoccuper des versions de PHP, de framework, de serveur web… ou de paramétrage systèmes comme la ré-écriture d’URL, le mapping de ports ou la casse des chemins d’accès. Si leur code fonctionne en local sur leur poste de développement, ils sont assurés qu’il fonctionnera à l’identique en environnement de test et de production, évitant de longs et fastidieux réglages avec les administrateurs systèmes, qui pourront du coup se concentrer sur la maintenance, l’évolution, l’optimisation et la sécurisation de leurs infrastructures.

<< Retour au portail