Стартап «АТИМО» — участник акселератора StartupDrive от «Газпром Нефть». Команда «АТИМО» разработала приложение для таксопарков и автопарков, которое автоматизирует получение путевых листов. Благодаря ему таксопаркам не нужно держать в штате медицинских работников для предрейсовых осмотров водителей и механиков для проверки автомобилей.
На март 2023 года приложением «АТИМО» пользовалось уже 20 таксопарков, а в базе данных хранилось более 35 тысяч записей о водителях и машинах.
В первые месяцы стартап «АТИМО» работал с тремя контрагентами, у каждого из которых было по одной базе данных. Система напрямую подключалась к нужной БД, скачивала данные о водителях и машинах и формировала путевые листы. По тому же принципу работала передача в обратную сторону: таксопарк получал доступ к БД «АТИМО» и скачивал путевые листы и журналы.
На старте такое решение работало хорошо, но масштабирование на новых контрагентов было не таким очевидным. Для каждой точки подключения нужно настроить прямое соединение, затем определить формат данных в базах таксопарка и «научить» систему приводить их к нужному виду.
Кроме того, прямое соединение требует больших ресурсов. Опрос одной точки занимал от 1 до 4 Гб памяти на сервере «АТИМО», а всего было доступно 32 Гб. При существующих ресурсах клиент мог добавить в систему еще 8–10 крупных таксопарков. Большее число новых контрагентов вызвало бы заметные задержки и ошибки при получении данных.
Наконец, прямое соединение не гарантировало безопасность. Если бы злоумышленники взломали инфраструктуру любого подключенного таксопарка, через нее они могли бы получить доступ к системам АТИМО.
Масштабирование системы стало медленным, сложным и ресурсоемким. ****Чтобы решить эту проблему, «АТИМО» обратился к KT.Team.
Нужно наладить такое подключение таксопарка к системе клиента, при котором
KT.Team работала только с частью бизнес-процессов клиента, которая касается соединения с базами таксопарков. То, как «АТИМО» получает информацию от автоматизированных точек осмотра, обрабатывает ее и формирует путевые листы, осталось за рамками задачи.
Перед рейсом каждый водитель таксопарка должен получить путевой лист с данными о здоровье водителя и состоянии автомобиля. Для этого таксопарку нужно либо иметь в штате врача и механика, либо пользоваться услугами сторонних организаций.
«АТИМО» предложил таксопаркам упростить взаимодействие с подрядчиками по получению путевых листов. Стартап предоставляет своим клиентам доступ к автоматизированным точкам, где работают врач и механик. Водитель авторизуется в такой точке по номеру телефона, затем его осматривает врач, а машину проверяет механик. Все данные загружаются в систему, обрабатываются и на их основе формируется электронный путевой лист.
Чтобы сформировать путевой лист, приложению «АТИМО» нужны данные о водителях и автомобилях:
Приложение должно подключиться к базе данных (БД) таксопарка, чтобы забрать их.
У одного таксопарка может быть несколько баз данных. Например, разные филиалы пользуются разными базами или таксопарк поддерживает отдельно БД по водителям и БД по автомобилям. У каждого из таксопарков есть свои правила хранения информации: могут отличаться названия полей в таблицах и форматы данных. Это нужно учитывать и приводить все поля к единому виду, чтобы система могла их обработать.
Одни и те же данные у разных таксопарков хранятся в разных форматах
Журналы медицинских и технических осмотров, готовые путевые лист хранятся на сервере «АТИМО». Если таксопарку нужно получить эти данные, он подключается к серверу, авторизуется и скачивает их.
Схема взаимодействия сервисов до начала проекта
KT.Team спроектировала новую схему передачи данных так, чтобы у системы «АТИМО» осталась одна точка подключения — сервисная шина (ESB). То есть таксопарки больше не могут напрямую соединяться с БД «АТИМО», чтобы передать или получить данные. Безопасность взаимодействия повысилась для всех участников схемы.
Шина подключается к БД таксопарка, скачивает данные о водителях и автомобилях и загружает их в собственное хранилище. Оттуда данные отправляются в «АТИМО».
Затем «АТИМО» возвращает шине готовые путевые листы. ESB скачивает их и загружает во второе хранилище. После этого любой таксопарк может отправить шине запрос и получить путевые листы для своих водителей.
ESB форматирует данные из БД таксопарков, чтобы передать их системе «АТИМО» в готовом к обработке виде. Внутри каждого сервиса настроены правила маппинга.
KT.Team меняла архитектуру решения трижды, чтобы добиться оптимального результата. В первой версии шина опрашивала все БД с помощью одного сервиса.
Такой подход хорошо экономил ресурсы сервера, но не был отказоустойчивым. Из-за того, что все запросы шли друг за другом, ошибка при подключении к первому таксопарку могла оборвать все последующие.
Во второй версии архитектуры шина подключалась к каждой базе через отдельный сервис. Это требовало чуть больше ресурсов сервера, но исключало массовый сбой из-за одной недоступной БД или другой ошибки.
Кроме того, в этом решении было много дополнительных этапов, например, сбор и запись в лог всех ошибок. Они требовали дополнительного времени и памяти для обработки, поэтому архитектуру нужно было облегчить и упростить.
Итоговая версия архитектуры также основана на отдельных сервисах для каждой точки подключения.
Все сервисы работают одинаково:
Чтобы добавить новый таксопарк, нужно скопировать один из существующих сервисов и настроить его: например, заменить правила маппинга. Чтобы упростить для клиента эту задачу, KT.Team использовала low-code-решение Mule как основу шины. Этот инструмент не требует навыков программирования, поэтому работать с ним может любой сотрудник «АТИМО».
Кроме того, KT.Team подготовила пошаговую инструкцию для настройки точки подключения, в которой описаны все нюансы.
Ваша заявка отправлена успешно
Отправить снова
С вами свяжутся персональные менеджеры
Контакты
Назначить встречу
Забронировать время встречи с помощью Google Calendar