Navifleet – system do monitoringu pojazdów i zarządzania flotą > Blog Intellect
Wciśnij enter, aby wyszukać
Blog Intellect / Case study  / Navifleet – system do monitoringu pojazdów i zarządzania flotą
navifleet - system monitorowania pojazdów i zarządzania flotą

Navifleet – system do monitoringu pojazdów i zarządzania flotą

Dla Navifleet stworzyliśmy i nieustannie rozwijamy system telematyczny monitorujący pojazdy flotowe. Navifleet to 167 komunikatów na sekundę – 24/7, 1TB przetwarzanego tekstu dziennie, 16 serwerów i 18000 monitorowanych pojazdów.

Klient: Navifleet
Projekt: System do monitoringu pojazdów GPS
Metodyka pracy: Scrum
Zespół: 6 osób
Technologie:  Java, JavaScript, PHP, MariaDB, MySQL, Redis, RabbitMQ, HAProxy, ExtJS, React Native, Spring, Symfony

navifleet - system monitorowania pojazdów i zarządzania flotą

Czym jest Navifleet?

Navifleet to zaawansowany system monitoringu GPS do lokalizowania pojazdów na mapach całego świata. Aplikacja pozwala na monitorowanie floty pojazdów w czasie rzeczywistym, w tym na analizę przebytych tras, kontrolę zużycia paliwa czy generowanie raportów i statystyk.

widok mapy na desktopie

System wykorzystuje lokalizatory GPS montowane w pojazdach, transmisję danych GPRS oraz aplikację internetową. Aby monitorować pojazdy, wystarczy zalogować się do aplikacji poprzez przeglądarkę internetową na komputerze, tablecie lub smartfonie.

mapa navifleet na smartfonie

Praca w modelu zwinnym

System Navifleet jest nieustannie rozwijany. Prace nad systemem, w ramach których wdrażamy nowej funkcjonalności, prowadzone są w frameworku scrum i odbywają się w dwutygodniowych sprintach.

Wybór takiej metodologii pozwala na przeprowadzanie regularnych kontroli oprogramowania, wprowadzenie poprawek i regulacji w procesie wytwarzania. 

Zespół

System Navifleet jest tworzony przez 6-cio osobowy zespół: czterech developerów, product owner oraz scrum master.

Technologie 

System Navifleet wykorzystuje klaster serwerów bazodanowych w środowisku MySQL oraz MariaDB. Pomiędzy serwerami zestawiona jest replikacja, aby zwiększyć bezpieczeństwo danych. Z uwagi na dużą ilość danych, tabele w bazach są partycjonowane.

wykresy w aplikacji navifleet

Backend aplikacji webowej Navifleet został napisany w PHP 7, wykonana w modelu MVC (ang. Modell- View-Controller) z wykorzystaniem frameworka Symfony, natomiast frontend powstał w JavaScript z użyciem frameworka ExtJS.  Dostęp do danych odbywa się z poziomu WebAPI. Aplikacja mobilna zaimplementowana w React Native.

Wysoka dostępność systemu 

Ze względu na fakt, iż platforma Navifleet ma około 6,5 tys. wyświetleń dziennie, z ponad 30 krajów na całym świecie, konieczne jest zapewnienie jej wysokiej dostępności.

mapa europy

Dodatkowym utrudnieniem jest geograficzne rozmieszczenie użytkowników Navifleet. Według danych statystycznych, platforma jest wyświetlana w ok. 60% stref czasowych, co praktycznie uniemożliwia przeprowadzanie typowych nocnych prac serwisowych, bo niemal o każdej porze dnia ktoś z niej korzysta.

Kolejnym, równie ważnym powodem, dla którego musieliśmy zapewnić wysoką dostępność aplikacji, jest różnorodność zastosowań systemu Navifleet. Do najbardziej wrażliwych należą przewozy towarów akcyzowych objętych systemem SENT Ministerstwa Finansów, dostawy Just in Time, platforma carsharingowa i system zapobiegania kradzieży pojazdu.

Za wysoką wydajność systemu odpowiadają następujące elementy:

Load balancer

