BLS-Soft
Корпоративный портал для получения льгот сотрудниками
BLS-Soft
#Поддержка и развитие сайта#Программирование сайта#Разработка программного обеспечения

Корпоративный портал для получения льгот сотрудниками

19 
BLS-Soft Россия, Смоленск
Поделиться: 0 0 0
Корпоративный портал для получения льгот сотрудниками
Клиент

КОРУС Консалтинг

Бюджет

1 500 000

Сфера

Транспортные услуги

Регион

Россия

Сдано

Июнь 2022

Задача

Необходимо было провести рефакторинг существующего монолитного модуля портала, который отвечал за учёт и предоставление льгот сотрудникам.

Разделить монолит на микросервисы, чтобы повысить отказоустойчивость и возможность независимого развёртывания.

Настроить асинхронное взаимодействие между новыми сервисами.

Обеспечить корректное отображение статистики по заявкам в личном кабинете администратора в реальном времени, без зависаний и ошибок агрегации.

Оптимизировать расчёт остатков льгот, т.к. тяжёлые SQL-запросы работали долго и блокировали таблицы при большом количестве сотрудников.

Также, необходимо было повысить переиспользуемость кода - вынести общие модули в отдельные NuGet-пакеты.

Решение

Архитектурное решение: вместо одного монолита спроектировали 4 микросервиса. Каждый сервис получил свою БД и независимый конвейер развертывания.

Коммуникация: внедрили брокер сообщений Kafka.

Ускорение работы с данными: вынесли тяжёлые расчёты остатков льгот из кода .NET в хранимые функции PostgreSQL, добавили составные индексы по сотруднику, типу льготы и периоду. Переписали несколько LINQ-запросов.

Переиспользование: вынесли модуль авторизации в отдельный NuGet-пакет. Также упаковали общие модели льгот и интерфейсы репозиториев. Пакет опубликовали в корпоративном NuGet-фиде.

Фронтенд-доработки: модифицировали личный кабинет администратора - добавили интерактивные дашборды с агрегацией статистики. Данные подтягиваются через новый API.

Качество: написали модульные тесты на xUnit + Moq.

Результат

Монолитный модуль портала успешно разделён на 4 независимых микросервиса. Теперь каждый сервис можно масштабировать отдельно.

Время отклика интерфейса при подаче заявки сократилось с 3–5 секунд до менее 0,5 секунды, т.к. основной поток теперь не ждёт расчётов. Отказ одного сервиса не блокирует подачу заявок, они накапливаются в очереди и обрабатываются позже.

Запросы, ранее выполнявшиеся 6-8 секунд, теперь отрабатывают за 0,5-1 секунду благодаря хранимым функциям и индексам. Заявки перестали падать по таймауту.

Добавлены интерактивные дашборды с агрегацией статистики.

Модуль авторизации вынесен в отдельный NuGet-пакет.

Покрытие тестами 80-90% ключевой логики. Количество критических багов в продакшене после релиза снизилось примерно 70%, по сравнению с предыдущей версией монолита.

Отзыв клиента

скан отзыва
https://my.rzd.ru

Стек технологий


Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

BLS-Soft с удовольствием обсудит вашу задачу

Оставить заявку