Aplikacja do monitorowania narażenia na promieniowanie

Firma Innowise zmodernizowała aplikację do monitorowania narażenia na promieniowanie, poprawiając czas reakcji i kładąc podwaliny pod zwiększenie funkcjonalności oprogramowania.

Wyzwanie

Aplikacja klienta do monitorowania narażenia na promieniowanie była dostępna na rynku już od ponad 10 lat, ale jej baza kodu nie przeszła w tym czasie żadnych znaczących aktualizacji ani przeróbek. Wraz z rozwojem działalności klienta wzrosło zapotrzebowanie na bardziej solidne, skalowalne rozwiązanie.

Firma chciała zmodernizować oprogramowanie, naprawić błędy i rozwiązać kilka problemów systemowych, które wpływały na wydajność i ogólną użyteczność:

  • Nieodpowiednia wydajność. Aplikacja znacznie zwalniała, gdy wielu klientów końcowych składało zapytania jednocześnie, co czasami skutkowało długim czasem oczekiwania i frustracją użytkowników. Ponieważ klient miał plany ekspansji biznesowej i spodziewał się wzrostu bazy użytkowników, ze wskaźników wydajności jasno wynikało, że aplikacja nie była w stanie poradzić sobie ze zwiększonym obciążeniem.
  • Ograniczone możliwości. Z biegiem lat działalności, klient zdał sobie sprawę, że aplikacja nie posiadała kilku ważnych funkcji niezbędnych do lepszego spełnienia wymagań klientów. Chcieli rozszerzyć rozwiązanie do monitorowania narażenia na promieniowanie o nowe, zaawansowane funkcje.
  • Słaba architektura aplikacji. Pierwotna architektura nie została zaprojektowana z myślą o skalowalności, przez co klient obawiał się, że nie będzie w stanie sprostać dalszemu rozwojowi.
  • Fragmentaryczna dokumentacja. Duża część dokumentacji aplikacji była przestarzała lub niekompletna. Aby usprawnić aktualizacje aplikacji i wdrażanie nowych użytkowników, klient musiał odzwierciedlić wszystkie aspekty istniejącego rozwiązania w dokładnej dokumentacji projektu.
W tym czasie aplikacja do monitorowania narażenia na promieniowanie była obsługiwana przez zewnętrzny zespół, który nie był w stanie rozwiązać tych problemów wystarczająco szybko. Klient poszukiwał więc doświadczonego zespołu ds. opieki zdrowotnej. partner w tworzeniu oprogramowania do przejęcia modernizacji aplikacji monitorującej narażenie na promieniowanie.

Rozwiązanie

Zespół Innowise rozpoczął projekt od dogłębnego audytu aplikacji monitorującej narażenie na promieniowanie, aby zrozumieć podstawowe przyczyny problemów wpływających na system. Oto, co znaleźliśmy:

  • Przestarzała technologia. Aplikacja wykorzystywała starsze wersje języków programowania, w tym Node.js i Angular.js, a także różne wersje języków w całej aplikacji.
  • Nieefektywne zapytania SQL. W sposobie pisania zapytań SQL występował szereg anty-wzorców, które przyczyniały się do niskiej wydajności aplikacji.
  • Problemy z kontrolą wersji. Aplikacja cierpiała z powodu nieefektywnych praktyk kontroli wersji oprogramowania, z nieaktualnymi plikami, wtyczkami innych firm i plikami wykonywalnymi przechowywanymi pod kontrolą źródła.
  • Zdezorganizowane repozytoria. Struktura repozytoriów i projektów nie była intuicyjna, co utrudniało nawigację i zarządzanie bazą kodu.
  • Wdrożenie ręczne. Aplikacja była wdrażana ręcznie, bez potoku CI/CD, co zwiększało ryzyko biznesowe i prowadziło do potencjalnych błędów ludzkich.
  • Brak mechanizmów tworzenia kopii zapasowych i odzyskiwania danych. Nie istniały żadne mechanizmy tworzenia kopii zapasowych danych aplikacji lub odzyskiwania aplikacji, gdyby coś poszło nie tak.

W oparciu o wyniki audytu zespół projektowy Innowise stworzył jasną mapę drogową ulepszeń niezbędnych dla stabilności, wydajności i skalowalności aplikacji do monitorowania narażenia na promieniowanie. Po tym, jak klient zatwierdził nasz plan, przeszliśmy do stałych ulepszeń. 

Klient chciał, aby ewolucja aplikacji przebiegła tak płynnie, jak to tylko możliwe, więc zmiany były niewidoczne dla użytkowników końcowych, zapewniając brak zakłóceń biznesowych. Następnie zespół Innowise wprowadził następujące zmiany w aplikacji do monitorowania narażenia na promieniowanie.

Konteneryzacja aplikacji

Aby zwiększyć wydajność i wesprzeć przyszłe potrzeby skalowania, podzieliliśmy aplikację na kilka kluczowych komponentów: frontend, backend, moduły raportowania, moduł logowania i monitorowania oraz bazę danych. Następnie nasz zespół skonteneryzował każdy komponent i przeniósł je do oddzielnych maszyn wirtualnych. Zmiany te wspierały rosnące obciążenia przewidywane przez klienta.

Modernizacja stosu technologicznego

