Repenser techniquement une plateforme d’analyse et d’exploitation d’offres d’emploi pour renforcer les performances et les possibilités d’un service existant
- Client : Sinad Emploi
- Taille : PME
- Activité : Veille d’offres d’emploi
Sinad Emploi, client historique, est spécialisé dans la captation et la qualification d’offres d’emploi sur Internet, afin de proposer des services de détection ou de statistiques. Nous l’avons accompagné sur plusieurs de ses aspects au fil des années, et nous avons entamé avec lui en 2019 une réflexion sur l’architecture technique de sa solution de veille, qui s’est concrétisée en 2020 par un travail de conception détaillée puis de la refonte technique du moteur de veille.
La plateforme ainsi élaborée permet de répondre à plusieurs problématiques techniques apparues au fur et à mesure de l’exploitation de la première version du moteur, notamment :
- la scalabilité, c’est-à-dire un rapport linéaire entre l’augmentation du volume de traitement et celui des ressources informatiques nécessaires ;
- la flexibilité, pour pouvoir être plus larges sur certains aspects de la qualification des annonces et leur exploitation ;
- la fiabilité, pour diminuer les risques de pannes ou de défaillances.
Concevoir et réécrire une plateforme logicielle monolithique en micro-services pour inscrire la société dans un nouvel élan technique et commercial
Un moteur de veille inscrit dans l’avenir
- L’exploitation de l’expérience et l’historique du client
- Une architecture plus facile à maintenir et faire évoluer
- Des meilleures performances de captation et de qualification
- L’ouverture de nouvelles opportunités commerciales
-
Elasticsearch
-
Go
-
Micro-services
- PostgreSQL
- Kubernetes + Helm
De par notre expérience et historique avec Sinad Emploi, nous avons été en mesure de conseiller notre client sur certains aspects techniques. Sur la base de l’expression de leurs ambitions et de leurs besoins, nous avons ainsi pu orienter notre approche pour répondre aux enjeux à venir.
Ce projet ayant un aspect technique critique, s’agissant du cœur d’activité de notre client, nous avons tout d’abord travaillé dans le cadre d’une phase de conception. Nous avons pour cela effectué plusieurs réunions avec notre client pour aborder progressivement les spécificités d’implémentation de la solution existante, et nous avons à partir de cela et itérativement construit une plateforme, d’abord avec des aspects macroscopiques, puis en rentrant dans le détail algorithmique.
La refonte s’appuie ainsi sur des programmes organisés en micro-services, tournés autour de bases de données et de files d’attente centralisées. Le but de cette architecture est de pouvoir ajuster les ressources en fonction des besoins croissants. Nous avons opté pour le langage Go afin d’avoir un environnement de développement de qualité, facile à faire évoluer, et une exécution performante.
S’agissant d’une refonte qui apporte une nouvelle approche, malgré la conception détaillée, il restait des inconnues qui ne pouvaient être levées que pendant la phase de réalisation. Pour éviter un effet tunnel, une grande part du développement de la plateforme a été donnée aux tests et aux réajustements après itération. Nous avons donc, conjointement avec notre client expert dans son métier et dans sa première solution, progressivement mis en place les programmes et la façon de les tester.
En quelques mois, nous avons donc pu ajuster les algorithmes réécrits et utilisés dans différentes parties du moteur de veille, en comparaison avec le moteur précédent, pour obtenir au final de meilleures performances sur différents points clés.
Nous avons enfin formé notre client à l’architecture et aux langages que nous avons utilisés pour la nouvelle plateforme : Go, ElasticSearch, RabbitMQ, etc. L’objectif est qu’à terme il soit en mesure de s’approprier la solution et la faire évoluer dans la direction qu’il souhaite.