La conteneurisation

/ by
Reading Time: 2 minutes
Comme tout service technologique basé sur un logiciel, CloudTrade cherche continuellement à améliorer sa plate-forme technique, à accroître son évolutivité et à soutenir la stabilité technique, alors que l’entreprise continue à augmenter le nombre de ses clients et le volume de ses documents. Richard Develyn, directeur technique de CloudTrade, explique dans ce blog comment nous déployons actuellement une nouvelle architecture technique basée sur la conteneurisation.

La conteneurisation et l’informatique du Cloud en général sont définitivement la voie de l’avenir. La technologie et l’adoption de ces systèmes progressent rapidement. Compte tenu de notre position sur le marché en tant que prestataire de services en forte croissance, notre passage à la conteneurisation était essentiel, et nous sommes heureusement en bonne voie d’achever la mise en place de conteneurs pour l’ensemble de notre service de saisie de données analytiques et pour l’ensemble de notre clientèle.

Depuis deux ans, CloudTrade est en train de redéployer son service principal d’extraction de données analytiques sur une technologie d’infrastructure de pointe hautement évolutive appelée « conteneurisation ».

En février 2021, la plupart des traitements qui fournissent notre service de base ont été séparés et déployés dans des conteneurs individuels Microsoft Azure. Cette étape marque la fin de la deuxième phase de notre stratégie de mise en œuvre, et par conséquent le début de la migration de notre clientèle existante vers cette deuxième phase.

Au cours de la première étape, nous avons mis en œuvre la conteneurisation pour nos moteurs de traitement des règles de base et nous avons migré notre clientèle en conséquence. À la fin de la troisième étape, tout fonctionnera par conteneurs. La première étape de la mise en œuvre consistait donc à faire passer les parties de notre service les plus gourmandes en processeur. La deuxième étape a permis de garantir que tous nos processus à délai de traitement critique soient également transférés. La troisième étape sera là pour absorber le reste.

L’objectif de la conteneurisation est de prendre un service ou une application et de le diviser en petits modules, chacun pouvant être déployé individuellement et agrandi ou réduit à la demande. Ces « modules », appelés conteneurs, sont gérés à l’aide d’un écosystème de conteneurs tel que « Docker ». Docker a été le premier système à source ouverte à être mis en œuvre et est aujourd’hui largement utilisé dans l’industrie. Docker est également le système que nous utilisons à CloudTrade.

Cet écosystème de conteneurs comprend également un outil d’orchestration des conteneurs qui surveille diverses mesures de performance associées aux différents conteneurs et aux files de messages qui les séparent et décide, par le biais de règles configurables, si un plus grand nombre d’entre eux doivent être instanciés ou si certains d’entre eux doivent être fermés. Ce composant clé permet à un système conteneurisé non seulement d’utiliser au mieux ses ressources, mais aussi de fonctionner de manière optimale face à des pointes de demande de traitement, comme nous le rencontrons régulièrement à CloudTrade lorsque les expéditeurs de documents ne font rien du tout pendant des jours et nous envoient ensuite tout un tas de documents en espérant qu’ils seront traités en une seule fois.

L’outil d’orchestration de conteneurs le plus populaire s’appelle Kubernetes. Cet outil est issu d’un projet développé en interne chez Google et est aujourd’hui l’un des outils les plus performants de son genre. Kubernetes est également l’outil d’orchestration que nous utilisons chez CloudTrade.

Une application ou un service conteneurisé présente l’avantage supplémentaire d’être agnostique au niveau du système d’exploitation. Cela signifie que les conteneurs qui pourraient fonctionner sur Microsoft Azure aujourd’hui pourraient être déployés sur AWS ou un système basé sur Linux demain. Cela permet à un fournisseur de services non seulement d’utiliser au mieux les ressources du système d’exploitation dont il dispose avec le système Cloud de son choix, mais aussi d’envisager de transférer une partie ou la totalité de son service sur d’autres systèmes d’exploitation si cela se traduit par de meilleures performances ou une réduction des coûts. Actuellement, nous déployons sur Microsoft Azure, mais nous gardons un œil sur les autres fournisseurs de systèmes Cloud.