Migration du monolithique vers les microservices : 25% réponse plus rapide

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

Client

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

Notre client est un service de recrutement de personnel de santé de premier plan basé aux États-Unis qui aide les prestataires de soins de santé à gérer leurs besoins croissants en personnel et à simplifier le processus d'embauche. De leur côté, les demandeurs d'emploi ont la possibilité de choisir des postes qui correspondent parfaitement à leur emploi du temps et à leurs préférences. L'objectif de notre client est de mettre en relation les bonnes personnes avec les bons postes.

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 le backend et le 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 le backend, nous avons accordé au 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 du frontend avec le 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

Front-end

Angular, TypeScript

Back-end

Java 11

Conteneurs

Docker, Docker Compose, Kubernetes

VCS

VCS: Git, BitBucket</span

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.

Notre chef de projet a tenu des réunions Zoom hebdomadaires avec le client, partageant des mises à jour détaillées sur le développement, discutant des défis éventuels et recueillant des commentaires pour que tout le monde reste au diapason. Cette approche éprouvée a permis de minimiser les temps d'arrêt et de maintenir une progression constante tout au long du projet.

É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

Résultats

30% des opérations plus fluides et 25% des temps de réponse plus rapides

Notre équipe a réorganisé la plateforme du client, ce qui a permis d'augmenter l'efficacité opérationnelle de 30%. Le système traite désormais davantage de demandes sans ralentissement. En passant à une architecture de microservices, les temps de réponse ont diminué de 25%, ce qui a permis aux prestataires de soins de santé d'entrer en contact avec le personnel médical disponible plus rapidement et de manière plus fiable.

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 a réduit les défaillances du système de 35%, ce qui a rendu la plateforme beaucoup plus stable. Les nouvelles fonctionnalités peuvent désormais être déployées en douceur sans perturber les services en cours.

Durée du projet
  • Octobre 2023 - mai 2024

25%

des temps de réponse plus rapides

30%

augmentation de l'efficacité opérationnelle

Contactez nous

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

    S’il vous plaît, ajoutez les détails du projet, la durée, la pile technologique, IT spécialistes nécessaires et d'autres informations pertinentes
    Pour nous aider à mieux le comprendre.
    Nécessaires et d'autres informations pertinentes
    Joindre des documents supplémentaires au besoin
    Charger fichier

    Vous pouvez joindre jusqu'à 1 fichier de 2MB au total. Fichiers valides : pdf, jpg, jpeg, png

    Nous vous informons que lorsque vous cliquez sur le bouton Envoyer, Innowise traitera vos données personnelles conformément à notre Politique de confidentialité dans le but de vous fournir des informations appropriées.

    Que se passe-t-il ensuite?

    1

    Après avoir reçu et traité votre demande, nous reviendrons vers vous pour détailler les besoins de votre projet et signer un accord de non-divulgation pour assurer la confidentialité des informations.

    2

    Après avoir examiné les exigences, nos analystes et nos développeurs élaborent une proposition de projet avec l'étendue des travaux, le nombre de membre de l'équipe, les délais et les coûts des coûts.

    3

    Nous organisons une réunion avec vous pour discuter de l'offre et parvenir à un accord.

    4

    Nous signons un contrat et commençons à travailler sur votre projet le plus rapidement possible.

    Спасибо !

    Cообщение отправлено.
    обработаем ваш запрос и свяжемся с вами в кратчайшие сроки.

    Merci !

    Votre message a été envoyé.
    Nous traiterons votre demande et vous recontacterons dès que possible.

    Merci !

    Votre message a été envoyé. 

    Nous traiterons votre demande et vous contacterons dès que possible.

    flèche