Ze względu na dużą ilość danych wysyłanych z urządzeń IoT zainstalowanych w pojazdach do systemu oraz z systemu do użytkowników platformy (np. w postaci raportów generowanych przez aplikację) niezbędne było zastosowanie układu balansującego przepływ danych. Rolą takiego systemu jest dystrybuowanie ruchu danych adekwatnie do obciążenia poszczególnych maszyn i usług pracujących w ramach infrastruktury serwerowej. Realizację tego celu oparliśmy o technikę load balancing’u HAProxy (ang. High Avaliability Proxy).

System kolejkowania wiadomości

Kolejnym wyzwaniem było uodpornienie systemu na wahania ilości danych w potokach ruchu w taki sposób, by ilość odbieranych danych przez serwery w żaden sposób nie wpływała na stabilność działania. Taki efekt został osiągnięty przez implementacje systemu kolejkowania danych za pomocą układu serwerów z usługami odpowiedzialnymi za przyjmowanie danych z urządzeń i wstępną obróbkę, publikację danych do kolejek oraz odczytywania danych z kolejek i zapisu do bazy. Nad całością przepływu danych czuwa broker wiadomości RabbitMQ.

Usługi zapisu danych

Na tym etapie wykonywana jest standaryzacja zapisu danych, aby wyeliminować potencjalny wpływ urządzeń IoT różnych producentów i protokołów danych.

Całodobowy monitoring stabilności

W celu zapewnienia maksymalnej niezawodności wdrożone zostały mechanizmy ciągłego monitorowania funkcji życiowych całej infrastruktury (m.in. Munin, NagiOS) oraz logowania istotnych zdarzeń (np. ELK Stack).

Wszystkie anomalie są rejestrowane natychmiast i do pracy przystępuje dedykowany zespół administratorów, który pracując na 3 zmiany, nieustannie czuwa nad prawidłową pracą systemu.

Monitorowana jest też aktywność urządzeń objętych systemem – gdy któryś z nich nie nawiązuje przez deklarowany czas połączenia z serwerem, wówczas generowane jest ostrzeżenie diagnostyczne, do wściela pojazdu.

Klienci

System Navifleet zdobył zaufanie wielu klientów z rozmaitych branż i instytucji. Z jego możliwości na co dzień korzystają m.in.: DSV, Foodcare, PZPN, FIFA, OSHEE, Metrostav, Budimex, Mota-Engil, Strabag, Wanicki, Inter Cars, Groupe BERTO, Inpost, Grupa Azoty.

Skala projektu

16 serwerów, na których pracuje system

10 krajów, w których Navifleet monitoruje flotę

300 000 odsłon aplikacji miesięcznie

 1 TB dziennie przetwarzanego tekstu

18000 monitorowanych pojazdów

167 ilość wiadomości, jakie przesyła system na sekundę, 24 godziny na dobę, dni w tygodniu

zrzut zadań w navifleet na smartfonie

Podsumowanie

Efektem naszych prac jest profesjonalny system monitoringu GPS pojazdów Navifleet, który pozwala na sprawne i skuteczne zarządzanie flotą pojazdów, optymalizację kosztów oraz procesów logistycznych w firmie.

dashboard navifleet

Zastosowane technologie odpowiadają za niezawodność, wysoką dostępność oraz wydajność systemu, a także nieustanny monitoring stabilności.

Zwinny model prac pozwala na bieżąco rozwijać system. Nowe funkcjonalności są nieustannie wdrażane przez dedykowany zespół specjalistów, który dba o to, aby oprogramowanie odpowiadało zmieniającym się wymaganiom rynku oraz użytkowników końcowych.

Anna Kaleta

Product Manager

Piotr Smoleń

Menedżer ds. Rozwoju Navifleet


1 Komentarz
  • Odpowiedz 17 stycznia 2020 12:11

    Bardzo fajnie i przejrzyściej wyglądająca apka :)) – dla firmy która zarządza transportem jest to mega ułatwienie i niezła analiza wszystkich kosztów.

    Niemniej bardzo duzo pracy potrzeba było aby w ogóle wszystko dopiąć na ostatni guzik.