Rozwój Backendu V2C (Vehicle-to-Cloud) w Rust do obliczeń geoprzestrzennych

Implementacja oprogramowania w RUST w rozległych systemach chmurowych

Rozwój Backendu V2C (Vehicle-to-Cloud) w Rust do obliczeń geoprzestrzennych

Project Details

  • Zadanie : Implementacja
  • Zakończenie : Październik 2023

Klient

Niemiecki dostawca map oraz usług nawigacyjnych

Wyzwanie

Zwiększenie wydajności i bezpieczeństwa (memory safety) krytycznego komponentu backendowego dla platformy V2C (Vehicle-to-Cloud). System, intensywnie wykorzystujący dane geoprzestrzenne do kalkulacji tras, był pierwotnie napisany w C++ i wymagał migracji do technologii Rust, aby zapewnić większą odporność na błędy, bezpieczeństwo pamięci i lepsze zarządzanie współbieżnością.

Rozwiązanie

Moja rola polegała na portowaniu kluczowych funkcjonalności backendu z C++ do Rust, aby zwiększyć jego solidność i wydajność. Kluczowe zadania:

Migracja Logiki Biznesowej do Rust: Przepisanie rdzenia oprogramowania backendowego w Rust. Moduł ten odpowiadał za obliczanie optymalnych tras dojścia do określonych punktów POI (Points of Interest) w oparciu o zaawansowane zbiory danych geoprzestrzennych.

Integracja Rust z C++ (FFI): Stworzenie bezpiecznego interfejsu (FFI - Foreign Function Interface) pomiędzy nowymi modułami Rust a istniejącymi, wysokowydajnymi bibliotekami C++ (wykonującymi złożone obliczenia geoprzestrzenne). Zarządzałem przepływem danych (współrzędne, segmenty tras) między tymi dwiema domenami.

Ekspozycja Danych przez API: Zapewnienie bezproblemowej ekspozycji wyników (obliczonych tras) do usług zewnętrznych poprzez dobrze zdefiniowane API, umożliwiając komunikację między pojazdem a infrastrukturą chmurową.

Rezultat

Migracja do Rust pozwoliła na znaczące podniesienie bezpieczeństwa pamięci (eliminując całe klasy błędów znanych z C++) oraz poprawiła wydajność systemu dzięki lepszemu zarządzaniu współbieżnością. Backend stał się bardziej odporny, niezawodny i gotowy do skalowania, obsługując aplikacje geolokalizacyjne nowej generacji.

Użyte Technologie:

Języki: Rust, C++

Koncepty: Backend Development, Vehicle-to-Cloud (V2C), Dane Geoprzestrzenne (Geospatial), FFI (Foreign Function Interface), Bezpieczeństwo Pamięci (Memory Safety), Współbieżność (Concurrency)

Architektura: API (REST/gRPC), Mikroserwisy

Narzędzia: (Tu możesz dodać, np. cargo, tokio, serde)