Poprawa produktywności systemu poprzez refaktoryzację

IT system refactoring
Wyzwania

W systemach informatycznych wraz ze wzrostem ilości funkcjonalności często wzrasta trudność w dodawaniu nowych. System staje się trudny w rozwoju, a koszta związane z utrzymaniem systemu zaczynają przekraczać koszty wprowadzania nowych funkcjonalności. Tego typu sytuacje najczęściej są bardzo złym znakiem ostrzegającym przed problemami.

System klienta już na początku wykazywał znamiona erozji – coraz częściej zaczęło dochodzić do przekroczenia limitów platformy. Było to spowodowane nieprawidłowym wykonaniem funkcjonalności i prowadziło do uszkodzenia danych. Celem projektu było osiągnięcie szeroko idącej skalowalności, która umożliwiłaby stabilną pracę przy jednoczesnym obciążeniu na poziomie kilku tysięcy użytkowników i napływie do kilkudziesięciu do kilkuset tysięcy rekordów dziennie. Oczywiście wszystko to przy zachowaniu nieprzerwanej pracy systemu oraz wysokiego poziomu rozszerzalności.

Rozwiązania

Wysokie wymagania wymuszały szeroki zakres zmian w architekturze systemu. Jednym ze sposobów podnoszenia produktywności jest wprowadzanie do zakresu projektu fazy refaktoryzacji – iteracyjnej modyfikacji kodu, która nie powoduje zmian funkcjonalnych. Celem procesu refaktoryzacji jest poprawienie atrybutów jakościowych systemu, takich jak łatwość utrzymania, rozszerzalność, wydajność, skalowalność, obserwowalność, poprawa produktywności oraz elastyczność.

W ramach projektu przygotowano plan priorytezujacy te zadania, które wymagały najmniejszej ilości pracy, dając jednocześnie najlepsze rezultaty. W każdym sprincie wprowadzono od 10 do 30% zadań technicznych w taki sposób, aby nie kolidowały z implementacją nowych wymagań biznesowych.

W celu spełnienia potrzeb firmy zdecydowano się na zbudowanie modułu ułatwiającego optymalizowanie wykonywania funkcjonalności oraz redukującego ilość operacji bazodanowych. Wprowadzono moduł naśladujący działanie Messaging Queues oparty o Salesforce Platform Events, a także wprowadzono mechanizmy logowania błędów oraz śledzenia ilości i szybkości wywołań asynchronicznych, stanu kolejek systemowych, limitów platformy i stanu głównych procesów automatycznych w systemie.

Efekty

Proces refaktoryzacji z biegiem czasu bardzo ułatwił utrzymanie i rozwój systemu, a także w znaczący sposób wyeliminował błędy i utrudnił powstawanie nowych. Realizacja projektu pozwoliła na:

  • zwiększenie szybkości i wydajności – ułatwiono optymalizowanie funkcjonalności, zredukowano ilość cyklicznych zależności w logice, przeniesiono większość funkcjonalności do kodu
  • poprawę skalowalności – umożliwiono kolejkowanie zadań oraz ich przetwarzanie w przypadku wystąpienia błędów, zastosowano mechanizm wywołań, pozwalający na dobór odpowiedniej strategii w zależności od kontekstu wywołania,
  • lepszą obserwowalność – wprowadzono mechanizmy logowania błędów oraz śledzenia ilości i szybkości wywołań, limitów platformy i stanu głównych procesów w systemie; generowane raporty pokazują co aktualnie dzieje się w systemie od strony technicznej,
  • zwiększenie rozszerzalności i elastyczności – większość kodu została rozbita na mniejsze klasy, przy jednoczesnej dbałości o utrzymanie odpowiednich zależności; każda funkcjonalność może zostać dezaktywowana z poziomu administratora,
  • ułatwienie utrzymania – zbudowano dobrze przetestowane i stabilne narzędzie, na którym oparto logikę biznesową.
Zastosowane technologie i narzędzia

Salesforce, Sales Cloud, Service Cloud, Community Cloud, Marketing Cloud, AWS, Apex, Lightning Web Components

Klient: Education First

Education First jest ogólnoświatowym liderem z branży edukacyjnej, który od ponad 50 lat oferuje przełomowe możliwości w zakresie nauki języków obcych dla osób w każdym wieku, różnych narodowości i środowisk. Firma posiada ponad 600 biur w ponad 60 krajach na wszystkich kontynentach.

Other case studies

World Health Day Process Service System platform for efficient communication

Implementation of the Process Service System for the State Institution overseeing compliance with sanitary standards.

Więcej
ROHLIG SUUS Logistics Customer portal Case Study

Java

Pierwszy etap projektu: Budowa Portalu Klienta dla firmy transportowej

Wyzwania Pierwszym etapem projektu realizowanego dla Rohlig Suus było ...

Więcej