Перейти до вмісту

CUP Carsharing — Arval Car Sharing, Share'N Go & MiMoto

Платформа мобільності

2015 - 2020 · Керівник R&D та архітектура платформи

Мультиоператорська платформа каршерингу та шерингу скутерів від Omniaevo — нативні застосунки для iOS та Android, бекенд керування автопарком на PHP і Node.js та зв'язок у реальному часі аж до бортового комп'ютера кожного автомобіля — що забезпечує роботу Arval Car Sharing, Share'N Go, MiMoto та інших.

Програмне забезпечення, що відмикає машини

Створена в Omniaevo, де я очолював автомобільну команду R&D — з підвищенням від старшого бекенд-архітектора до керівника команди розробки — це платформа, що перетворила дотик до екрана телефона на реальний рух автомобіля. Одна базова система, брендована та експлуатована як кілька різних сервісів каршерингу та шерингу скутерів по всій Європі.

Продукт ніколи не був окремим застосунком. Це була мультиоператорська платформа спільної мобільності: той самий рушій забезпечував роботу чинних сервісів — Arval Car Sharing, окремого free-floating-сервісу Share’N Go та шерингу електроскутерів MiMoto — і запускався як MVP для залучення потенційних партнерів, серед яких були Avis (пілотний проєкт в Австралії), EasyRide та конфігурація Star Car Alliance. Кожен чинний сервіс працював як власний бренд — зі своїми застосунками, автопарками, тарифами та містами — поверх одного спільного ядра, з конфігурацією, бекофісом і розгортанням для кожного оператора.

Складним був не екран; складним був ланцюг надійності від дотику користувача до фізичного стану автомобіля, від початку до кінця. Бронювання на телефоні мало дійти до потрібної машини, припаркованої на вулиці, розблокувати її, авторизувати запуск двигуна, відстежити поїздку через мобільні мережі, а потім завершити її та виставити рахунок — і залишатися коректним, коли зв’язок, обладнання чи водій робили щось несподіване. Цей ланцюг проходив через мобільні застосунки, мікросервіси, шину повідомлень, прошивку автомобілів та операційну підтримку, і все це мало сходитися в єдиній істині.

Бекенд відображав це. Базова логіка автопарку та бізнес-логіка працювала на PHP зі Zend Framework і Doctrine, поверх MongoDB та PostgreSQL з PostGIS для геопросторових запитів, з картковими платежами CartaSi та доступом, захищеним JWT. Навколо неї розташовувався набір мікросервісів на Node.js — маршрутизатор повідомлень ZeroMQ/Redis, що переносив команди й телеметрію автомобілів, MQTT для обміну повідомленнями з пристроями, REST API, поштовий хаб, карта автомобілів у реальному часі та теплова карта, фронтенд яких перейшов з AngularJS на Svelte, адміністративні та операційні боти. Уся інфраструктура працювала контейнеризованою в Kubernetes — Google Kubernetes Engine поверх Compute Engine — з Apache Kafka для високопродуктивної потокової передачі подій, у Google Cloud: передовий автомобільний стек, який я впровадив у відділ R&D.

Ми навмисно намагалися її зламати. За допомогою Locust — open-source-інструмента роєвого навантажувального тестування — ми обрушили на чинну платформу трафік масштабу DDoS, поки вона обслуговувала реальних користувачів, і спостерігали, як horizontal pod autoscaler у Kubernetes додає потужності під навантаженням. Вона встояла й утримала загальну затримку близько 150ms протягом усього часу.

На боці пристроїв водії використовували справжні нативні застосунки: iOS на Swift з UIKit, Android на Kotlin, створені для кожного оператора для бронювання, доступу до автомобіля, карт у реальному часі та керування поїздкою. Ці застосунки були видимою вершиною; під нею платформа дотягувалася аж до нутра автомобілів.

Саме ця досяжність робила її незвичайною. Кожен автомобіль ніс бортовий комп’ютер — вбудовану прошивку на C/C++, зі своїм SDK-інструментарієм та інсталятором карт — і платформа напряму взаємодіяла з ним та з платами OEM в автомобілі, у реальному часі: блокування й розблокування, керування іммобілайзером і запалюванням, телеметрія GPS і CAN, віддалена діагностика. Програмне забезпечення, що говорить напряму із залізом, а не через сторонній модуль.

Через Bulweria Ltd — британську компанію, що володіла програмним забезпеченням CUP Carsharing — платформа дійшла до Fleet News Awards 2017 як фіналіст у номінації «Most Innovative New Product or Service», визнання від вимогливого журі індустрії автопарків за систему, що замкнула коло між застосунком і рухомим автомобілем.

Галерея