logo

Migracja platformy leasingowo-ubezpieczeniowej SellX dla firmy Vehis do nowej wersji: nowoczesna platforma gotowa na dalszy rozwój

Zespół Core Logic przeprowadził kompleksową migrację systemu SellX do nowej wersji środowiska technologicznego. Projekt objął modernizację aplikacji, zmianę sposobu wdrażania usług oraz przeniesienie ich do nowoczesnej architektury opartej na Kubernetes. Migracja objęła ponad 25 serwisów produkcyjnych i została przeprowadzona bez przestoju systemów firmowych dla użytkowników końcowych.

Dzięki temu platforma leasingowo-ubezpieczeniowa SellX zyskał bardziej skalowalne, odporne i bezpieczne środowisko produkcyjne, które stanowi solidną podstawę do dalszego rozwoju systemu. Nowa platforma pozwala lepiej zarządzać zasobami, dynamicznie zwiększyć wydajność wybranych komponentów oraz ograniczyć ryzyko awarii w codziennej pracy systemu.

Dlaczego migracja i modernizacja aplikacji były potrzebne?

Poprzednie środowisko SellX opierało się na klasycznej infrastrukturze serwerowej. W porównaniu z nowoczesnym podejściem kontenerowym miało ono ograniczone możliwości dalszego skalowania oraz wymagało większego wysiłku operacyjnego przy utrzymaniu wysokiej dostępności. Ekosystem działał w dwóch geograficznie odseparowanych centrach danych, w Katowicach i Warszawie, co zapewniało podstawowy poziom redundancji. Wdrażanie nowych wersji oprogramowania było jednak bardziej czasochłonne i często wiązało się z koniecznością planowania okien serwisowych oraz czasową niedostępnością systemów. Największym wyzwaniem była ograniczona skalowalność, brak pełnej automatyzacji w zakresie high availability oraz coraz większe zależności pomiędzy elementami infrastruktury.

W praktyce oznaczało to, że rozwój systemu, wdrażanie nowych funkcjonalności i aktualizacji wymagały coraz więcej planowania, koordynacji i pracy zespołów technicznych. Konteneryzacja wspiera automatyzację procesów CI/CD, co przyspiesza cykle wydawnicze oprogramowania. Przyspieszenie wprowadzania nowych funkcji na rynek jest jednym z kluczowych benefitów wynikających z zastosowania architektury mikroserwisów i technologii cloud-native. Dotyczy to przede wszystkim nowych funkcji biznesowych w aplikacjach, integracji z innymi systemami, usprawnień interfejsu użytkownika, poprawek jakościowych oraz aktualizacji bezpieczeństwa.

W przypadku systemów biznesowych każda niedostępność może wpływać na pracę użytkowników, produktywność pracowników, obsługę klientów, a w skrajnych przypadkach także generować straty finansowe. Dlatego migracja SellX nie była wyłącznie projektem technologicznym, ale ważnym elementem strategii rozwoju całego przedsiębiorstwa.

Nowa architektura miała wyeliminować ograniczone możliwości poprzedniego środowiska i stworzyć rozwiązania przygotowane na dalszy wzrost liczby usług, użytkowników oraz integracji.

Konteneryzacja aplikacji i ponad 25 serwisów przeniesionych na Kubernetes

W ramach migracji do nowego środowiska przeniesiono ponad 25 serwisów produkcyjnych. Obejmowały one różne warstwy systemu: aplikacje frontendowe, serwisy backendowe oraz komponenty wspierające działanie infrastruktury aplikacyjnej.

Kluczowym elementem projektu była konteneryzacja aplikacji. Konteneryzacja to metoda wirtualizacji na poziomie systemu operacyjnego, która polega na pakowaniu aplikacji wraz ze wszystkimi jej zależnościami w jedną, lekką i odizolowaną jednostkę zwaną kontenerem. Dzięki niej poszczególne usługi mogą działać jako niezależne kontenery, co ułatwia ich uruchomienie, skalowanie, aktualizację oraz monitorowanie. Każdy kontener działa w odseparowanym środowisku, co oznacza, że aplikacje nie wpływają na siebie nawzajem.