Zmodernizowaliśmy stos technologiczny aplikacji, aktualizując przestarzałe frameworki i narzędzia, usuwając błędy i upewniając się, że system może obsługiwać przyszłe ulepszenia. Dało to aplikacji bardzo potrzebny wzrost wydajności i łatwości konserwacji.

Refaktoryzacja bazy danych

Zespół Innowise refaktoryzował bazę danych aplikacji monitorującej narażenie na promieniowanie, ulepszając zapytania do bazy danych, dodając indeksy i wprowadzając klucze obce. Nasze kompleksowe podejście zwiększyło wydajność bazy danych po refaktoryzacji.

Wdrożenie potoku CI/CD

Wprowadziliśmy potok ciągłej integracji i wdrażania (CI/CD), aby zastąpić ręczny proces wdrażania. Dzięki temu nowemu podejściu nasz zespół zautomatyzował proces wdrażania, zapewniając szybsze i bardziej niezawodne aktualizacje. Wdrożyliśmy również rejestrowanie i monitorowanie systemu przy użyciu Prometheus i Grafana, aby śledzić i wizualizować wydajność systemu i problemy w czasie rzeczywistym.

Kopie zapasowe i odzyskiwanie po awarii

Zespół Innowise wykorzystał Infrastructure as Code (IaC) do odzyskiwania danych po awarii, co oznacza, że całą aplikację można teraz ponownie wdrożyć w nowym środowisku w ciągu kilku minut. Stworzyliśmy również solidne procedury tworzenia kopii zapasowych, aby upewnić się, że dane są bezpieczne i można je szybko przywrócić w razie potrzeby.

Dokumentacja aplikacji

Równolegle do refaktoryzacji, zespół Innowise skrupulatnie tworzył dokumentację dla aplikacji monitorującej narażenie na promieniowanie, w tym wszystkie zmiany w architekturze i systemie.

Nadchodzący rozwój i przeprojektowanie interfejsu użytkownika

Po tym, jak położyliśmy podwaliny pod ewolucję aplikacji do monitorowania narażenia na promieniowanie, zamierzaliśmy przejść do rozwoju funkcji i przeprojektowania interfejsu użytkownika. Oto przyszłe ulepszenia, które nasz zespół już zaplanował:
  • Ulepszenia raportowania. Ulepszymy funkcje raportowania, dodając nowe rodzaje badań lekarskich i wprowadzając więcej formatów raportów.
  • Przeprojektowanie interfejsu użytkownika. Będziemy przeprojektowanie interfejsu użytkownika być bardziej intuicyjny i dostosowywać się do różnych urządzeń i rozmiarów ekranu, zapewniając lepsze wrażenia użytkownika końcowego.
  • Dalsze ulepszenia architektury. W oparciu o dane i wskaźniki wydajności Innowise będzie nadal ulepszać architekturę aplikacji, aby zapewnić jej skuteczne skalowanie.

Technologie

Frontend

Angular

Backend

Node.js, WinDev

Chmura

OVHcloud

Baza danych

MySQL

DevOps

Terraform, Bitbucket, Grafana, Prometheus, Docker, Docker Compose

Proces

Biorąc pod uwagę, że klient chciał elastyczności w zakresie projektu, uzgodniliśmy model cenowy Time & Material, co oznacza, że z góry oszacowaliśmy godziny projektu, ale obciążyliśmy klienta tylko za faktycznie spędzone godziny. Gdy klient potrzebował rozszerzyć zakres projektu, nasz kierownik projektu dostarczył dodatkowe obliczenia, dzięki czemu klient mógł łatwo śledzić wydatki i postępy projektu.

Przyjęliśmy iteracyjne podejście do zarządzania projektem, dzieląc go na sprinty i definiując jasne kamienie milowe dla każdej fazy. Co tydzień nasz zespół projektowy prowadził rozmowy z interesariuszami klienta, aby dzielić się postępami i wynikami, poprawiając ogólne dostosowanie zespołu.

Wymagany zespół

1

Kierownik projektu

1

Delivery Manager

1

Analityk biznesowy

1

Architekt rozwiązań

1

Programista Back-End

1

Programista Front-End

1

Inżynier DevOps

1

QA Engineer

1

Inżynier ds. testów penetracyjnych

Wyniki

Teraz klient ma znacznie bardziej niezawodną, skalowalną i łatwą w utrzymaniu aplikację do monitorowania narażenia na promieniowanie. Z powodzeniem zmodernizowaliśmy infrastrukturę oprogramowania, naprawiliśmy problemy z wydajnością i zapewniliśmy, że architektura poradzi sobie z przyszłym rozwojem. Zespół Innowise opracował również jasny plan rozwoju nadchodzących funkcji i ulepszeń systemu, które pomogą jeszcze bardziej poprawić komfort użytkowania i wydajność operacyjną.

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia.

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając "Wyślij", wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z naszą Politykę Prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przetworzeniu zgłoszenia skontaktujemy się z Tobą, aby szczegółowo opisać projekt i podpisać umowę NDA w celu zapewnienia poufności.

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami, nasz zespół opracuje projekt wraz z zakresem prac, wielkością zespołu, wymaganym czasem i szacunkowymi kosztami.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    strzałka