CAS D’ETUDE
Développement Back-End : Collecte de Données à Très Haute Volumétrie
OBJECTIFS
Dans le cadre de cette nouvelle mission de développement back-end, ESENS intervient chez son client, leader dans le secteur de l'audiovisuel, sur un projet de collecte de données à très haute volumétrie. Le projet legacy existant doit être redeveloppé pour répondre aux besoins de scaling horizontal, de microservices, de rapidité et de support.
MISSION
Dans le cadre de cette mission, ESENS intervient sur toutes les phases du projet : specs, développement, analyse du besoin, mise en production, DevOps, recettes et documentation, pour un accompagnement stratégique complet répondant aux besoins et aux problématiques spécifiques de notre client.
-
Analyse de la partie legacy
Dans un premier temps, nous nous sommes penchés sur l'analyse de la partie legacy du projet (reverse engineering) que nous avons ensuite transformé en un énorme recueil de besoins auprès de nos clients et en étroite collaboration avec le chef de projet. Suite à cela, nous avons pu commencer à écrire les spécifications.
-
Création de l'architecture
Aux côtés de l'équipe infrastructure, nous avons ensuite procéder à la création de l'architecture du projet que nous avons imagé à l'aide de schémas pour pouvoir se reposer sur des supports solides. Toute l'architecture a été pensée en microservices.
-
Création des normes & développement
Avant d'entamer la phase de développement, la création de normes de code (linter, best practices, etc.) à été un des axes majeurs de notre réflexion car il était primordial de poser des bases solides pour la bonne reprise du projet et dans le but de faciliter la compréhension des développeurs qui seront par la suite amenés à intervenir sur le projet. La partie API en NestJS constitue le point d’entrée du projet, et tous nos services indépendants se parlent par files Kafka. Le tout est développé en TypeScript.
-
CI/CD, tests & documentations
Notre projet comprend également une énorme partie infrastructure. Tous nos services tournent dans des pods sur un cluster Kubernetes et GitLab CI/CD nous permet de travailler en développement continu. Pour cela, nous avons un grand nombre de tests unitaires et end-to-end, couvrant plus de 95% de notre code. Pour finir, la partie documentation est tout aussi importante, l’objectif étant de documenter 100% du projet. C'est là qu'intervient la partie Wiki dans GitLab.
STRATEGIE
Tout au long de notre mission, la méthode Agile Scrum nous sert de cadre dans un contexte technique qui suscite une très grande quantité de demandes. La responsabilité du projet legacy qui continue de tourner en attendant la finalisation du nouveau projet est également un challenge en soi. Cela nous aide cependant à identifier les points de frictions existants afin de ne pas les reproduire.