Migration du monolithique vers les microservices : amélioration des temps de réponse

Innowise a migré avec succès la plateforme du client d'une architecture monolithique vers des microservices, en stimulant à la fois backend et frontend pour une meilleure évolutivité et de meilleures performances.

Client

Industrie
Soins de santé
Région
UE
Client depuis
2023

Our client is a top-tier healthcare staffing service that helps healthcare providers handle soaring staffing needs and simplify the hiring process. On the other side, job seekers get to choose positions that fit their schedules and preferences perfectly. Our client is all about matching the right people with the right jobs.

Les informations détaillées sur le client ne peuvent être divulguées en vertu des dispositions de la NDA.

Défi

Répondre à la demande croissante sans se ruiner

Au fur et à mesure de l'expansion rapide de ses activités, le client a été confronté à des défis techniques et opérationnels croissants qui menaçaient de ralentir sa progression. Leur système monolithique, autrefois fiable, avait du mal à répondre aux demandes croissantes des établissements de santé et du personnel médical. Il en résultait des goulets d'étranglement au niveau des performances, des retards dans le déploiement des fonctionnalités et des inefficacités opérationnelles.

Le client avait besoin d'une refonte de son système pour continuer à se développer, mais il ne voulait pas avoir trop de personnel et accumuler des coûts supplémentaires. Il était à la recherche d'un partenaire d'externalisation informatique capable de fournir une mise à l'échelle flexible des ressources sur la base de tâches et de délais spécifiques, tout en maîtrisant les coûts. C'est à ce moment-là qu'Innowise est intervenu avec ses connaissances d'expert pour les remettre sur la bonne voie.

Solution

Passer aux microservices pour améliorer l'évolutivité et la rapidité

Innowise a construit une architecture de microservices évolutive pour le client, facilitant la croissance de sa plateforme. Nous avons mis à jour à la fois backend et frontend, de sorte que tout fonctionne en douceur, se déploie rapidement et offre aux utilisateurs une bien meilleure expérience. De plus, grâce aux tests automatisés et à la livraison continue, nos experts ont veillé à ce que les choses soient fiables et fonctionnent comme il se doit.

Analyse et planification approfondies

Innowise a commencé par un audit approfondi du système monolithique du client, en cartographiant les composants et en identifiant les goulets d'étranglement. Nous avons travaillé en étroite collaboration avec les équipes du client pour évaluer les fonctions commerciales cruciales et nous assurer que tous les besoins des parties prenantes étaient couverts dans la planification.

Nous avons identifié les domaines qui bénéficieraient le plus de ce changement et créé une feuille de route détaillée pour la migration. Notre équipe s'est également concentrée sur les stratégies d'atténuation des risques, en se préparant à des problèmes de migration des données, par exemple, tout en veillant à ce que l'entreprise continue de fonctionner sans heurts pendant la transition.

Migration d'un monolithe vers des microservices

Après une solide planification, notre équipe a entamé une migration en douceur d'un système monolithique vers des microservices. Nous avons divisé les composants clés de la plateforme en microservices indépendants, permettant à chacun d'entre eux d'évoluer de manière autonome. Cette configuration modulaire a permis d'éliminer les goulets d'étranglement en matière de performances, de sorte que les services ont pu gérer les variations de la demande sans ralentir l'ensemble de la plateforme.

Nous avons également mis en place des bases de données spécifiques à chaque service pour améliorer le flux de données et réduire les dépendances qui causaient des ralentissements. Avec Kubernetes et Docker en place, notre équipe a automatisé le déploiement et la mise à l'échelle de chaque microservice. De cette façon, la plateforme peut gérer les pics d'utilisation sans aucun effort manuel.

Orchestration et communication des services

Nous avons mis en place une couche d'orchestration de microservices utilisant Apache Kafka pour la communication par messages. Cela a permis de maintenir les services connectés de manière lâche, afin qu'ils puissent évoluer de manière indépendante. En utilisant la communication asynchrone, nos experts ont réduit la latence et rendu le système plus réactif.

Refonte de l'interface utilisateur

Tout en améliorant backend, nous avons accordé frontend l'attention qu'il méritait. Notre équipe a réorganisé l'interface utilisateur en la décomposant en composants modulaires avec Angular, ce qui a permis d'accélérer le développement et de garantir des ajouts de fonctionnalités sans prise de tête. Nos spécialistes ont également affiné la connexion frontend avec backend en utilisant des API CRUD personnalisées, garantissant des mises à jour en temps réel et une latence minimale.

