Pourquoi Dockeriser son site web ? Monter en charge à l’infini et au-delà !

Outre son étanchéité, l’atout n°1 du container Docker c’est sa légèreté. Les hébergeurs et opérateurs de cloud l’adorent puisqu’ils peuvent exécuter des milliers, des dizaines de milliers de containers sur une machine chaque jour et donc exploiter au maximum leurs infrastructures et donc les rentabiliser au mieux.

Des containers qui s'auto-configurent pour gérer la montée en charge

Joaquim Dos Santos est directeur de Recherche et Développement chez Ikoula. © Ikoula

Du côté de l’entreprise qui veut fournir un service sur le Web, la légèreté et la rapidité de mise en production d’un container permet de faire coller les ressources serveur au plus près de la demande générée par les internautes. Les internautes affluent sur le site et la charge des serveurs web s’accroit ? En quelques secondes, 3, 5, 10 nouveaux serveurs HTTP sont en ligne pour faire face.  "C’est la façon la plus simple pour tirer parti de la puissance de Docker", estime Joachim Dos Santos, directeur Recherche et Développement chez Ikoula. L’expert détaille le fonctionnement de Docker dans un tel cas de figure : "Des containers spécialisés tels que hipache, nginx-proxy, permettent de modifier les flux de trafic. Ils utilisent Dockergen, c'est-à-dire la possibilité pour un container de discuter avec le daemon Docker et lui poser des questions. C’est ce qui permet à ces containers de modifier de manière dynamique leur configuration pour prendre en compte l’arrivée de nouveaux containers dans l’architecture. C’est comme cela que l’on peut lancer 15 nouveaux containers Apache en cas d’accroissement du trafic et que le reverse-proxy va pouvoir les intégrer en temps réel dans sa configuration."

Dockeriser la base de données se révèle plus délicat

Si Docker est une solution idéale pour faire monter en charge des containers dédiés au traitement, l’approche est plus complexe au niveau des données. "La difficulté réside dans le besoin de faire montrer en puissance une application qui a besoin de persistance", estime Joachim Dos Santos. "Docker va faciliter la vie pour déployer MySQL sur plusieurs nœuds, soit en mode actif-passif, soit en mode distribué, mais il va falloir configurer les choses de manière à bien prendre en compte le besoin de persistance des volumes. Autant Docker donne droit à l’erreur sur le déploiement des containers de calcul, autant le déploiement de bases de données et de volumes de stockage persistants ne donne pas droit à l’erreur." Beaucoup sont ceux à préférer déployer la partie données sur des architecture "bare metal" pour que la base de données, bien optimisée, puisse délivrer sa performance maximale, quitte à perdre la souplesse de Docker sur cette brique d’architecture.