Из монолита в микросервис

Мы не раз рассказывали о проектах для федеральной сети химчисток «Диана»:

Автоматизация бизнес-процессов в компании продолжается много лет. За это время отдельные ИТ-решения существенно разрослись и превратились в сложные монолитные системы.

Например, CRM-система, с которой работала компания, была разработана более 10 лет назад и со временем перестала соответствовать всем новым требованиям. В частности, потребовалась доработка, связанная с требованиями законодательства к составу кассового чека: в нём должен отражаться перечень оказанных услуг.

Для этого необходимо было разработать новое решение и интегрировать его с существующей CRM.

Почему отказались от рефакторинга CRM

CRM была разработана под старую версию PHP. За годы доработок в системе накопился большой объём legacy-кода, при этом актуальная техническая документация отсутствовала.

Первоначально логичным вариантом казался рефакторинг существующей системы перед добавлением нового функционала. Однако от этого подхода отказались из-за высокой стоимости и сроков: глубокая переработка устаревшего монолита в данном случае была менее выгодна, чем постепенное вынесение новых функций в отдельные сервисы.

После анализа архитектурных вариантов мы выбрали микросервисный подход.

Переход к микросервисной архитектуре

Мы не стали существенно изменять существующую CRM, чтобы не повышать риск нарушения работы критически важной системы.

Вместо этого был добавлен REST API, через который CRM получила возможность взаимодействовать с новыми сервисами.

Затем мы разработали отдельный микросервис на Laravel и интегрировали его с CRM через REST API.

Такой подход позволил внедрить новый функционал без масштабного рефакторинга монолита и создал основу для дальнейшего развития ИТ-архитектуры компании.

Развитие системы

В дальнейшем были разработаны ещё три микросервиса:

  • для службы доставки;
  • для департамента маркетинга;
  • для колл-центра.

Данные и отчёты из микросервисов в режиме реального времени передаются на дашборд. Это позволяет отслеживать ключевые показатели и планировать загрузку фабрик и службы доставки.

Дальнейшее развитие архитектуры

Команда SEBEKON продолжает развивать архитектуру системы «Дианы».

В числе следующих шагов:

  • асинхронное взаимодействие между микросервисами через брокер сообщений;
  • единая точка входа для запросов по модели API Gateway;
  • отдельный сервис авторизации.

Такой подход позволяет постепенно развивать существующую систему без необходимости полностью переписывать CRM и одновременно снижать зависимость нового функционала от старого монолита.

Микросервисная архитектура для бизнеса

Мы можем адаптировать накопленный опыт под задачи вашей компании и помочь автоматизировать бизнес-процессы с помощью микросервисной архитектуры.

Дополнительные материалы