Проекты

Намба Такси. Разработка и внедрение

Alla Klimenko
Mad Devs — блог об IT
3 min readDec 12, 2016

--

Наше участие в разработке софта для Намба Такси началось в момент, когда компания уже вовсю набирала обороты, в 2013 году. В какой-то момент минусы используемого тогда софта стали настолько мешать развитию проекта, что руководство мудро решило заняться разработкой своего собственного софта для служб такси. Для этих целей были привлечены наши ребята.

Таким образом, задача, которая была поставлена перед нашими инженерами заключалась, во-первых, в написании самого софта, во-вторых, в переносе действующего бизнеса на этот софт, и, в-третьих, в оперативной обработке фидбека пользователей.

Требования

Требования к системе были следующими:

1. Минимум изменений в рабочем процессе
Люди, задействованные в рабочем процессе, зачастую доводят многие действия до автоматизма, плюс, процессы в действующем бизнесе уже отработаны и расписаны. Поэтому переход на новое ПО должен проходить как можно незаметнее и безболезненнее для них.

2. Высокая отказоустойчивость системы
Для службы такси категорически важная вещь, особенно в непогоду, когда количество заказов увеличивается в разы

3. Легкое масштабирование в будущем
Это всегда лучше закладывать в самом начале разработке, если проект вообще предполагает рост. Так мы и сделали и, как показывает время, совершенно правильно.

4. Гибкость в разработке
Чем меньше ограничений, тем проще учесть новые требования и технологии и внедрить их в существующую систему без грандиозных переделок.

5. Поддержка китайских навигаторов на WindowsCE
На тот момент почти все службы такси все еще пользовались навигаторами, перевести разом всем водителей на приложения было невозможно

6. Поддержка для Android девайсов
Пора было постепенно уходить от раций и навигаторов в сторону более практичных, удобных и современных технологий

7. Обновление заказов в режиме реального времени
Время подачи машины — один из важнейших параметров, которому уделялось особое внимание на всем протяжении разработки и работы самой компании

8. Работающая телефония по технологии WebRTC в браузере
Для исключения необходимости использовать дополнительное оборудование помимо браузера для операторов.

9. Возможность быстрого перехода с чужого ПО на свое, без парализации работы службы
Учитывая обработку по несколько заказов в минуту, крайне важно избежать парализации работы на этапе перехода и после него.

Ограничения

В процессе разработки были и ограничения, которые нельзя было не принимать во внимание:

Высокая стоимость мобильного трафика
Таким образом, необходимо было ограничить пересылаемый трафик, чтобы сэкономить затраты водителей и клиентов, пользующихся мобильными приложениями.

Ограниченные серверные ресурсы
Для небольшой, хоть и бурно развивающейся компании такси на тот момент, затраты на сервера были крайне критичны.

Минимальная команда
Из-за небольшого бюджета на разработку на тот момент, мы не имели возможности подключить больше людей для участия в этом проекте.

Сжатые сроки
Рост количества заказов был стремительный, как и рост нагрузки, а потому свой софт компании нужен был как можно скорее (как это обычно и бывает).

Что в результате

В итоге нам удалось сделать высоко масштабируемую и отказоустойчивую систему, которая:

  • выдерживает до 700 водителей на линии без каких-либо задержек;
  • обслуживает около 6000 запросов в секунду;
  • позволяет обрабатывать более 10000 заказов в сутки.

На текущий момент, наши разработчики и сисадмины продолжают развивать и поддерживать ПО для Намба Такси.

В планах переход еще нескольких служб такси на софт Намба Такси в ближайшие несколько месяцев, а также еще несколько интересных задумок, о которых мы расскажем позже.

--

--