Анти-HighLoad: как мы построили SaaS на 15 антипаттернах и выжили

Архитектура и масштабируемость

PHP
Бэкенд / другое
Критерии выбора технологий для проекта
Архитектуры / другое
Поддержка и развитие legacy систем
Надёжность продакшена
Практики программирования
Микросервисы
Расширение кругозора

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Доклад будет полезен backend-разработчикам, техническим лидам, архитекторам, DevOps-инженерам, которые разрабатывают или сопровождают SaaS-продукты и распределённые системы. Особенно полезен он будет командам, которые переходят от монолита к микросервисам, сталкиваются с ростом связанности сервисов, усложнением тестирования и развёртывания либо планируют модернизацию легаси-системы.

Тезисы

Мы хотели построить микросервисную SaaS-платформу, но вместо независимо развёртываемых сервисов получили распределённый монолит. Сервисы зависели от общей библиотеки контрактов, общались посредством RPC через RabbitMQ, обращались к базе данных и Redis через специальные микросервисы и образовывали циклические зависимости. В результате систему можно было тестировать и развёртывать только целиком, а один деплой занимал больше полутора часов. На реальных примерах я разберу архитектурные и инфраструктурные решения, которые постепенно сделали систему хрупкой: глобальную библиотеку с интерфейсами и DTO всех сервисов, преобладание интеграционных тестов и централизованные фикстуры, Supervisor внутри Docker-контейнеров, логирование через RabbitMQ, синхронный вызов внешнего GeoIP-сервиса, жёсткую зависимость от PHP 7.4 и конфигурацию через CSV. Доклад поможет распознать ранние признаки распределённого монолита и отличить локально удобное техническое решение от архитектурного антипаттерна. Я покажу не только последствия ошибок, но и причинно-следственные связи между ними, расскажу, какие компоненты системы пришлось переделывать и как расставлять приоритеты при распутывании подобных зависимостей.

Соснователь и архитектор ИИ-стартапа Орина Тех, руководитель команды разработки. Более 14 лет профессионально занимается разработкой бэкенд-систем различной сложности с использованием PHP, Python и Go, имеет опыт построения распределенных и микросервисных систем. Участвовал в создании и развитии прикладных продуктов в различных предметных областях. Выступил научным редактором русского перевода книги "Object Oriented Design. Подготовка к сложному интервью".

Видео

Другие доклады секции

Архитектура и масштабируемость