Мы не раз рассказывали о проектах для федеральной сети химчисток «Диана»:
- об автоматизации пунктов приёма заказов;
- о внедрении системы учёта квитанций;
- о разработке мастера оформления заказа;
- о разработке мобильного приложения.
Автоматизация бизнес-процессов в компании продолжается много лет. За это время отдельные ИТ-решения существенно разрослись и превратились в сложные монолитные системы.
Например, CRM-система, с которой работала компания, была разработана более 10 лет назад и со временем перестала соответствовать всем новым требованиям. В частности, потребовалась доработка, связанная с требованиями законодательства к составу кассового чека: в нём должен отражаться перечень оказанных услуг.
Для этого необходимо было разработать новое решение и интегрировать его с существующей CRM.
Почему отказались от рефакторинга CRM
CRM была разработана под старую версию PHP. За годы доработок в системе накопился большой объём legacy-кода, при этом актуальная техническая документация отсутствовала.
Первоначально логичным вариантом казался рефакторинг существующей системы перед добавлением нового функционала. Однако от этого подхода отказались из-за высокой стоимости и сроков: глубокая переработка устаревшего монолита в данном случае была менее выгодна, чем постепенное вынесение новых функций в отдельные сервисы.
После анализа архитектурных вариантов мы выбрали микросервисный подход.
Переход к микросервисной архитектуре
Мы не стали существенно изменять существующую CRM, чтобы не повышать риск нарушения работы критически важной системы.
Вместо этого был добавлен REST API, через который CRM получила возможность взаимодействовать с новыми сервисами.
Затем мы разработали отдельный микросервис на Laravel и интегрировали его с CRM через REST API.
Такой подход позволил внедрить новый функционал без масштабного рефакторинга монолита и создал основу для дальнейшего развития ИТ-архитектуры компании.
Развитие системы
В дальнейшем были разработаны ещё три микросервиса:
- для службы доставки;
- для департамента маркетинга;
- для колл-центра.
Данные и отчёты из микросервисов в режиме реального времени передаются на дашборд. Это позволяет отслеживать ключевые показатели и планировать загрузку фабрик и службы доставки.
Дальнейшее развитие архитектуры
Команда SEBEKON продолжает развивать архитектуру системы «Дианы».
В числе следующих шагов:
- асинхронное взаимодействие между микросервисами через брокер сообщений;
- единая точка входа для запросов по модели API Gateway;
- отдельный сервис авторизации.
Такой подход позволяет постепенно развивать существующую систему без необходимости полностью переписывать CRM и одновременно снижать зависимость нового функционала от старого монолита.
Микросервисная архитектура для бизнеса
Мы можем адаптировать накопленный опыт под задачи вашей компании и помочь автоматизировать бизнес-процессы с помощью микросервисной архитектуры.