Архітектура

B2B-платформа вирвалась з 8-річного моноліту — деплой скоротився з 4 годин до 8 хвилин

Роль
Full delivery — architecture, build, launch
Терміни
Q1–Q2 2025 — 16 weeks
Команда
3 інженери · QA · PM
Технології
Symfony, Docker, Kubernetes (AWS EKS), RabbitMQ
B2B-платформа вирвалась з 8-річного моноліту — деплой скоротився з 4 годин до 8 хвилин

Проблема

B2B-дистриб’ютор з 2 000+ бізнес-клієнтів та €45M річного GMV працював на 8-річному Symfony-моноліті. Один деплой забирав 4 години даунтайму, баг у модулі ціноутворення міг покласти всю платформу, а команда перестала випускати нові функції — 70% часу йшло на гасіння пожеж. Три спроби рефакторингу на місці провалились і підірвали впевненість команди.

Що ми зробили

  • Мапінг доменів — Визначили 6 обмежених контекстів (каталог, ціноутворення, замовлення, клієнти, склад, рахунки) та описали всі крос-доменні залежності до написання єдиного рядка коду.
  • Міграція Strangler Fig — Витягували сервіси по одному за API-шлюзом, залишаючи моноліт у продакшені. Жодного big-bang перемикання — кожен сервіс запускався незалежно.
  • Kubernetes та CI/CD — Контейнеризували кожен сервіс через Docker, оркестрація через Kubernetes на AWS EKS. Повний CI/CD пайплайн — push у main запускає тести, збірку та rolling deploy за 8 хвилин.
  • Event-driven синхронізація — Сервіси спілкуються через RabbitMQ-події замість прямих API-викликів. Eventual consistency з saga-патернами для складних бізнес-процесів: замовлення → склад → рахунок.
Команда обговорює дорожню карту проєкту та декомпозицію завдань на дошці під час планування

Результат

«Ми перестали боятися деплоїв у п’ятницю і почали викочувати по кілька разів на день. Платформа нарешті належить нам, а не навпаки.”

Томас Бергманн — CTO, WholesaleHub GmbH · Берлін
97%Deploy time reduction
2Incidents per month
18+Deploys per week
+35%GMV growth, year 1