Tests d'intégration

Pour que le code existant et les nouveaux microservices restent stables, nous avons mis au point un solide ensemble de tests d'intégration avec JUnit. Nous avons ciblé ces tests sur des interactions clés telles que la synchronisation des données et l'authentification des utilisateurs afin d'éviter les échecs lors du déploiement de nouvelles fonctionnalités.

En travaillant dans notre environnement de test existant, nous avons fourni des tests cohérents pour tous les principaux cas d'utilisation. Chaque test a permis d'examiner en détail l'interaction entre les nouveaux et les anciens composants, réduisant ainsi les risques de migration et renforçant la stabilité de la plateforme.

Technologies

Frontend

Angular, TypeScript

Backend

Java 11

Conteneurs

Docker, Docker Compose, Kubernetes

VCS

VCS : Git, BitBucket

Test

JUnit

Cloud

Azure

Processus

Pour ce projet, nous avons suivi une méthodologie Scrum adaptée aux besoins du client, en organisant des sprints de deux semaines pour maintenir les progrès sur la bonne voie. Notre équipe a utilisé Jira pour contrôler chaque tâche, offrant une visibilité totale sur les jalons et les livrables du projet. La coordination quotidienne via Slack a permis à l'équipe de rester connectée et de s'attaquer rapidement aux problèmes.

Our project manager held weekly meetings with the client, sharing detailed updates on development, discussing any challenges, and gathering feedback to keep everyone in sync. This tried-and-tested approach minimized downtime and kept steady progress throughout the project.

Équipe

1

Chef de projet

1

Architecte logiciel

3

Développeurs Java

2

Angular Développeurs

2

Ingénieurs DevOps

2

Ingénieurs QA

1

Analyste commercial

Expected results

Our team revamped the client’s platform, boosting operational efficiency. The system now handles more requests without slowing down. Switching to a microservices architecture helped drop response times so that healthcare providers could connect with available medical personnel faster and more reliably.

L'automatisation du déploiement et de la mise à l'échelle a réduit les efforts manuels et les coûts opérationnels, permettant au client de gérer les pics de demande sans avoir besoin de personnel supplémentaire ou d'augmenter les dépenses d'infrastructure.

En outre, tests automatisés reduced system failures and made the platform much more stable. New features could now roll out smoothly without disrupting ongoing services.

Durée du projet
  • Octobre 2023 - mai 2024

25%

des temps de réponse plus rapides

30%

augmentation de l'efficacité opérationnelle

*The expected results outlined in this section are examples of what can be achieved with such solutions. These results do not pertain to a specific project and do not reflect the actual outcomes of the described case.

    Contact

    Réserver un appel ou remplissez le formulaire ci-dessous et nous vous contacterons dès que nous aurons traité votre demande.

    Envoyez-nous un message vocal
    Joindre des documents
    Charger fichier

    Vous pouvez joindre un fichier d'une taille maximale de 2 Mo. Formats de fichiers valables : pdf, jpg, jpeg, png.

    En cliquant sur Envoyer, vous consentez à ce qu'Innowise traite vos données personnelles conformément à notre politique de confidentialité. Politique de confidentialité pour vous fournir des informations pertinentes. En communiquant votre numéro de téléphone, vous acceptez que nous puissions vous contacter par le biais d'appels vocaux, de SMS et d'applications de messagerie. Les tarifs des appels, des messages et des données peuvent s'appliquer.

    Vous pouvez également nous envoyer votre demande
    à contact@innowise.com
    Que se passe-t-il ensuite ?
    1

    Une fois que nous aurons reçu et traité votre demande, nous vous contacterons pour détailler les besoins de votre projet et signer un accord de confidentialité. Projet et signer un accord de confidentialité.

    2

    Après avoir examiné vos souhaits, vos besoins et vos attentes, notre équipe élaborera une proposition de projet avec l'étendue des travaux, la taille de l'équipe, les délais et les coûts estimés projet avec l'étendue des travaux, la taille de l'équipe, les délais et les coûts estimés.

    3

    Nous prendrons rendez-vous avec vous pour discuter de l'offre et régler les détails.

    4

    Enfin, nous signons un contrat et commençons immédiatement à travailler sur votre projet.

    flèche