Takie podejście pozwala lepiej kontrolować obciążenia, ograniczać wpływ pojedynczej awarii na cały system oraz szybciej reagować na potrzeby biznesowe.

Nowe środowisko zostało oparte na Kubernetes, który umożliwia zarządzanie aplikacjami w modelu kontenerowym. W praktyce oznacza to, że każda usługa może być wdrażana i utrzymywana w sposób bardziej przewidywalny. W całym procesie ważne było nie tylko samo przeniesienie usług, ale także uporządkowanie zależności, konfiguracji, sposobu komunikacji w sieci oraz zasad zapewnienia dostępności.

Od wirtualnych maszyn do nowoczesnej architektury kontenerowej

W wielu organizacjach starsze środowiska opierają się na modelu, w którym podstawą działania są wirtualne maszyny lub klasyczne serwery. Takie podejście przez lata było standardem, ale wraz z rozwojem systemów coraz częściej okazuje się mniej elastyczne niż architektura kontenerowa. Kontenery współdzielą jądro systemu operacyjnego hosta, co czyni je znacznie wydajniejszymi niż maszyny wirtualne. Kontenery uruchamiają się w w krótszym czasie i zużywają znacznie mniej zasobów niż maszyny wirtualne.

Migracja SellX oznaczała przejście od infrastruktury o ograniczonej elastyczności do środowiska, które lepiej wspiera automatyzację, skalowalność i bezpieczeństwo. Zastąpienie części tradycyjnych mechanizmów nowoczesnym modelem działania usług pozwala efektywniej zarządzać zasobami oraz ograniczać ryzyko problemów wydajnościowych.

Nie była to jednak prosta zamiana technologii ani gotowe rozwiązanie możliwe do wdrożenia bez analizy. Tego typu proces migracji wymaga oceny wymagań, zależności, obciążeń, sposobu działania aplikacji oraz planu przełączenia w środowisku produkcyjnym. Migracja do Kubernetesa wiąże się z wieloma wyzwaniami, w tym z koniecznością przeszkolenia zespołu oraz dostosowania istniejących procesów do nowego środowiska kontenerowego. Wdrożenie Kubernetes wymaga przemyślenia architektury aplikacji oraz integracji z istniejącymi systemami, dlatego kluczowe jest przygotowanie dobrego i szczegółowego planu działania oraz prac wdrożeniowych. Migracja aplikacji do Kubernetes powinna być przeprowadzona w sposób uporządkowany, z uwzględnieniem dokumentacji HLD i LLD, które są kluczowe dla sukcesu projektu.

Wysoka dostępność i odporność na awarie

Nowa architektura została zaprojektowana z myślą o wysokiej dostępności. SellX działa obecnie w modelu rozproszonym, obejmującym dwa niezależne centra danych w dwóch różnych geograficznie lokalizacjach. Takie rozwiązanie zwiększa odporność środowiska na awarie i pozwala ograniczyć ryzyko przerw w działaniu systemu.

W przypadku problemów z wybranym elementem infrastruktury ruch może zostać skierowany do działającej części środowiska. Podobne mechanizmy zastosowano w warstwie baz danych, gdzie przewidziano automatyczne przełączanie na instancje zapasowe. W projekcie uwzględniono również kopie zapasowe oraz możliwość odtwarzania danych z określonego punktu w czasie.

Wysoka dostępność nie jest więc wyłącznie cechą infrastruktury. To połączenie odpowiedniej architektury, automatyzacji, replikacji, planowania i procedur operacyjnych.

Migracja bez przestoju w środowisku produkcyjnym

Jednym z najważniejszych rezultatów projektu było przeprowadzenie migracji bez przestoju dla użytkowników końcowych. Oznacza to, że prace modernizacyjne i finalne przełączenie środowiska zostały wykonane w sposób, który nie zakłócił korzystania z systemu. To szczególnie istotne w przypadku systemów biznesowych, które wspierają codzienną pracę organizacji.

