Migracja monolityczna do mikrousług: 25% szybsza reakcja

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
USA
Klient od
2023

Naszym klientem jest czołowa amerykańska firma świadcząca usługi w zakresie rekrutacji personelu medycznego, która pomaga dostawcom usług opieki zdrowotnej radzić sobie z rosnącymi potrzebami kadrowymi i upraszcza proces rekrutacji. Z drugiej strony, osoby poszukujące pracy mogą wybierać stanowiska, które idealnie pasują do ich harmonogramów i preferencji. Celem naszego klienta jest dopasowanie właściwych osób do właściwych stanowisk.

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.

Wdrożenie

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.

Testy 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</span

Testowanie

JUnit

Cloud

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.

Nasz kierownik projektu odbywał cotygodniowe spotkania Zoom z klientem, dzieląc się szczegółowymi aktualizacjami dotyczącymi rozwoju, omawiając wszelkie wyzwania i zbierając opinie, aby wszyscy byli zsynchronizowani. To wypróbowane i przetestowane podejście zminimalizowało przestoje i utrzymało stały postęp w całym projekcie.

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

Wyniki

30% płynniejsze działanie i 25% szybszy czas reakcji

Nasz zespół zmodernizował platformę klienta, zwiększając wydajność operacyjną o 30%. System obsługuje teraz więcej żądań bez spowalniania. Dzięki przejściu na architekturę mikrousług, czasy odpowiedzi spadły o 25%, dzięki czemu pracownicy służby zdrowia mogli szybciej i bardziej niezawodnie łączyć się z dostępnym personelem medycznym.

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 zmniejszyła liczbę awarii systemu o 35%, dzięki czemu platforma stała się bardziej stabilna. Nowe funkcje mogą być teraz płynnie wdrażane bez zakłócania bieżących usług.

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 skontaktujemy się z Tobą po przetworzeniu Twojego zgłoszenia.

    Prosimy o podanie szczegółów projektu, czasu trwania, stosu technologicznego, potrzebnych specjalistów IT i innych istotnych informacji.
    Nagraj wiadomość głosową na temat
    projekt, który pomoże nam lepiej go zrozumieć
    W razie potrzeby dołącz dodatkowe dokumenty
    Prześlij plik

    Można załączyć maksymalnie 1 plik o łącznej wielkości 2 MB. Ważne pliki: pdf, jpg, jpeg, png

    Informujemy, że po kliknięciu przycisku Wyślij Innowise będzie przetwarzać dane osobowe użytkownika zgodnie z naszą polityką prywatności. Politykę Prywatności w celu dostarczenia użytkownikowi odpowiednich informacji. Podanie numeru telefonu i przesłanie niniejszego formularza jest równoznaczne z wyrażeniem zgody na kontakt za pośrednictwem wiadomości tekstowej SMS. Mogą obowiązywać opłaty za wiadomości i transmisję danych. Możesz odpowiedzieć STOP, aby zrezygnować z dalszych wiadomości. Aby uzyskać więcej informacji, odpowiedz POMOC.

    Co dalej?

    1

    Po otrzymaniu i przetworzeniu Twojego zgłoszenia skontaktujemy się z Tobą wkrótce, aby wyszczególnić potrzeby projektu i podpisać umowę o zachowaniu poufności, aby zapewnić poufność informacji.

    2

    Po przeanalizowaniu wymagań, nasi analitycy i programiści opracowują projekt z zakresem prac, wielkością zespołu, czasem i kosztami szacunki.

    3

    Umówimy się z Tobą na spotkanie, aby omówić ofertę i dojść do porozumienia porozumienia.

    4

    Podpisujemy umowę i rozpoczynamy pracę nad projektem tak szybko, jak to możliwe.

    Спасибо!

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

    Dziękuję!

    Wiadomość została wysłana.
    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    Dziękuję!

    Wiadomość została wysłana. 

    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    strzałka