Как сервис бронирования жилья устроен изнутри: взгляд ИТ-команды Островка
Привет! Меня зовут Тимур Казиев, я — Product Lead Островка. Мы 15 лет работаем в тревел-индустрии: создаём сервисы как для индивидуальных путешественников, так и для бизнес-клиентов, например, турагентств и отельеров.
Когда вы открываете сайт или приложение, чтобы подобрать отель на выходные, всё кажется элементарным: ввёл город, выбрал даты, нажал «Найти». Через пару секунд — готов список предложений. Но за этой «простотой» скрывается огромный механизм: сотни запросов, десятки микросервисов и команды людей, которые делают всё, чтобы система не ломалась и при этом выглядела так, будто работает сама собой.
В посте расскажу о том, как на самом деле устроены сервисы по бронированию жилья — на примере нашего приложения, о котором вы, возможно, слышали (или даже им пользовались). Готовы заглянуть «под капот» массового онлайн-сервиса? Переходим к практике!
Долгожданный отпуск — куда летим?
Представьте: ваш руководитель наконец подписал заявление на отпуск. Вы уже знаете, куда отправитесь: домашние споры утихли и аргументы больше не принимаются. Вбиваете в поиске «отели в Турции выгодно» — и попадаете на Островок.
Первым делом вас встречает простая форма поиска: город, даты, гости — ничего лишнего. Просто заполняете поля и жмёте «Найти».
Если же вы пока не определились с деталями путешествия, мы поможем сориентироваться. Покажем популярные направления, подскажем сезон, подкинем спецпредложения.
Казалось бы, всё просто, но это только вершина айсберга. Поддержание и развитие нашего сервиса — это десятки регулярно проводимых исследований и непрерывная работа сотен ИТ-спецов. Почему настолько трудоёмко? Расскажу на примере.
Чтобы искать отели в выбранной локации, вам нужно заполнить поле «Направление». Возможно, вы ещё не знаете, хотите ли искать отели по всей Турции или только по Анталье, а может, уже определились с конкретным отелем.
Начинаете вводить символы в поиск — и тут за кулисами запускается целая цепочка событий:
Фронтенд (простыми словами: «внешняя» часть системы, которую видит пользователь, включая интерфейс) регистрирует ваш ввод. И почти мгновенно отправляет его на бэкенд (внутреннюю, «серверную» часть сервиса) — буквально через 20–40 миллисекунд, чтобы вы даже не успели подумать: «Оно работает?»
Бэкенд пытается угадать, что вы имели в виду: город, регион, район, достопримечательность или, возможно, конкретный отель. «Анта…» может означать Анталью, Антакью и ещё пару вариантов — все они летят обратно на фронтенд в виде аккуратного списка подсказок.
Технологии машинного обучения (ML) добавляют своей магии: если вы до этого искали Турцию или просматривали средиземноморские курорты, подсказки подстроятся под предыдущий контекст — тихо и незаметно.
Наши QA-специалисты (Quality Assurance) заранее проверили сотни сценариев, чтобы форма не падала, если вы введёте что-нибудь вроде «антальяааа», «турция!!!», antaly или «🏖️»
Параллельно подключается ранжирование подсказок (о них чуть позже): если в это время года чаще ищут Анталью — она появится выше, чем менее популярные варианты.
Всё это подкрепляется дизайном: подсказки появляются плавно, нужные варианты подсвечены, а курсор остаётся на месте, чтобы ничто не отвлекало вас от ввода данных.
Таким образом в процессе задействованы самые разные ИТ-роли: от разработчиков до QA, дизайнеров и ML-инженеров. Плюс люди, которые помогают описанной системе работать слаженно и надёжно: системные аналитики, архитекторы, проектные менеджеры.
Результаты их труда проявляются, как только вы ввели в поиске хотя бы одну букву.
А теперь представьте, сколько таких форм ввода и других интерактивных элементов находится на сайте! Одной только форме поиска можно посвятить целую статью, но все-таки отправимся дальше — отпуск не горами, надо бронировать отель.
Не потеряться в предложениях
Итак, вы выбрали направление в строке поиска и нажали «Найти». В этот момент мы отправляем запросы десяткам партнёров: системам бронирования, сетям отелей, туроператорам. Каждый отвечает по-своему: где-то цена указана с налогами, где-то без; у кого-то номер называется Standard, у другого — DBL. У одних фотографии холла, у других — туалета. Всё это нужно привести к общему виду.
Этим занимается команда контента: менеджеры, разработчики, тестировщики и специалисты по ручной обработке данных. Они сводят сотни источников в единый формат, убирают дубликаты и выбирают самое выгодное и понятное предложение. Мы сверяем цены, названия, удобства — чтобы исключить путаницу.
Когда информация готова к выдаче, возникает вопрос: в какой последовательности её показать?
Почти ни один современный сервис бронирования не выдаёт варианты в случайном порядке. И процесс точно не происходит вручную (вопреки распространенному мифу «кто больше заплатил, тот и в топе»). Порядок формируется алгоритмами ранжирования: они выбирают, какие варианты показать выше, а какие — ниже.
Пример сопоставления — алгоритм сравнивает конкретный отель с идеальным вариантом для пользователя:
Простыми словами, алгоритм анализирует десятки параметров: цену, отзывы, популярность, расстояние от центра, условия отмены, скорость подтверждения и многое другое. На основе этих данных система определяет, какие варианты с наибольшей вероятностью подойдут именно вам.
Эти модели обучает наша ML-команда — специалисты по машинному обучению. Они анализируют миллионы поисков и бронирований, чтобы система понимала контекст. Например, если пользователь ищет апартаменты на одну ночь в соседнем городе, скорее всего это командировка, а не отпуск — и отели с видом на море можно смело опустить ниже.
Карта отелей — и наши интерфейсы в целом
В результате поиска вы получаете выборку вариантов размещения. Видеть их можно не только списком, но и на специальной карте. На первый взгляд — ничего особенного: точки, отели, цены. Но технически это один из самых сложных элементов приложения.
Когда вы открываете карту, система должна решить, какие объекты показать. Все — нельзя, их сотни тысяч. Только часть — можно, но какую? А если нужно отобразить сто апартаментов в одном здании? Эти нюансы напрямую влияют на удобство, и потому мы тестируем десятки вариантов отображения.
После того, как вы определили для себя несколько подходящих вариантов, стоит изучить их пристальнее. Задача нашего сервиса — показать максимум информации (фото, описания, отзывы, условия питания и отмены), и при этом сохранить читаемость. Поскольку информации об отеле всегда много, её необходимо приоритезировать: расставить правильные акценты в шрифтах, выбрать правильный порядок блоков.
Чтобы понять, как это сделать, нужно проводить различные исследования.
Ими занимается наша исследовательская команда. В неё входят:
Менеджеры продукта — отвечают за весь процесс и принимают финальное решение, каким будет продукт.
UX-исследователи — изучают реальные задачи людей, проводят интервью и наблюдения. Например, выясняют, что на мобильном экране пользователям важнее видеть рейтинг и расположение, а не площадь номера.
Продуктовые аналитики — проверяют гипотезы цифрами: действительно ли новая карточка увеличила клики, а не просто «нравится глазу».
Опираясь на результаты исследований, мы вносим изменения в продукт — это уже задача команды по интерфейсам:
Продуктовые дизайнеры — превращают наблюдения в конкретные макеты, упрощают сложное, убирают «визуальный шум».
Фронтенд-разработчики — создают на основе дизайн-макетов функциональные и удобные для пользователя интерфейсы (кнопки, формы, анимации и так далее). В зависимости от задачи иногда к процессу подключаются и бэкенд-разработчики.
QA — тестируют все новые интерфейсные изменения: возможные ошибки, особенности визуального отображения и функциональность.
Работа над интерфейсами — в целом про баланс: между красивым дизайном, подробным наполнением и технической оптимизацией. В одной переговорке нередко спорят трое: менеджер, дизайнер и разработчик. Один предлагает поднять блок отзывов выше, другой переживает, что страница «потяжелеет», третий говорит, что она вообще перестанет загружаться. Из таких споров и итераций рождается то, что пользователю кажется очевидным.
В поисках баланса мы много экспериментируем. Например, если вы путешествуете с питомцами, блок «Можно с животными» появится сразу под названием отеля и выделится зелёным. Если с детьми — наверх выедут условия проживания и типы кроватей. Страница загружается поэтапно: сначала фото и ключевая информация, потом — отзывы и детали. Это позволяет открывать её за секунду, даже если данных много.
Каждое микро-изменение интерфейса серьёзно воздействует на поведение людей, пользующихся сервисом. И может оказывать влияние на компанию, измеряемое десятками или сотнями миллионов рублей выручки.
Финишная прямая
Поздравляем, вы уже в форме бронирования! Авторизация, ввод данных, оплата — и бронь готова. На этом же шаге можно активировать промокод (мы часто ими делимся в имейл-рассылках и в Telegram-канале) или воспользоваться нашей программой лояльности «GURU».
Работает всё просто, но внутри, опять же, много нюансов. Та же система оплаты — сложный сервис с многоступенчатой системой безопасности, которую поддерживают наши ИБ-специалисты:
Платёж проходит через несколько уровней антифрода (систем для выявления и предотвращения мошеннических действий).
Данные карты шифруются так, что их не видит даже наш сервер.
Если один платёжный шлюз тормозит, мы автоматически переключаемся на другой.
При любом подозрении (необычная активность, странный IP, неверный CVV несколько раз подряд) система лучше остановит платёж, чем пропустит что-то сомнительное.
Один из ключевых элементов нашей системы — возможность оплачивать услуги в рублях из любой точки мира. Мы выстроили сложную сеть партнёрских взаимодействий, благодаря которой при бронировании вы фиксируете цену в рублях, а все валютные риски и расчёты с зарубежными подрядчиками мы берём на себя. Это означает, что вам не нужна иностранная карта, чтобы забронировать отель. В реализации этой системы большую роль играют наша финансовая команда и корпоративные юристы.
После успешной оплаты формируется подтверждение, и бронирование появляется в личном кабинете.
И на этом всё?
Не совсем: хороший сервис остаётся с пользователем даже после оплаты. Мы стараемся обеспечить не только успешное бронирование, но и комфортный отдых в целом, чтобы путешественники к нам возвращались.
Поэтому:
После подтверждения бронирование попадает в личный кабинет, где вы можете с ним взаимодействовать: скачать ваучер, изменить данные гостей, отменить бронь, написать в поддержку. Если путешествуете часто — подключается программа лояльности «GURU»: скидки на тысячи отелей и квартир, бонусы в подарок, например, бесплатный завтрак, и баллы для оплаты следующих бронирований. Об этом позаботилась наша команда маркетинга.
С вами на связи 24/7 остается наша команда поддержки, чтобы помогать по любым вопросам — не только с бронью, но и, например, по взаимодействию с отельерами.
С момента, когда мы ввели в поиск «Анталья», до получения ваучера на готовую бронь прошло меньше 10 минут. Простота для вас — успех для Островка. Иногда мы изменяем в сервисе небольшие детали — и кажется, что этого никто не заметит. Но цифры показывают: пользователи стали быстрее находить нужные отели, реже возвращаются назад, чаще бронируют с первого раза. Каждый такой результат — маленькая победа.
Спасибо, что прочитали до конца! И если по ходу чтения у вас возникла мысль: «Интересно, хотел бы я этим заниматься», — приходите к нам работать :) У нас не только амбициозные travel-tech проекты, но и возможность работать полностью удалённо, свободно принимать решения и влиять на продукт. А ещё — сильная команда экспертов, у которых можно учиться и вместе с которыми приятно расти. Присоединяйтесь!
Реклама ООО «Бронирование гостиниц», ИНН: 7703389880


































