Migracja SellX w środowisku produkcyjnym wymagała precyzyjnego planowania, testów, koordynacji oraz kontroli ryzyka na każdym etapie. W takich projektach pierwszy krok to zrozumienie, od czego rozpocząć proces migracji: które usługi są krytyczne, jakie mają zależności, jakie są wymagania dotyczące dostępności oraz jak szacować czas migracji.

Drugim krokiem jest przygotowanie szczegółowego planu technicznego i operacyjnego, który pozwala ograniczyć ryzyko podczas przenoszenia usług.

Bezpieczniejsze wdrażanie nowych wersji i aktualizacji

Nowe środowisko znacząco poprawiło proces publikowania zmian. Aktualizacje aplikacji mogą być obecnie wdrażane bez czasowej niedostępności systemu. Nowa wersja zastępuje poprzednią dopiero wtedy, gdy zostanie poprawnie uruchomiona i zweryfikowana. Dzięki temu problemy pojawiające się podczas wdrożenia nie muszą wpływać na dostępność aplikacji.

Proces stał się bezpieczniejszy, bardziej przewidywalny i mniej obciążający dla zespołów technicznych. Wdrażanie przez GitOps z użyciem Argo CD lub Flux zapewnia automatyczną synchronizację klastra z repozytorium Git. Nowa architektura umożliwia również wdrażanie zmian w ciągu dnia roboczego, bez konieczności planowania długich okien serwisowych. To realnie przyspiesza rozwój SellX, skraca czas dostarczania nowych funkcji i poprawia produktywność zespołów odpowiedzialnych za oprogramowanie.

Modernizacja technologiczna SellX

Migracja objęła nie tylko zmianę infrastruktury, ale również modernizację technologiczną aplikacji. W ramach projektu zaktualizowano kluczowe komponenty środowiska uruchomieniowego, przechodząc z wcześniejszych wersji technologii na nowsze i lepiej wspierane rozwiązania.

To ważny element modernizacji aplikacji, ponieważ ogranicza dług technologiczny i ułatwia dalsze utrzymanie systemu. Regularna aktualizacja stosu technologicznego zwiększa bezpieczeństwo, poprawia stabilność oraz pozwala zespołom korzystać z nowszych narzędzi i standardów. W dłuższej perspektywie takie podejście wspiera również optymalizację pracy zespołów, ponieważ nowe technologie ułatwiają rozwój, testowanie, wdrażanie i zarządzanie aplikacjami w środowisku produkcyjnym.

Lepsze zarządzanie zasobami i wydajnością

W poprzednim środowisku zasoby były w dużej mierze współdzielone pomiędzy różne aplikacje. W praktyce mogło to prowadzić do sytuacji, w której nadmierne zużycie zasobów przez jedną usługę wpływało na działanie większej grupy aplikacji.

Po migracji zasoby mogą być przypisywane bardziej precyzyjnie do konkretnych usług. Dzięki temu łatwiej kontrolować obciążenia środowiska, ograniczać ryzyko incydentów wydajnościowych i szybciej reagować na potrzeby poszczególnych komponentów SellX. Monitoring i analiza zużycia zasobów przy użyciu narzędzi takich jak Prometheus są kluczowe dla bieżącej obserwowalności środowiska oraz identyfikacji obszarów wymagających optymalizacji. Implementacja HPA, VPA oraz Cluster Autoscaler w Kubernetes pozwala dynamicznie dostosowywać zasoby do aktualnego obciążenia, co przekłada się na bardziej efektywne wykorzystanie infrastruktury prywatnej chmury oraz lepsze planowanie jej dalszej rozbudowy.

Nowa platforma umożliwia również łatwe dokładanie zasobów w celu dalszej rozbudowy infrastruktury, rozwoju systemu i uruchamiania kolejnych usług bez konieczności natychmiastowej przebudowy architektury. To zwiększa skalowalność, elastyczność i przewidywalność działania całego środowiska.

Większe bezpieczeństwo konfiguracji

W ramach migracji uporządkowano również sposób przechowywania danych konfiguracyjnych i wrażliwych. Zostały one przeniesione do dedykowanych mechanizmów zarządzania, co poprawia bezpieczeństwo oraz ułatwia kontrolę nad konfiguracją środowisk. Dzięki temu zespół zyskał większą przejrzystość, lepszą organizację i mniejsze ryzyko związane z przypadkowym ujawnieniem lub nieprawidłowym użyciem danych konfiguracyjnych.

