Система онлайн-бронирования авиабилетов и поддержка 24х7

Индустрии
Путешествия
Компетенции
Разработка
Технологии
.NET Core, Vue.js, PostgreSQL, Redis, RabbitMQ

Клиент


Наш клиент — российская авиакомпания, выполняющая внутренние и международные рейсы. Компания входит в пятёрку крупнейших пассажирских авиаперевозчиков России. 

Задачи


Клиент обратился в Аркадию с целью разработать собственную платформу продаж авиабилетов. Ранее компания использовала коробочное решение — одну из популярных глобальных систем бронирования (Global Distribution System, GDS) авиабилетов. Однако заказчика не устраивали возможности коробочного решения, поэтому он решил разработать своё собственное.

Решение


На данном проекте мы осуществляем полный цикл разработки: от анализа запросов заказчика и пользователей до разработки, тестирования, развёртывания в продакшен-окружении и поддержки.

Краткое описание основного функционала

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

Скриншот: выбор билетов

Шаг выбора тарифа авиаперелета

После выбора тарифа пассажир указывает свои данные и переходит к выбору дополнительных услуг. В их число входят не только услуги, предоставляемые авиакомпанией на борту самолёта (например, место в самолёте; питание на борту), но и услуги, предоставляемые партнёрскими сервисами (например, страховка). На этом шаге система отправляет множество запросов в сторонние системы для получения информации по доступным услугам.

Скриншот: выбор питания

Пример дополнительной услуги по выбору питания на борту самолета

Наконец, пользователь переходит на последний шаг, где проверяет правильность выбранных билетов, услуг и введённых данных.

Оплата выбранных билетов и услуг производится через сторонний платёжный сервис. После успешной оплаты пассажир попадает в другое веб-приложение — сервис управления бронированием, где он может докупить услуги, скачать маршрутную квитанцию, проверить время отправления/прибытия рейса, зарегистрироваться на рейс и получить посадочный талон. Данное веб-приложение также разрабатывает Аркадия.

Особенности проекта

Особенность данного проекта состоит в том, что наша база данных на 95% конфигурационная. Это значит, что в ней хранятся конфигурации, а не созданные заказы или персональные данные пассажиров. Конфигурация позволяет настроить нужный авиакомпании путь клиента от выбора билетов и услуг до покупки и ввести дополнительные опции для увеличения среднего чека. Кроме того, в конфигурации хранятся настройки, которые позволяют оперативно обновлять информацию о полётах (что было особенно актуально во время пандемии COVID-19) и добавлять акции по возвратным тарифам.

Основная сложность проекта состоит в большом количестве интеграций (платёжный сервис, партнёрские сервисы, поисковые машины, GDS, CRM). Следствием этого являются

  1. Большое количество различных API. У каждого из них своя техническая специфика и регулярные обновления, это нужно учитывать при разработке и поддержке.
  2. Большое количество коммуникаций с другими командами. Иногда в создании сложной бизнес-фичи участвуют сразу 3–4 подрядчика. Они совместно обсуждают, как лучше выполнить поставленную задачу, а потом сообща выполняют поставки на продакшен.

Помимо B2C-приложения, у нас также есть B2B-контур — Web API, предоставляющий информацию напрямую сторонним приложениям и системам. B2B-клиенты — это агенты, которые заключили договор с авиакомпанией о продажах её билетов через свои мобильные и веб-приложения. Объём трафика через Web API в 5 раз больше, чем через приложение.

Оба контура мы поддерживаем 24/7 по следующим вопросам:

  • организация резервирования вычислительных мощностей — автоматическое масштабирование при увеличении нагрузки на систему;
  • критические сбои в работе системы: нарушения работы сторонних сервисов, массовые проблемы с бронированием, поиском и др. В этом случае трафик автоматически переводится на идентичные ресурсы на другом сервере.

Чтобы минимизировать риски возникновения массовых проблем в работе системы, к проекту подключена также сторонняя компания, которая осуществляет мониторинг — регулярные проверки работоспособности системы (health checks). Если обнаруживается ошибка, мы получаем сообщение о ней и оперативно решаем проблему.

В начале работы над проектом наша команда состояла из двух человек. Однако по мере развития продукта команда постепенно увеличивалась и сейчас на нашей стороне работают две команды из 17 человек. Работая спринтами по 3 недели, мы регулярно обновляем платформу, добавляя удобные для пользователей функции и возможности.

 

Результат


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

За несколько лет совместной работы команда увеличилась в несколько раз и стала пользоваться большим доверием со стороны заказчика: клиент передал в команду ещё несколько сервисов, регулярно обращается за консультациями по выбору решений и технологий для новых бизнес-задач и доверяет отгрузку изменений в продакшен.