Стек используемых технологий

Что мы делаем?

Мы разрабатываем экосистему для междугородних автобусных перевозчиков и их пассажиров в Российской Федерации. Она состоит из нескольких больших проектов:

GDS (от англ. «Global Distribution System»). B2B.

Глобальная дистрибьюторская система задача которой получать из разных внешних API (автовокзалов, перевозчиков, системных интеграторов) данные об автобусных рейсах, унифицировать и "раздавать" их агентам в едином формате по своему API. Проект запущен в январе 2024 года. На сегодняшний день получает данные о рейсах из 17+ внешних информационных систем и отдает 20+ агентам. Основные агенты GDS: Яндекс.Путешествия, ТуТу.ру, РЖД, Юнитики, UFS и многие другие. Проект относится к категории «HighLoad» высоконагруженных проектов, количество запросов от агентов - 60+ RPS, 23 воркера неприрывно сканируют внешние API.

Собственные площадки по продаже автобусных билетов. B2C.

Два собственных магазина (ros-bilet.ru - запущен в 2013 году и avtobus.ru - запущен весной 2024 года) используя которые пользователи могут купить билеты на междугородние автобусы, ознакомиться с отзывами о перевозчиках, вернуть билет он-лайн.

CRS - программное обеспечение для перевозчика. B2B.

CRS (Computer reservations system) – информационная система, предоставляющая в режиме реального времени данные о тарифах, расписании рейсов и наличии мест с последующей возможностью бронирования. Другое ее обозначение - инвенторная система. Проект находится в разработке и еще не запущен в работу в боевом режиме.

Стек используемых технологий

Для поддержания и развития цифровой платформы Рос Билет ру используется следующий технологический стек: 

 

Архитектура программного обеспечения

Модульный монолит на базе системы управления (Content Management Framework) Drupal. Для легаси проекта (ros-bilet.ru) - 7 версия, для всех новых проектов 10+.

 

Фронтенд (Frontend) 

  • HTML
  • CSS
  • JavaScript (Alpine.js). 

 

Бекенд (Backend)

  • PHP 8.3+ для обработки запросов от пользователей и взаимодействия с БД;
  • Веб-сервер: Ngnix для обслуживания HTTP-запросов;
  • Базы данных*: PostgreSQL 15+ и MySQL 8+ размещенны на серверах в России Федерации.

 

Прочее

  • Gitlab с полноценным CI/CD (пример Pipelines);
  • OpenAPI;
  • Docker;
  • PHPUnit для модульных, функциональных тестов, покрытие кода;
  • PHPStan - статический анализ кода;
  • PHP CS Fixer - соблюдение стандартов оформления кода.

 

* По скольку проекты высоконагруженные, то при работе с БД мы применяем:

  • нормализацию, денормализацию данных в зависимости от конкретного случая;
  • репликацию;
  • применение индексов;
  • транзакции с указанием уровня изоляции, блокировки;
  • построение сложных запросов.