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

Общество с ограниченной ответственностью «Интеллектуальные автобусные системы» развивает проект avtobus.ru — B2C‑платформу продажи межгородних автобусных билетов в РФ. Сервис молодой, запущен 04.04.2024, но уже демонстрирует устойчивую положительную динамику и активный рост аудитории (по данным Яндекс.Метрики).


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

Модульный монолит на базе CMF Drupal 11+ с жёсткой типизацией PHP‑кода и конфигурационным управлением.


Функциональность платформы

  • Поиск рейсов, покупка и возврат электронных билетов.
  • Личный кабинет, статусы поездок, уведомления по email.
  • Отзывы о перевозчиках, страницы направлений и расписаний.
  • Интеграция с платёжными провайдерами (Сбербанк, Т‑Банк, СБП, SberPay).

Фронтенд

  • HTML5, CSS/SCSS, Twig‑шаблоны.
  • JavaScript: Alpine.js (реактивные интерфейсы), IMask (маски ввода).
  • Собственная библиотека компонентов: ab-date-picker (Rollup, ESM).

Бэкенд

  • PHP 8.3+ (FPM), Composer, строгая типизация.
  • Веб‑сервер: Nginx.
  • Базы данных: MariaDB/MySQL 8+ (основные), Redis (кэш), APCu (локальный кэш).
  • Очереди фоновых задач, cron‑процессы и импорты.
  • Инструменты эксплуатации: Drush для деплоя/миграций.

Инфраструктура и данные размещаются на серверах в Российской Федерации.


Инфраструктура и DevOps

  • Docker для окружений; локальная разработка через DDEV.
  • GitLab с CI/CD: автосборка, статический анализ, деплой веток на DEV‑окружения (dev1…dev5.avtobus.ru).
  • Автоматическое применение конфигурации и обновлений: drush deploy.
  • Логирование: Monolog в var/log, уведомления в Telegram.

Тестирование и качество кода

  • PHPUnit (unit, kernel, functional) с Drupal Test Traits; отчёт о покрытии.
  • PHPStan (расширения для Drupal).
  • PHP_CodeSniffer + Drupal Coding Standards; PHPCompatibility; Parallel Lint.

Работа с данными и базами данных

Для устойчивости под нагрузкой применяются:

  • Нормализация и денормализация схем по сценарию использования.
  • Индексы, покрывающие индексы; анализ планов выполнения запросов.
  • Транзакции с заданным уровнем изоляции и управлением блокировками.
  • Репликация и разделение read/write‑нагрузки при необходимости.
  • Сложные SQL‑запросы и оптимизация джойнов.
  • Кэш‑слои (APCu/Redis) и прогрев данных.

Безопасность и соответствие

  • Разделение секретов и конфигураций по окружениям, хранение вне VCS.
  • Политики AB_ENV для ограничения опасных действий на продакшене.
  • Регулярные обновления Drupal 11.x и зависимостей Composer.

Платформа avtobus.ru сочетает промышленный стек (Drupal 11, PHP 8.3, Nginx, MariaDB/MySQL, Redis) и зрелые практики DevOps/QA (Docker/DDEV, GitLab CI/CD, PHPUnit, PHPStan, PHPCS), что позволяет надёжно развивать продукт и масштабировать его под рост аудитории и транзакционной нагрузки.