Migracja z monolitu do mikrousług: lepsze czasy reakcji

Innowise z powodzeniem przeprowadził migrację platformy klienta z architektury monolitycznej do mikrousług, zwiększając zarówno backend, jak i frontend w celu uzyskania lepszej skalowalności i wydajności.

Klient

Branża
Opieka zdrowotna
Region
UE
Klient od
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.

Szczegółowe informacje o kliencie nie mogą być ujawnione zgodnie z postanowieniami NDA.

Wyzwanie

Nadążanie za rosnącym popytem bez rozbijania banku

W miarę szybkiego rozwoju działalności klienta, stawał on przed coraz większymi wyzwaniami technicznymi i operacyjnymi, które groziły spowolnieniem jego postępów. Ich niegdyś niezawodny monolityczny system z trudem nadążał za rosnącymi wymaganiami ze strony placówek opieki zdrowotnej i personelu medycznego. W rezultacie napotkali wąskie gardła wydajności, opóźnione wdrażanie funkcji i nieefektywność operacyjną.

Klient potrzebował modernizacji systemu, aby móc się rozwijać, ale nie chciał zatrudniać nadmiernej liczby pracowników i generować dodatkowych kosztów. Poszukiwano partnera w zakresie outsourcingu IT, który mógłby zapewnić elastyczne skalowanie zasobów w oparciu o konkretne zadania i terminy, przy jednoczesnym utrzymaniu kosztów w ryzach. Właśnie wtedy Innowise wkroczył z naszymi eksperckimi spostrzeżeniami, aby przywrócić ich na właściwe tory.

Rozwiązanie

Przejście na mikrousługi w celu zwiększenia skalowalności i szybkości działania

Innowise zbudowało skalowalną architekturę mikrousług dla klienta, ułatwiając rozwój jego platformy. Zaktualizowaliśmy zarówno backend, jak i frontend, dzięki czemu wszystko działa płynnie, szybko się wdraża i zapewnia użytkownikom znacznie lepsze wrażenia. Ponadto, dzięki zautomatyzowanym testom i ciągłemu dostarczaniu, nasi eksperci zapewnili niezawodność i działanie zgodnie z oczekiwaniami.

Dogłębna analiza i planowanie

Innowise rozpoczęło od dokładnego audytu monolitycznego systemu klienta, mapując komponenty i identyfikując wąskie gardła. Ściśle współpracowaliśmy z zespołami klienta, aby ocenić kluczowe funkcje biznesowe i upewnić się, że wszystkie potrzeby interesariuszy zostały uwzględnione w planowaniu.

Zidentyfikowaliśmy obszary, które uzyskałyby największy wzrost dzięki tej zmianie i stworzyliśmy szczegółową mapę drogową migracji. Nasz zespół skupił się również na strategiach ograniczania ryzyka, przygotowując się na takie rzeczy, jak problemy z migracją danych, przy jednoczesnym utrzymaniu płynnego działania firmy podczas transformacji.

Migracja z monolitu do mikrousług

Po solidnym planowaniu nasz zespół rozpoczął płynną migrację z systemu monolitycznego do mikrousług. Podzieliliśmy kluczowe komponenty platformy na niezależne mikrousługi, pozwalając każdej z nich skalować się samodzielnie. Ta modułowa konfiguracja naprawiła wąskie gardła wydajności, dzięki czemu usługi mogły obsługiwać zmiany popytu bez spowalniania całej platformy.

Skonfigurowaliśmy również bazy danych specyficzne dla usług, aby usprawnić przepływ danych i ograniczyć zależności, które powodowały spowolnienia. Dzięki Kubernetes i Docker nasz zespół zautomatyzował wdrażanie i skalowanie każdej mikrousługi. W ten sposób platforma może obsługiwać skoki użytkowania bez żadnego ręcznego wysiłku.

Orkiestracja usług i komunikacja

Skonfigurowaliśmy warstwę orkiestracji mikrousług przy użyciu Apache Kafka do komunikacji opartej na komunikatach. Dzięki temu usługi były luźno połączone, co pozwoliło na ich niezależne skalowanie. Korzystając z komunikacji asynchronicznej, nasi eksperci zmniejszyli opóźnienia i sprawili, że system był bardziej responsywny.

Refaktoryzacja frontendu

Podczas modernizacji backendu, poświęciliśmy frontendowi uwagę, na jaką zasługiwał. Nasz zespół przebudował interfejs użytkownika, dzieląc go na modułowe komponenty za pomocą Angular, przyspieszając rozwój i zapewniając bezproblemowe dodawanie funkcji. Nasi specjaliści dopracowali również połączenie frontendu z backendem za pomocą niestandardowych interfejsów API CRUD, gwarantując aktualizacje w czasie rzeczywistym i minimalne opóźnienia.

Testowanie integracyjne

Aby utrzymać stabilność zarówno starszego kodu, jak i nowych mikrousług, stworzyliśmy solidny zestaw testów integracyjnych przy użyciu JUnit. Skoncentrowaliśmy te testy na kluczowych interakcjach, takich jak synchronizacja danych i uwierzytelnianie użytkowników, aby zapobiec awariom podczas wdrażania nowych funkcji.

Pracując w ramach naszego istniejącego środowiska testowego, zapewniliśmy spójne testy we wszystkich głównych przypadkach użycia. Każdy test dokładnie sprawdzał interakcję nowych i starszych komponentów, zmniejszając ryzyko migracji i zwiększając stabilność platformy.

Technologie

Front-end

Angular, TypeScript

Back-end

Java 11

Kontenery

Docker, Docker Compose, Kubernetes

VCS

VCS: Git, BitBucket

Testowanie

JUnit

Chmura

Azure

Proces

W przypadku tego projektu zastosowaliśmy metodologię Scrum dostosowaną do potrzeb klienta, realizując skoncentrowane dwutygodniowe sprinty, aby utrzymać postęp na właściwym torze. Nasz zespół korzystał z Jira do monitorowania każdego zadania, zapewniając pełny wgląd w kamienie milowe projektu i rezultaty. Codzienna koordynacja za pośrednictwem Slacka utrzymywała zespół w kontakcie, umożliwiając nam szybkie rozwiązywanie problemów.

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.

Zespół

1

Kierownik projektu

1

Architekt oprogramowania

3

Programiści Java

2

Deweloperzy Angular

2

Inżynierowie DevOps

2

Inżynierowie QA

1

Analityk biznesowy

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.

Automatyzacja wdrażania i skalowania zmniejszyła wysiłek manualny i koszty operacyjne, umożliwiając klientowi obsługę szczytowych skoków zapotrzebowania bez konieczności zatrudniania dodatkowego personelu lub zwiększania wydatków na infrastrukturę.

Dodatkowo, testowanie automatyczne reduced system failures and made the platform much more stable. New features could now roll out smoothly without disrupting ongoing services.

Czas trwania projektu
  • Październik 2023 r. - maj 2024 r.

25%

szybszy czas reakcji

30%

wzrost wydajności operacyjnej

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając Wyślij, wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z nasz Polityką Prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na adres contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przetworzeniu zgłoszenia skontaktujemy się z Tobą, aby szczegółowo opisać projekt i podpisać umowę NDA w celu zapewnienia poufności.

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami, nasz zespół opracuje projekt wraz z zakresem prac, wielkością zespołu, czasem i szacunkowymi kosztami.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    strzałka