Что мы делаем?
Мы разрабатываем экосистему для междугородних автобусных перевозчиков и их пассажиров в Российской Федерации. Она состоит из нескольких больших проектов:
GDS (от англ. «Global Distribution System»). B2B.
Глобальная дистрибьюторская система задача которой получать из разных внешних API (автовокзалов, перевозчиков, системных интеграторов) данные об автобусных рейсах, унифицировать и "раздавать" их агентам в едином формате по своему API. Проект запущен в январе 2024 года. На сегодняшний день получает данные о рейсах из 25+ внешних информационных систем и отдает 20+ агентам. Основные агенты GDS: Яндекс.Путешествия, ТуТу.ру, РЖД, Юнитики, UFS и многие другие. Проект относится к категории «HighLoad» высоконагруженных проектов, количество запросов от агентов - 100+ RPS, 45 воркера неприрывно сканируют внешние API.
Рос-Билет ру - собственная площадка по продаже автобусных билетов. B2C.
Магазин ros-bilet.ru - запущен в 2013 году, используя который пользователи могут купить билеты на междугородние автобусы, ознакомиться с отзывами о перевозчиках, вернуть билет он-лайн.
CRS - программное обеспечение для перевозчика. B2B.
CRS (Computer reservations system) – информационная система, предоставляющая в режиме реального времени данные о тарифах, расписании рейсов и наличии мест с последующей возможностью бронирования. Другое ее обозначение - инвенторная система. Проект находится в разработке и еще не запущен в работу в боевом режиме.
Стек используемых технологий
Для поддержания и развития цифровой платформы Рос Билет ру используется следующий технологический стек:
Архитектура программного обеспечения
Модульный монолит на базе системы управления (Content Management Framework) Drupal. Для легаси проекта (ros-bilet.ru) - 7 версия, для всех новых проектов 11+.
Фронтенд (Frontend)
- HTML
- CSS
- JavaScript (Alpine.js).
Бекенд (Backend)
- PHP 8.4+ для обработки запросов от пользователей и взаимодействия с БД;
- Веб-сервер: Ngnix для обслуживания HTTP-запросов;
- Базы данных*: PostgreSQL 16+ и MySQL 8+ размещенны на серверах в Российской Федерации.
Прочее
- Gitlab с полноценным CI/CD (пример Pipelines);
- OpenAPI;
- Docker;
- PHPUnit для модульных, функциональных тестов, покрытие кода;
- PHPStan - статический анализ кода;
- PHP CS Fixer - соблюдение стандартов оформления кода.
* Поскольку проекты высоконагруженные, то при работе с БД мы применяем:
- нормализацию, денормализацию данных в зависимости от конкретного случая;
- репликацию;
- применение индексов;
- транзакции с указанием уровня изоляции, блокировки;
- построение сложных запросов.