Autoshop

Внедряем технологии в растущую интернет площадку по подбору автомобилей

«Autoshop» является растущим интернет сервисом по поиску и подбору автомобилей, а также поиск автосервиса. Найдя нужный вариант, пользователь переходит на страницу автосалона или автосервиса, чтобы совершить оплату или бронирование в интерфейсе поисковика, то есть в формате экспресс-бронирования (assisted booking).

Задачи проекта

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

Модуль для кругового обзора автомобилей

С помощью Vue.js была разработана система кругового обзора для автомобилей:

Гибкий и безопасный фасетный фильтр

Основная задача фильтра - это выбор нескольких интересующих его категорий авто и параметров, помимо этого мы должны отобразить не только список автомобилей (согласно выбору), но и обновить сам компонент фильтрации, чтобы в нем остались только те варианты, которые присутствуют в найденных результатах. Для задачи был выбран модуль ElasticSearch. Основные преимущества модуля - это масштабируемость, отказоустойчивость, гибкость поисковых фильтров, управляемость, универсальность. Кластер Elasticsearch расширяется «на лету» добавлением новых серверов. При этом распределение нагрузки по узлам происходит автоматически. При сбое кластерных узлов данные не будут потеряны, а будут перераспределены, и поисковая система сама продолжит работу. Операционная стабильность достигается ведением логов на каждое изменение данных в хранилище сразу на нескольких узлах кластера. Благодаря наличию встроенных анализаторов текста Elasticsearch автоматически выполняет токенизацию, лемматизацию, стемминг и прочие преобразования текста для решения NLP-задач, связанных с поиском данных.

При разработке мы осуществляем безопасность фильтрации за счет защиты подключения к СУБД, настроив аутентификацию с помощью Open Distro, настройки защищенного SSL-взаимодействие между серверами кластера Elasticsearch с помощью удостоверяющего центра, а также настройки межсетевого экрана операционной системы, разрешив при этом подключение к Elasticsearch. Для прозрачной защиты сетевого подключения между службами приложений мы использовали Cilium, развернутый на платформе управления Kubernetes. Cilium основан на BPF – технологии ядра Linux, которая обеспечивает видимость и безопасность сети по API без изменений в коде приложения или контейнерах. Cilium полностью распределяется на узлах Linux, где выполняются рабочие нагрузки, избегая централизованных точек. Cilium с Kubernetes позволяет  объединять видимость трафика с идентификацией модуля и применять верные политики безопасности, даже при работе на разных узлах кластера.

Стек технологий

  • Бэкэнд написанный на Ruby on Rails;
  • PostgreSQL, которая используется в качестве базы данных;
  • ElasticSearch — программная поисковая система, которая была использована для поиска товаров и их фильтрации;
  • Kubernetes — программное обеспечение для оркестровки контейнеризированных приложений — автоматизации их развертывания, масштабирования и координации в условиях кластера;
  • Vue.js был использован для создания пользовательских интерфейсов кругового обзора;