Docker véritable rupture technologique

L’année 2014 a été marquée par la montée en puissance de Docker, et de ses « containeurs ». L’intérêt des entreprises est sans aucune mesure. Pour preuve, les géants de l’IT ont été contraints de réagir : Google, VMware, RedHat ou encore Microsoft se sont tous positionnés pour intégrer cette technologie à leurs offres.



Expliquer cet engouement revient à comprendre l’apport technologique de Docker et les changements qu’il opère sur l’organisation du système d’information.

L’unité de référence du système d’information

Docker emprunte à la logistique le concept de containeur. Le containeur reste le moyen le plus simple d’acheminer  d’un bout à l’autre de la planète toutes sortes de produits quels que soit leur forme ou leur aspect. Les voies maritimes en sont les meilleurs exemples. Elles ont permis l’émergence de nouveaux modèles économiques.
Reprenant ce concept, Docker positionne  le containeur comme l’unité de référence au sein du SI.  Ainsi, une application et ses prérequis opérationnels sont « conditionnés », et standardisés sous la forme d’un « containeur ».  Dès lors, les différentes équipes de l’entreprise peuvent communiquer et se structurer autour d’une unité logique de référence.
Le principal gain : Docker permet ainsi d’atteindre un niveau d’industrialisation de l’exploitation jamais atteint. En intégrant cette unité de « référence » dans leur parc applicatif, les directions seront en mesure de consolider leurs équipes autour de compétences communes et d’entrevoir des économies d’échelle significatives.

Garantir la qualité et la pérennité

Intéressons-nous maintenant à l’une des grandes problématiques des DSI, la gestion des versions et des changements. Garantir un service opérationnel, version après version, nécessite des processus rigoureux et en cohérence avec la gouvernance choisie. Dans un environnement hétérogène, voir concurrentiel, il est facile d’avoir des processus lourds et coûteux.
Docker est un précieux allié pour y parvenir. Les containeurs introduisent la notion d’immuabilité : un containeur est unique et invariant. C’est-à-dire qu’une modification de l’environnement, de la configuration ou de l’application aboutit à la création d’un nouveau containeur, différent.
Un containeur est une boite contenant tous les prérequis d’un service (système d’exploitation, configurations, dépendances, etc.). Une fois « scellé », rendre opérationnel et fonctionnel ce service ne nécessite plus que des « consommables » : CPU, mémoire, réseau, stockage, etc.
Un containeur peut être véhiculé entre toutes les parties prenantes du SI, des études à la production mais également par les métiers pour les phases de « tests ». Les directions informatiques sont alors en mesure d’imaginer des processus innovants pour renforcer  la qualité. Chaque application, et son containeur associé, peut  ainsi bénéficier d’un « passeport » retraçant son parcours dans l’entreprise, en ayant la garantie que les tests automatisés ou non ont été satisfaits.

Construire des architectures agiles

Finalement les containeurs s’apparentent aux briques d’un célèbre jeu. Mettez-les entre les mains des architectes, des métiers, des développeurs et ils seront en mesure de concevoir un système d’information agile.
Les containeurs permettent de repenser l’IT de l’entreprise. Si rendre opérationnelle une application revient à fournir les ressources matérielles dont elle a besoin, il est facile d’imaginer comment mettre en place une politique de haute disponibilité,  ou encore de sécuriser et cloisonner l’application aux équipes ou filiales qui l’utilisent. Les retours arrière en cas d’incident, ou les mises à jour ne nécessitent plus de compétences spécifiques mais s’inscrivent dans une gestion automatisée.
Choisir de mettre en place une filière « containeur » est aussi l’occasion de structurer les équipes différemment, plus proche d’une démarche agile. En effet, comme le containeur devient le réceptacle de l’application mais aussi de ses prérequis, il convient de trouver la bonne organisation entre équipes de développement et système. Et si les équipes métiers et fonctionnelles sont intégrées à la démarche, il est tout à fait envisageable de mettre un processus complètement automatisé, permettant à une idée d’être disponible pour les utilisateurs … en quelques semaines.
Tout comme les solutions de virtualisation qui ont permis de rationaliser l’infrastructure, Docker introduit de nouveaux concepts qui permettent de rationaliser cette fois-ci le cycle de vie d’une application. Pour conclure, Docker nous permet d’entrevoir comment :

  • renforcer la qualité du parc applicatif via des processus complément automatisés,
  • rationaliser les ressources et les dépendances nécessaires à l’exploitation d’applications,
  • innover pour offrir de nouvelles expériences aux utilisateurs,
  • consolider l’ensemble des équipes et leurs compétences autour d’un référentiel commun.

Docker a su formaliser une technologie vieille de 10 ans pour lui donner une autre dimension. Nous pouvons alors nous demander ce qu’il manque à ce produit pour devenir un must-have ? Un peu de temps, quelques retours de grands acteurs de l’IT et la mise en place d’un « contrat d’exploitation » permettant aux acteurs du SI de normaliser leurs échanges dans ce nouvel écosystème.