Bezpieczeństwo w takim projekcie obejmuje nie tylko zabezpieczenie danych, ale także kontrolę dostępu, sposób wdrażania zmian, zarządzanie kluczami szyfrującymi, konfigurację sieci oraz możliwość szybkiego odtworzenia usług po awarii (DR). Stosowanie obrazów o minimalnej objętości znacząco zmniejsza powierzchnię ataku. Podczas budowania obrazów kontenerów warto generować SBOM za pomocą narzędzi takich jak Syft lub Trivy. Generowanie listy komponentów SBOM pozwala na szybką identyfikację podatności w bibliotekach systemowych. Bezpieczną praktyką jest podpisywanie obrazów kontenerów, aby zapewnić ich autentyczność. Zarządzanie bez uprawnień roota oraz użycie izolacji na poziomie przestrzeni nazw namespaces i grup kontrolnych cgroups jądra Linux poprawia bezpieczeństwo kontenerów. Wprowadzenie polityk bezpieczeństwa w Kubernetesie pozwala na elastyczne dopasowanie reguł, które są wymagane przez organizacje, co jest kluczowe dla zapewnienia zgodności z regulacjami.

Najważniejsze efekty migracji

Migracja SellX przyniosła szereg konkretnych rezultatów:

  • ponad 25 serwisów produkcyjnych zostało przeniesionych na Kubernetes,
  • system działa w modelu wysokiej dostępności,
  • środowisko obejmuje dwa niezależne centra danych,
  • migracja została przeprowadzona bez przestoju dla użytkowników końcowych,
  • wdrożono mechanizmy replikacji i automatycznego przełączania usług,
  • usprawniono proces publikacji nowych wersji aplikacji,
  • uporządkowano przechowywanie konfiguracji i danych wrażliwych,
  • wdrożono kopie zapasowe oraz mechanizmy odtwarzania danych,
  • ograniczono ryzyko incydentów wydajnościowych,
  • przygotowano platformę pod dalszy rozwój,
  • zwiększono elastyczność infrastruktury,
  • poprawiono bezpieczeństwo i zarządzanie zasobami,
  • stworzono środowisko lepiej dopasowane do rozwoju nowych funkcjonalności.

Projekt przeprowadzony przez Core Logic

Firma Core Logic odpowiadała za przeprowadzenie migracji platformy leasingowo-ubezpieczeniowej SellX do nowej wersji środowiska. Zakres prac obejmował projekt architektury, przygotowanie infrastruktury, konfigurację środowiska Kubernetes, konteneryzację aplikacji, wdrożenie usług oraz wsparcie procesu finalnego przełączenia produkcyjnego.

Projekt był realizowany równolegle na kilku poziomach: infrastrukturalnym, aplikacyjnym i operacyjnym. Ważne było również zachowanie kontroli nad całym procesem migracji: od analizy wymagań, przez przygotowanie środowisk, aż po końcowe przełączenie usług w produkcji. Dzięki temu modernizacja została wykonana bez wpływu na użytkowników końcowych.

SellX gotowy na kolejne lata rozwoju

Migracja SellX do nowej wersji była dużym krokiem technologicznym i organizacyjnym. System został przeniesiony z architektury o ograniczonej skalowalności do nowoczesnego środowiska kontenerowego, które lepiej odpowiada na potrzeby rozwijającej się platformy.

Dzięki projektowi SellX zyskał wyższą dostępność, większą odporność na awarie, bezpieczniejszy proces wdrażania zmian oraz lepsze przygotowanie na przyszłe aktualizacje. To nie tylko modernizacja infrastruktury, ale także fundament pod dalszy rozwój produktu i sprawniejsze dostarczanie nowych funkcji użytkownikom.

Nowe środowisko daje SellX większą stabilność, elastyczność i możliwość dalszej optymalizacji. Platforma jest gotowa na kolejne etapy rozwoju, nowe integracje, dodatkowe usługi oraz rosnące potrzeby biznesowe.