Byte/RE ИТ-издание

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

ИТ-специалисты RedLab модернизировали legacy-монолит и повысили отказоустойчивость системы. В этой статье делимся кейсом.

О клиенте
Российский банк предоставляет услуги для 14 млн частных клиентов и 350 тыс. компаний. Пользователи могут дистанционно совершать депозитные, кредитные и расчетные операции, инвестировать в ценные бумаги и цветные металлы. Сейчас организация усиливает свой цифровой суверенитет и растит долю небанковских продуктов — развивает ПО для ведения бухгалтерии, систему ЭДО и пр.

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

Описание задачи
Необходимо было преодолеть технические ограничения, создать On-Premise решение и реализовать более адаптивную архитектуру, а именно:

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

Реализация
Архитекторы и Data-инженеры RedLab разбили процесс разработки на несколько ключевых блоков:

Анализ и декомпозиция монолита:
— Провели аудит системы, выделили 30 ключевых Бизнес-доменов (платежи, аутентификация, каталог продуктов и т.д.) с использованием Domain-Driven Design (DDD), что позволило ускорить принятие технических решений.
— Определили границы сервисов, минимизировав межсервисные зависимости. Удалось упростить сопровождение кода и снизить риски каскадных отказов.
— Выявлили «горячие точки» монолита для Бизнеса и сфокусировали усилия на приоритетных зонах.

Проектирование микросервисов:
— Реализовали 60+ независимых сервисов на Spring Boot (Java) для событийно-ориентированных задач. Это помогло увеличить масштабируемость решений и обеспечить гибкость в развитии новых фич.
— Внедрили Kafka для синхронизации данных между сервисами платежей и заказов, обеспечив надежную коммуникацию между компонентами и повысив устойчивость к сбоям.
— Разделили операции записи и чтения, путем выделения отдельных схем БД PostgreSQL. Получилось упростить масштабирование под разные типы нагрузки.

Инфраструктура и DevOps:
— Перевели сервисы на Docker и оркестрацию через Kubernetes, что позволило ускорить развертывание новых компонентов.
— Настроили CI/CD в GitLab (автоматическое тестирование, деплой в Dev/Test/Stage/Prod). В итоге сократили время выхода в прод и уменьшили количество ошибок при релизах.

Миграция данных:
— Перенесли данные из монолитной БД (Oracle) в распределенные хранилища PostgreSQL, обеспечив горизонтальное масштабирование.
— Применили стратегию Strangler Fig для поэтапного переноса функционала. Смогли сохранить непрерывность бизнес-процессов.

Результат
Переход на собственную платформу позволил устранить технологическую зависимость от вендора и обеспечить полный контроль над ИТ-инфраструктурой. Архитектура стала прозрачной, адаптивной и удобной для масштабирования. Время развертывания релизов сократилось с 2 месяцев до 2 недель.

Источник: https://redlab.dev/success/perehod-ot-vendorskogo-reshenija-na-sobstvennuju-platformu/

Вам также могут понравиться