Reanimacja krytycznego systemu informatycznego

Blind case 1
  • Klient
    • Klient z branży finansowej
  • Zakres prac
    • Legacy System Transformation
    • Utrzymanie i Rozwój Systemów
  • Technologie
    • MS Azure

Zaniedbywanie kluczowych systemów IT może mieć analogiczne skutki jak niewłaściwe dbanie o własny organizm. Zła dieta, brak ruchu, zmęczenie – na pierwszy rzut oka nie widać realnego stanu zdrowia, czających się objawów choroby, na co dzień organizm funkcjonuje „prawie” normalnie. Ale nakładające się na siebie zaniedbania, zaczynają coraz bardziej zakłócać jego funkcjonowanie. Podobnie brak odpowiedniej opieki nad systemem IT prowadzi do problemów z wydajnością, szybkością działania i rosnącym długiem technologicznym, co najczęściej skutkuje ograniczeniem możliwości rozwoju systemów zgodnie z potrzebami biznesowymi. Koniec końców wymagane jest udanie się do specjalisty, który spojrzy na system kompleksowo, zleci niezbędne badania i ukierunkuje dalsze działania.  

Taka “konsultacja lekarska” w ramach systemu informatycznego, dostępna jest w ofercie Unity Group i nazywa się Legacy System Transformation.

W skrócie

  • Przygotowanie projeku PoC (Proof of Concept) oraz tzw. „Due Diligence” tranzycji utrzymania i rozwoju systemu od poprzedniego dostawcy do Unity Group
  • Przeprowadzenie testów wydajnościowych systemu w wersji produkcyjnej i potwierdzenie wydajności systemu zainstalowanego przez naszych specjalistów
  • Zapewnienie wysokiej dostępności (HA - High Availability) dla każdego z komponentów systemu oraz zapewnienie działania SLA
  • Wykonanie szczegółowego audytu kodu, architektury systemu i baz danych oraz roadmapy refaktoryzacji i optymalizacji wg. pilności potrzeb biznesowych Klienta

Przedstawienie problemu Klienta

Klient, lider w sprzedaży usług w branży finansowej, prowadzi działalność praktycznie w całości opierającą się o sprzedaż przez platformę e-commerce. Produkty oferowane są Klientom 24/7 ze zmieniającymi się w czasie rzeczywistym cenami w zależności od wielu zmiennych. System ten jest rozwijany przez zewnętrznego dostawcę, wybranego kilka lat temu. 

Obecny system obarczony jest długiem technologicznym. Ma bardzo rozbudowaną i skomplikowaną architekturę, wykorzystane są w nim różne technologie. Bardzo niska jakość kodu, brak konsekwencji w nazewnictwie zmiennych i metod, liczne bloki kodu przekraczające 2000 linii – to tylko wybrane punkty charakterystyczne. 

Biznesowo platforma musi odzwierciedlać skomplikowaną logikę, która niestety została rozsiana po różnych komponentach oraz bazach danych. Komunikacja między poszczególnymi komponentami systemu nie jest zunifikowana.

Bardzo dynamiczny rozwój branży, zwiększające się wymagania Klientów, a tym samym biznesu, wymuszały zmiany w systemie, co przekładało się na zlecanie kolejnych funkcjonalności, wprowadzanie modyfikacji oraz usprawnień.  Nieład, który nawarstwiał się w systemie wobec braku jakości prac deweloperskich, uniemożliwił jego update, a rozwój za każdym razem był realizowany jako osobny komponent. Takie podejście jeszcze mocniej komplikowało architekturę i prowadziło do coraz trudniejszego diagnozowania ewentualnych problemów/błędów.  

Dodatkowo, w pracach rozwojowych i utrzymaniu systemu, nie stosowano metodyki DevOps (metodyki pozwalającej na zespolenie rozwoju i eksploatacji, przy jednoczesnym zapewnieniu jakości), a system oparty na kilku bazach danych, z wykorzystaniem trzech różnych silników baz, nie podlegał polityce Backup i Recovery. Dramatyzmu sytuacji dodawał brak automatycznych narzędzi do monitoringu działania systemu, jego wydajności. Stan „pacjenta” był naprawdę ciężki, a nikt nawet nie wiedział co mu dolega i jakie parametry funkcjonowania są zakłócone oraz w jakim stopniu, ponieważ tego nie zdiagnozowano.

