Pourquoi Dockeriser son site web ? Simplifiez la vie à vos développeurs et testeurs !

Avant même de songer à déployer Docker en production, la technologie des containers présente des atouts intéressants tout au long de la chaîne de développement des applications, depuis le poste de développeur aux environnements de pré-production, test, intégration. "Ce qui est important, c’est avoir une continuité entre les environnements de développement, de pré-production jusqu’à la production", estime Stéphane Vincent, directeur des offres et de l’innovation chez Alter Way. Dans cette optique, la société de service n’a pas hésité à "dockeriser" l’intégralité de sa chaîne d’intégration continue. Des centaines de projets sont ainsi développés sur des containers même si, au final, le client ne va pas déployer sur la plateforme Docker.

Une chaîne de développement-déploiement intégrée

Stéphane Vincent, directeur des offres et de l’innovation chez Alter Way et Hervé Leclerc, directeur technique d’Alter Way. © Alter Way

La raison n°1 invoquée, c’est la souplesse avec des postes de développement totalement banalisés. "Tous nos postes de développeurs ont été dockerisés. Avant, ceux-ci étaient figés, sur par exemple une Linux Debian avec tel environnement graphique et des versions données pour PHP, pour la base de données...", explique-t-on chez Alter Way.  "Avec l’arrivée de Docker, dès les phases de développement, nous pouvons mettre en place un environnement exactement identique à celui qui sera utilisé en intégration continue, en pré-production et en production." Il est possible d’utiliser des containers avec exactement les mêmes versions des briques logicielles sur lesquelles s’appuiera l’application en production.

Pour les tests, il suffit de quelques secondes pour échanger le container PHP par exemple, en vue de tester le comportement de l’application sur une version plus récente du langage. Ce recours à Docker sur le poste du développeur prend toute sa dimension lorsque celui-ci est amené à intervenir sur plusieurs projets en parallèle, pour faire de la maintenance par exemple. "Pour le développeur qui fait de la maintenance sur cinq projets à la fois, il lui suffit de relancer tous les containers spécifiques d’un projet pour se retrouver exactement dans la bonne configuration pour corriger le bug", considère Hervé Leclerc, directeur technique d’Alter Way. "En quelques secondes, il peut changer de configuration pour passer à une autre application. En environnement mono-projet, Docker est intéressant, mais en mode multi-projet, c’est carrément extraordinaire."

Bénéficier du comportement exact de l’application telle qu’elle sera en production

Tout comme avec la virtualisation, avec Docker le poste de développement peut être banalisé, le développeur peut travailler sous Linux, Windows ou sous MacOS, mais à la différence de la virtualisation, Docker est très léger et un grand nombre de containers peuvent fonctionner sur le poste du développeur. "Comme cela, on peut simuler des architectures complexes qui sont à iso-production", affirme Herve Leclerc. "Le développeur est assuré d’avoir le comportement exact de l’application telle qu’elle sera en production, avec exactement les bonnes versions de chaque composant. Les configurations complexes comme par exemple la mise en œuvre de cluster de bases de données, sont très faciles à simuler avec Docker. Dès le développement, on peut se placer en iso-production avec un cluster Galera sur MySQL, par exemple, sur le poste de développement. On n’a plus le phénomène du bug que le développeur n’arrive pas à constater sur son poste de travail."