Ponowna architektura aplikacji operacyjnej dla Gestical
Innowise dokonał migracji wszystkich aplikacji klienckich do pojedynczego ekosystemu opartego na Azure, wykorzystującego ujednolicony stos technologii.

Przegląd klientów
Gestical to szwajcarska firma koncentrująca się na efektywności energetycznej, w szczególności na pomiarach i rozliczaniu zużycia ciepła i wody w budynkach mieszkalnych i przemysłowych. U podstaw ich działalności leży zastrzeżony pakiet wzajemnie połączonych aplikacji, które obsługują wszystko, od planowania zadań i pracy w terenie po raportowanie i fakturowanie.
Podczas gdy złożoność projektu była początkowo niedoceniana, późniejsze wzmocnienie zespołu znacznie poprawiło organizację operacyjną i komunikację. Pozwoliło to Innowise profesjonalnie zarządzać skomplikowanymi warstwami technicznymi, dostarczając wysokiej jakości wyniki, które spełniły nasze cele biznesowe.

Wyzwanie
Z biegiem czasu ekosystem aplikacji Gestical - Gestical Web, Gestical Plan i Gestical MIF - znacznie się rozrósł pod względem funkcji i obciążenia systemu. Jednak architektura, infrastruktura i optymalizacja wydajności nie ewoluowały odpowiednio. Firma Innowise została zaangażowana do modernizacji głównej aplikacji, Gestical Web.
- Spowolnienia i przerwy w działaniu systemu. System Gestical nie został zaprojektowany do dynamicznego skalowania. Wraz ze wzrostem liczby budynków, urządzeń i użytkowników rosło ryzyko przestojów i spowolnień systemu.
- Duże poleganie na udokumentowanych przepływach pracy poza systemem. Wiele podstawowych procesów biznesowych nie zostało zintegrowanych z systemem lub odpowiednio udokumentowanych, co zmuszało do dokumentowania wszystkiego poza systemem. W rezultacie pracownicy musieli polegać na dokumentacji znajdującej się poza systemem, aby wykonać swoje zadania. Spowodowało to zwiększenie ilości pracy ręcznej, spowolnienie operacji i większe ryzyko braku kompletnych informacji w systemie.
- Przestarzały stos technologii. Aplikacje zostały zbudowane przy użyciu przestarzałej wersji ASP.NET MVC i hostowane na pojedynczej maszynie wirtualnej Azure.
- Niezoptymalizowana baza danych. W lokalnej bazie danych klienta brakowało normalizacji i indeksowania, co wpływało na wydajność.
Modernizacja systemów wewnętrznych dzięki Innowise
Dostarczone przez nas rozwiązanie
Etapowa modernizacja platformy Gestical
Innowise wdrożył etapową strategię modernizacji, która przekształciła starszy system Gestical w natywną dla chmury, skalowalną i bezpieczną platformę.
Modernizacja objęła podstawową aplikację operacyjną Gestical, Gestical Web, której użytkownicy używają do zarządzania budynkami, monitorowania urządzeń, generowania raportów i kosztów energii.
Przeprojektowanie architektury i modernizacja platformy
Modernizacja rozpoczęła się od kompleksowej oceny istniejącego ekosystemu Gestical Web. Starsza aplikacja została zbudowana przy użyciu przestarzałej wersji ASP.NET MVC i hostowana na pojedynczej maszynie wirtualnej Azure, co spowodowało ograniczenia skalowalności i problemy z wydajnością.
Nasz zespół ponownie zaimplementował Gestical Web przy użyciu Next.js i NestJS i wdrożył go na platformie Azure App Service, platforma PaaS zarządzana w chmurze. Takie podejście zmniejszyło nakłady klienta na zarządzanie infrastrukturą i bieżące koszty utrzymania.
Migracja i optymalizacja bazy danych
Krytyczną częścią modernizacji była migracja i optymalizacja warstwy bazy danych. Aby rozwiązać krytyczne problemy z wydajnością, przeprowadziliśmy migrację samodzielnie hostowanej bazy danych MySQL do Azure Database for MySQL.
Wprowadzenie ujednoliconej warstwy API
Wcześniej kilka aplikacji uzyskiwało bezpośredni dostęp do bazy danych, tworząc ukryte zależności. Sprawiało to, że aktualizacje były ryzykowne i zwiększały złożoność migracji.
Wprowadziliśmy scentralizowaną warstwę REST API, która służy teraz jako pojedynczy punkt komunikacji między aplikacjami klienta a bazą danych. Takie podejście ustandaryzowało wymianę danych, wzmocniło walidację i kontrolę dostępu oraz znacznie zmniejszyło złożoność architektury.
Wszystkie komponenty systemu Gestical Web współdziałają teraz za pośrednictwem tej bezpiecznej warstwy API.
Praca nad platformą Gestical wymagała starannego dostosowania istniejących systemów do nowej architektury. Nasz zespół skupił się na zaprojektowaniu skalowalnego fundamentu, który pozwala na ewolucję platformy przy jednoczesnym zachowaniu ciągłości bieżących operacji.

Aliaksandr Kawalczuk
Kierownik projektuTechnologie
Backend
NestJS
Frontend
React, TypeScript
Baza danych i dostęp do danych
MySQL, TypeORM
Uwierzytelnianie i bezpieczeństwo
Azure AD
Zespół
UX/UI

Wyniki
Platforma Gestical Web działa teraz w ramach ujednoliconej architektury zaplecza, poprawiając niezawodność systemu i tworząc bardziej stabilne środowisko do zarządzania operacyjnymi przepływami pracy.
Wdrażając platformę na platformie Azure App Service, klient obniżył koszty utrzymania infrastruktury i uprościł bieżące zarządzanie platformą.
Wraz z wprowadzeniem scentralizowana warstwa API REST, Komunikacja między aplikacjami a bazą danych jest teraz ustandaryzowana i bezpieczniejsza, co zmniejsza ukryte zależności i ułatwia wdrażanie przyszłych aktualizacji systemu.
Kroki te ustanawiają ustrukturyzowaną, bezpieczną i skalowalną podstawę natywną dla chmury dla dalszej stopniowej modernizacji platformy Gestical.