Diagnoza - wyzwania

  • Brak możliwości podążania z rozwojem systemu za potrzebami biznesowymi
  • Nieustanna konieczność realizacji hotfix’ów, „gaszenia pożarów”
  • Brak możliwości zapewnienia wysokiej dostępności (HA - High Availability) dla każdego z komponentów systemu, brak działania SLA
  • Częste i długie przerwy w działaniu systemu, które generowały olbrzymie straty i niezadowolenie Klientów
  • Duże problemy wydajnościowe systemu, które utrudniały kierowanie ruchu z prowadzonych kampanii
  • System stał się wąskim gardłem dalszego rozwoju firmy

Dotychczasowy dostawca widząc skalę problemów, postanowił wycofać się ze świadczenia usługi, wypowiadając umowę utrzymania i dalszego rozwoju systemu. Klient został postawiony w sytuacji dla niego krytycznej. Dla przypomnienia, był to kluczowy system, który odpowiada za generowanie większości przychodów w firmie. 

W tym ciężkim momencie firma zgłosiła się do Unity Group z zapytaniem o wsparcie. Nasi eksperci, czując powagę sytuacji, bez zbędnej zwłoki przystąpili do działania.

Blind case study 2

Leczenie - projekt i realizacja

Po zbadaniu stanu obecnego systemu Klienta, zostały zaplanowane serie spotkań Pre KT Session (pre knowledge transfer session) z poprzednim dostawcą, który był odpowiedzialny za system. Na podstawie zebranej wiedzy przygotowany został projekt PoC (Proof of Concept) oraz tzw. „Due Diligence” tranzycji utrzymania i rozwoju systemu od poprzedniego dostawcy do nas. W pierwszej kolejności przeinstalowaliśmy, z pomocą poprzedniego dostawcy, system na naszą infrastrukturę w MS Azure. Następnie wykonaliśmy szczegółowy audyt kodu, architektury systemu i baz danych, tworząc jednocześnie roadmapę refaktoryzacji i optymalizacji wg. pilności potrzeb biznesowych Klienta.

Kolejne kroki w projekcie: 

  1. Wykonaliśmy samodzielnie ponowną instalację systemu na infrastrukturze zgodnej ze środowiskiem produkcyjnym Klienta.
  2. Przeprowadziliśmy testy wydajnościowe systemu w wersji produkcyjnej i potwierdziliśmy nie gorszą wydajność systemu zainstalowanego przez naszych specjalistów.
  3. Wykonaliśmy testy penetracyjne oraz wskazaliśmy obszary konieczne do poprawy.
  4. Razem z Klientem wykonaliśmy szczegółową analizę ryzyka związaną z tranzycją i potwierdziliśmy możliwość jej przeprowadzenia.
  5. Przygotowaliśmy ofertę tranzycji i roadmapę następnych działań. W szczególności: 

a) plan projektu tranzycji, w ramach której zapanowaliśmy wykonanie optymalizacji i refaktoryzację najpilniejszych elementów,

b) przeprowadzenie projektu optymalizacji i refaktoryzacji systemu, w celu umożliwienia uruchomienia dla systemu umowy SLA oraz rozpoczęcie pracy zgodnie z metodyką DevOps, 

c) ofertę na usługę utrzymania systemu po procesie tranzycji (2 miesiące) i refaktoryzacji oraz optymalizacji (6 miesięcy). 

  

Efekty

  • Większa swoboda i elastyczność w odwzorowywaniu potrzeb biznesowych, dzięki poukładaniu architektury i powiązań pomiędzy poszczególnymi komponentami systemów
  • Poprawa wyników finansowych - zwiększenie sprzedaż z kanału online o 18 % już w pierwszych trzech miesiącach po zakończeniu projektu
  • Optymalizacja wydajnościowa systemu umożliwiająca obsłużenie 3x większego ruchu przy obniżonych o 30% kosztach infrastruktury
  • Zabezpieczenie systemu na zidentyfikowane podatności, w szczególności na istotne zagrożenia OWASP
  • Umożliwienie pracy nad rozwojem systemu przez wiele zespołów developerskich, w tym odpowiednia organizacja repozytorium kodu, konfiguracja CI (Continuous Integration), automatyzacja testów regresji oraz wydajnościowych

W wyniku pozytywnej oceny efektów, ale też jakości współpracy zostały podpisane kolejne umowy. W ramach działań jesteśmy już nie tylko partnerem projektu tranzycjirefaktoryzacji, ale także szeregu rozbudów i utrzymania kolejnych systemów IT.

unity

unity

Skontaktuj się z profesjonalnym doradcą IT

Napisz do nas

Wyrażam zgodę na przetwarzanie danych osobowych na zasadach określonych w polityce prywatności. Jeśli nie wyrażasz zgody na wykorzystywanie cookies we wskazanych w niej celach, w tym do profilowania, prosimy o wyłącznie cookies w przeglądarce lub opuszczenie serwisu. więcej

Akceptuj