Klient

Naszym klientem jest międzynarodowa firma działająca w obszarze wsparcia procesów ochrony zdrowia i realizacji badań klinicznych. Szczególnie dużym obszarem działalności firmy jest gromadzenie różnego rodzaju danych w szeroko rozumianej ochronie zdrowia. Są to zarówno dane o pacjentach pochodzące z elektronicznej dokumentacji medycznej, jak i dane sprzedażowe leków na wielu rynkach krajowych (RWE – real-world evidence). Działalność ta jest nieocenionym wsparciem badań klinicznych oraz podstawą monitorowania udziału w rynku firm farmaceutycznych. Złożoność wynikająca z konieczności integrowania wielu źródeł danych, jak i konieczność standaryzacji wymuszają na firmie innowacyjne podejścia do integracji oraz wykorzystanie nowoczesnych technologii przetwarzania danych.

Wyzwanie

Procesy integracji danych w firmie oparte są na zaawansowanych technologiach klasy Big Data. Łańcuchy integracyjne i analityczne wykorzystują wzorce przetwarzania rozproszonego na platformie Hadoop. Zdecydowana większość przetwarzania danych odbywała się do tej pory w centrach obliczeniowych będących własnością firmy (tzw. on-premise infrastructure). W miarę rozwoju organizacji i zwiększającej się ilości zgromadzonych danych firma rozważała alternatywną architekturę przetwarzania. Coraz szersze wykorzystanie chmury obliczeniowej w obszarze ochrony zdrowia połączone z silną potrzebą innowacyjności sprawiły, że firma postanowiła zwiększać udział infrastruktury chmurowej przeznaczonej do procesowania. 

Wykorzystanie chmury publicznej wiąże się z szeregiem istotnych zalet. Brak konieczności utrzymywania infrastruktury fizycznej, elastyczność w wyborze narzędzi przetwarzania, kontrola kosztów, praktycznie nieograniczone skalowanie. W sytuacji, gdy firma ma już wiele działających systemów i musi zadbać o ciągłość biznesową, migracja do nowej infrastruktury jest przedsięwzięciem dużo bardziej złożonym i długotrwałym. Co więcej, firma prowadzi wiele projektów rozwojowych, ciągle poszerzając ofertę, źródła pozyskiwania danych i zdobywając nowe rynki. Projekty, które zajmują się migracją istniejących rozwiązań, wymagają zaangażowania zasobów firmy w dużej mierze już przydzielonych do prac rozwojowych.

Dlaczego my?

Brak możliwości zatrzymania czy nawet ograniczenia prac rozwojowych skłoniło firmę do poszukania partnera, który mógłby swoją ekspertyzą i dostępnymi zasobami wesprzeć migrację rozwiązań do nowszych technologii i zaawansowaną infrastrukturę chmurową. Craftware dysponuje wysoko wykwalifikowanymi specjalistami z wielu dziedzin technologii informatycznych, w tym inżynierii danych, chmury obliczeniowej i Big Data. Firma już wcześniej wykorzystywała wsparcie naszych specjalistów do realizacji prac rozwojowych. Powierzenie odpowiedzialności zmigrowania kluczowych systemów firmy do chmury to kolejny poziom zacieśniania współpracy i partnerstwa.

Rozwiązanie i technologie
  1. Punktem wyjścia w projekcie był wybór pierwszego systemu do migracji. Ważne było, aby migrowane rozwiązanie miało budowę modułową. Migracja może się wówczas odbyć w podziale na etapy. To z kolei jest zgodne ze zwinną metodologią działania stosowaną w Craftware. Metodyka zwinna (agile) oznacza podejście do zarządzania projektami, które pozwala na bieżąco monitorować realizację celów projektowych oraz prezentację wyników poszczególnych etapów przyrostowo.
  2. Następnie przeprowadzono szczegółową analizę migrowania systemu z uwzględnieniem konkretnych technologii, platform, zastosowanych wzorców i języków programowania. Na podstawie wyników analizy przygotowano propozycję podejścia i docelową architekturę systemu po migracji. Podejście uwzględniało szereg założeń, które zostały wcześniej zdefiniowane przez partnera. Chodziło tu między innymi o dostawcę chmury publicznej – w tym przypadku Microsoft Azure, który był już używany u partnera. Partner zdecydował uprzednio o wykorzystaniu Azure Databricks jako platformy uruchomieniowej dla łańcuchów przetwarzania implementowanych w Apache Spark. Dodatkowo należało zapewnić integrację z wewnętrznym systemem orkiestracji łańcuchów przetwarzania oraz procesami ciągłej integracji (CI/CD – continuous integration / continuous delivery) zaimplementowanymi w Jenkins i zintegrowanymi z GitLab.
  3. Zgodnie z wszelkimi ustaleniami, system po migracji byłby wciąż zintegrowany z kluczowymi komponentami IT, jednak działałby na najnowszych wersjach stosu technologicznego – w chmurze publicznej, której komponenty zostały wybrane, skonfigurowane i są zarządzane przez partnera. W efekcie tej pierwszej realizacji powstałoby wzorcowe podejście do migracji kolejnych systemów.

 

