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», признание от взыскательного жюри индустрии автопарков за систему, замкнувшую круг между приложением и движущимся автомобилем.
Галерея













