Des containers Docker et Apache Cassandra dans une architecture SOA : retour d’expérience

Refondre complètement son système d’information global de gestion des relations client, en passant d'une architecture informatique distribuée en mode client/serveur traditionnel à une architecture SOA centralisée reposant sur des technologies open source. Les clés d'un pari réussi.

Lors des révolutions technologiques, les précurseurs, ceux qui osent et qui innovent, et inaugurent avec succès de nouvelles voies, acquièrent le plus souvent un avantage concurrentiel déterminant. Cela a récemment été le cas pour des entreprises comme Amazon et Netflix à l’orée de la révolution digitale. Ce sera très probablement le cas pour celles qui adoptent aujourd’hui les nouvelles technologies ‘open source’ dans la révolution actuelle du cloud computing.

Dans ce domaine, une fois n’est pas coutume, les entreprises françaises ne sont pas à la traîne, comme le prouve l’exemple qui va suivre.

Imaginons une grande enseigne européenne, basée en France mais présente dans huit pays, qui décide au début 2015 de refondre complètement son système d’information global de gestion des relations client. Ce système doit en effet pouvoir répondre à de très forts impératifs métier sur un marché extrêmement concurrentiel : une excellente rapidité de traitement, des volumes massifs de données à traiter, avec des bases dépassant le Téraoctet, et une grande souplesse de l’architecture, avec notamment une bonne adaptation à un contexte international. Trois grandes applications sont concernées, stratégiques pour l’entreprise : un catalogue central de pièces, comprenant des centaines de milliers de références ; un référentiel client (identités, historique, comportements client) ; une gestion des livraisons en mode cross-canal.

 

Des avantages déterminants en performances et fonctionnalités

L’entreprise dispose à cette date d’une architecture informatique distribuée – chacun des plus de 500 points de vente disposant de son propre SI client – basée sur des technologies client/serveur traditionnelles.

Consciente des enjeux métier et des défis technologiques à relever, la direction informatique décide pourtant de faire le grand saut, et d’opter pour une architecture SOA centralisée, reposant en grande partie sur des containers Docker et une base de données noSQL Cassandra.

A la base de cette décision, une équation technico financière très favorable, le système de licencing des composants open source étant beaucoup plus avantageux que le coût des licences traditionnelles. Et, tout aussi important sinon plus, des avantages déterminants en termes de performances et de fonctionnalités offerts par ces solutions ‘open source’.

 

Plus de 80 serveurs virtuels dans une architecture micro services

L’infrastructure mise en place rassemble plus de 80 serveurs virtuels au sein d’une architecture micro services, qui délivrent un grand nombre de containers Docker, complétés par un ensemble de briques logicielles ‘open source’ supplémentaires, telles que Consul pour le référencement des containers, et plusieurs serveurs de base de données, elles aussi ‘open source’, en l’occurrence Cassandra, Elastic Search et CouchBase. L’ensemble est implanté sur le cloud public Instant Cloud de Coreye, en supervision 24/7.

 

Les atouts d’une architecture micro services sont connus. Chaque brique qui la compose est auto suffisante et a une fonction bien déterminée, ce qui apporte au système à la fois une excellente modularité, une plus grande tolérance aux pannes et une maintenance facilitée. Y associer des containers Docker a permis de les renforcer encore. Les containers logiciels étant très légers et consommant peu de ressources, il a été possible d’en créer un grand nombre, et de lier chaque micro fonctionnalité logicielle à un container particulier. Ce qui a permis d’obtenir une architecture extrêmement souple et adaptable à l’usage.

 

Plusieurs systèmes de base de données en parallèle

Grâce au choix de l’open source, ont également pu être mis en œuvre non pas un mais plusieurs systèmes de base de données en parallèle, chacun d’entre eux ayant pour particularité d’être capable de gérer avec la meilleure performance un certain type de données.

L’adoption de DataStax Cassandra a été privilégiée car, outre sa capacité à délivrer de très gros volumes de données comme toute base noSQL, cette technologie embarque nativement des fonctions autorisant une distribution à l’international, et intègre des mécanismes automatiques de réplication et de haute disponibilité. De plus, les capacités de paramétrage de Cassandra, complétées par les briques logicielles fournies par DataStax, ont permis de régler les problèmes liés à la donnée dans un environnement couvrant plusieurs continents.

En outre, l’ensemble des briques logicielles ‘open source’ utilisées, certes novatrices, offrent déjà une stabilité suffisante tout en conservant un large potentiel d’évolution, ce qui permettra à l’entreprise d’enrichir à terme la solution avec des fonctionnalités nouvelles.

 

Malgré un défi technique représentant un virage de 180° pour les équipes de la DSI, le pari est gagné. La réussite est au rendez-vous, les diverses technologies employées ayant rempli toutes leurs promesses. Le déploiement du projet va bon train, et il ne fait guère de doute qu’il s’achèvera largement en avance sur les prévisions initiales, en remplissant voire en surpassant tous ses objectifs métier. Preuve que les développeurs et intégrateurs français n’ont rien à envier au reste du monde dans la mise en œuvre des projets informatiques en avance de phase associant cloud et open source.

 

Apache / SOA