Sekrety wydajności systemów low-code – Case study 10-ciu lat z JobRouter

System JobRouter po 10 latach
Właśnie mija 10 lat od nawiązania współpracy e-MSI z JobRouter AG, a jednocześnie od pierwszych wdrożeń systemu. Duża cześć naszych klientów korzysta z systemu nieprzerwanie od blisko 10 lat. W każdym roku przybywa przeprocesowanych umów, wniosków, faktur czy innych dokumentów, a także użytkowników systemu. W wysoko wolumenowych procesach, które mieliśmy przyjemność wdrażać, liczba wykonywanych operacji to ponad 10 tysięcy dziennie!
Jak to możliwe, że system działa nieprzerwanie od lat, a szybkość systemu jest na poziomie podobnym do czasów, gdy procesy były uruchamiane? W tym wpisie postaramy się odpowiedzieć na pytania jak dbać o higienę systemu workflow i jakie elementy architektury gwarantują wysoką wydajność systemu.
Jak monitorować wydajność?
Każdy z nas miał do czynienia z systemem, który działa wolno. Nic tak nie zniechęca do pracy, jak potrzeba czekania, aż system zareaguje. Nie chcemy demotywować użytkowników, stąd monitoring każdego systemu, na którym pracują jest niezmiernie istotny. Istnieje wiele narzędzi monitorujących aplikacje, np. Zabbix czy NAGIOS. Niejednokrotnie widzieliśmy, że systemy monitoringu są wykorzystywane wyłącznie do monitorowania zasobów sprzętowych, np. CPU, RAM, czy zajętość dysków.
Jest to bardzo zła praktyka. Z naszego doświadczenia wynika, że jeśli chcemy zapewnić komfort pracy, potrzebne jest monitorowanie czasów reakcji systemu na te same akcje, które codziennie wykonują użytkownicy.
W zdecydowanej większości naszych wdrożeń monitorujemy kluczowe czasy dla użytkownika, np.
- czas logowania,
- czas załadowania formularza,
- czas wyświetlenia listy zadań,
- czas załadowania raportu.
Poza widżetami i dashboardami stosujemy też alerty mailowe, jeśli czas niespodziewanie wzrasta, tak aby wiedzieć o potencjalnych problemach zanim zauważy je użytkownik i móc odpowiednio wcześnie zareagować.
Jaki czas ładowania formularza jest akceptowalny dla użytkownika?
Wg Google czas ładowania formularza jest:
- Idealny jeśli trwa od 0 do 2 sekund;
- Akceptowalny do 3 sekund;
- Zwiększa prawdopodobieństwo opuszczenia strony: akcje trwające powyżej 3 sekund.
Każdy dostawca systemów powinien tak dobrać parametry sprzętowe i systemowe, aby nie przekraczać 3 sekund.
Dlaczego JobRouter nie zwalnia?
Platforma JobRouter u najstarszego klienta działa nieprzerwanie od ponad 20 lat. Przekracza to standardowy czas życia systemów informatycznych. Tak długo żyjące systemy wymagają skupienia na kwestiach utrzymaniowych od pierwszego dnia projektu wdrożeniowego. Kluczowe pytania, na które należy poszukać odpowiedzi to m.in.:
- jak długo powinniśmy przechowywać szczegółowe logi,
- jaki jest czas życia procesów, jak długo chcemy przechowywać szczegóły dotyczące danych na każdym kroku procesu workflow,
- jaki jest czas życia dokumentu,
- po jakim czasie dane dokumentu czy procesu powinny być archiwizowane, przenoszone od oddzielnej bazy danych – tak aby bieżąca baza danych nie była zbyt obciążona
Po odpowiedzi m.n na powyższe pytania, można skonfigurować system za pomocą kilku standardowych modułów JobRoutera, umożliwiających utrzymanie platformy w dobrej kondycji przez lata:
- JobShift – Moduł JobShift służy do archiwizacji historycznych instancji (przejść procesów) po upłynięciu zdefiniowanego czasu, powodując ich usunięcie z głównego do zapasowego systemu. Wykorzystanie tego modułu umożliwia utrzymanie systemu JobRouter w najbardziej wydajnym stanie, a właściciele procesów mogą w każdej chwili łatwo wyszukać i przywrócić archiwalne dane.
- JobArchive z funkcją deduplikacji dokumentów- Moduł JobArchive to w pełni zintegrowany system ECM w JobRouter, który umożliwia archiwizację dowolnych dokumentów z archiwów wielojęzycznych lub procesów JobRouter.
Moduł ten łączy zarządzanie procesami z zarządzaniem dokumentami w jedno spójne rozwiązanie. Aktywności systemowe i elementy formularza pozwalają na wyświetlanie dokumentów bezpośrednio w przeglądarce, a prawa dostępu są kontrolowane przez JobRouter, co zapewnia, że użytkownicy widzą tylko te dokumenty, do których mają uprawnienia w ramach danego procesu.
JobArchive zawiera również funkcję deduplikacji dokumentów. Ta technologia identyfikuje i eliminuje powtarzające się kopie plików, co znacząco optymalizuje przestrzeń dyskową i poprawia spójność danych w całym archiwum, przechowując tylko unikalne wersje danych.
- Load Ballancing – Job Load Balancing to moduł, który pozwala na rozkładanie obciążenia wynikającego z przetwarzania zadań oraz procesów na wiele serwerów. Pozwala to osiągnąć wysoką dostępność oraz przetwarzać więcej kroków niż tyle na ile pozwoliłby tylko jeden serwer.
Główne korzyści z tego rozwiązania to:
- Optymalne wykorzystanie zasobów i zwiększona wydajność: Obciążenie jest rozłożone, co pozwala na szybsze przetwarzanie zadań i sprawne działanie systemu nawet przy dużym natężeniu pracy.
- Płynność i niezawodność: Dzięki rozłożeniu obciążenia, system działa stabilniej, a ryzyko spowolnień czy przerw w pracy jest minimalizowane.
JobRouter jest systemem wysoko skalowalnym, poniżej zrzut pokazujący żywy przykład procesowania ponad 1,5 tysiąca kroków na minutę u jednego z naszych klientów:
Plany JobRouter na 2025 rok.
Temat wydajności i komfortu pracy jest szczególnie ważny zarówno dla nas jak i dla JobRouter AG. W 2025 roku JobRouter przechodzi znaczące zmiany architektoniczne.
Po pierwsze zmiana technologii umożliwia instalację całego środowiska zarówno na systemie MS Windows, jak i Linux. Po drugie od wersji JR2025 możliwa jest konteneryzacja środowiska, co umożliwia jeszcze lepsze skalowanie aplikacji dla środowisk wysoko wolumenowych z dużą liczbą użytkowników.