Realizacja

Po obustronnej akceptacji podejścia do migracji i doprecyzowaniu zakresu zespół Craftware przystąpił do prac projektowych. Założenie było takie, aby zespół był kompletny i mógł działać przy minimalnym zaangażowaniu zasobów partnera. Oczywiście wiązało się to z przygotowaniem dostępu do środowisk obliczeniowych będących własnością partnera. Aby uprościć proces onboardingu, postanowiono, że zespół Craftware otrzyma dostęp za pośrednictwem przestrzeni roboczej Citrix na maszynach wirtualnych znajdujących się w sieci korporacyjnej partnera.

Pierwszym etapem migracji było przygotowanie szkieletu systemu, który był już zintegrowany z procesami automatycznego budowania kodu i uruchamiania na infrastrukturze chmurowej. Następnie sukcesywnie przenoszono kolejne łańcuchy przetwarzania, rozbudowując podstawowy szkielet.

Chcesz wiedzieć więcej o migracji systemów legacy?
Napisz do nas!

Jako że migrowane rozwiązanie było używane produkcyjne i zdarzały się jego modyfikacje, należało zadbać o możliwość równoległej migracji i rozwoju bieżącej bazy kodu. Kod źródłowy wersjonowany był w repozytorium Git. Modyfikacje na potrzeby migracji były przeprowadzane na gałęzi odchodzącej od głównej gałęzi repozytorium. W momencie, gdy w głównej gałęzi pojawiały się zmiany, były one regularnie uwzględniane w gałęzi migracyjnej przy wykorzystaniu standardowych funkcjonalności Git (w tym przypadku git rebase).

Zgodnie z podstawowymi założeniami zwinnych metodologii dostarczania oprogramowania zespół migracyjny dbał o to, aby migrację przeprowadzać etapami, zawsze dysponować działającą bazą kodu oraz regularnie prezentować partnerom wyniki tymczasowe projektu migracyjnego.

Korzyści

Projekt pozwolił partnerowi na realizację ważnych celów technologicznych przy jednoczesnym utrzymaniu tempa rozwoju swoich pozostałych rozwiązań. Firma bardzo dużą wagę przywiązuje do innowacyjności i aktualności systemów. Nowe wersje wykorzystywanych wzorców przetwarzania Big Data pozwalają na osiągnięcie korzyści z lepszej wydajności oraz możliwości uwzględnienia nowych cech i funkcjonalności. Ważne są też aspekty operacyjne w postaci uzyskania wsparcia i dostępu do specjalistów, co jest utrudnione przy uzależnieniu od starszych technologii i dużym długu technologicznym. Partner, rozumiejąc te aspekty, chciał jak najszybciej przeprowadzić przejście na nową platformę w chmurze. Chmura obliczeniowa pozwoliła partnerowi na mocniejsze i dynamiczne skalowanie łańcuchów przetwarzania przy utrzymaniu racjonalnego kosztu.

Korzyści technologiczne są bezsprzeczne, jednak  ze względów operacyjnych były trudne do osiągnięcia bez wsparca Craftware. Projekty migracyjne mają często niższy priorytet względem projektów rozwojowych. Migracje są ważne, choć często postrzegane jako niepilne. Przekazanie projektu migracyjnego do Craftware pozwoliło partnerowi na realizację celów strategicznych bez przerywania i ograniczania zasobów na prace rozwojowe. Co więcej, transfer wiedzy po migracji pozwolił partnerowi na wykorzystanie nowych kompetencji w kolejnych projektach rozwojowych.

Krzysztof Bokiej

Cloud and Big Data Architect

sales@craftware.pl

Przenieś się do chmury razem z Craftware!
Dowiedz się więcej o migracji systemów legacy