Анти-HighLoad: как мы построили SaaS на 15 антипаттернах и выжили
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Мы хотели построить микросервисную SaaS-платформу, но вместо независимо развёртываемых сервисов получили распределённый монолит. Сервисы зависели от общей библиотеки контрактов, общались посредством RPC через RabbitMQ, обращались к базе данных и Redis через специальные микросервисы и образовывали циклические зависимости. В результате систему можно было тестировать и развёртывать только целиком, а один деплой занимал больше полутора часов. На реальных примерах я разберу архитектурные и инфраструктурные решения, которые постепенно сделали систему хрупкой: глобальную библиотеку с интерфейсами и DTO всех сервисов, преобладание интеграционных тестов и централизованные фикстуры, Supervisor внутри Docker-контейнеров, логирование через RabbitMQ, синхронный вызов внешнего GeoIP-сервиса, жёсткую зависимость от PHP 7.4 и конфигурацию через CSV. Доклад поможет распознать ранние признаки распределённого монолита и отличить локально удобное техническое решение от архитектурного антипаттерна. Я покажу не только последствия ошибок, но и причинно-следственные связи между ними, расскажу, какие компоненты системы пришлось переделывать и как расставлять приоритеты при распутывании подобных зависимостей.
Соснователь и архитектор ИИ-стартапа Орина Тех, руководитель команды разработки. Более 14 лет профессионально занимается разработкой бэкенд-систем различной сложности с использованием PHP, Python и Go, имеет опыт построения распределенных и микросервисных систем. Участвовал в создании и развитии прикладных продуктов в различных предметных областях. Выступил научным редактором русского перевода книги "Object Oriented Design. Подготовка к сложному интервью".
Видео
Другие доклады секции
Архитектура и масштабируемость