Авторизация
Сброс пароля
Разработка комплексного решения на микросервисной архитектуре для ГК «Эксперт»
Заказчик: SimbirSoft
Страница кейса/результат: https://www.simbirsoft.com/portfolio/razrabotka-kompleksnogo-resheniya-na-mikroservisnoy-arkhitekture-dlya-gk-ekspert/

Разработали микросервис для подписания договоров и ДС встроили в ИТ-ландшафт компании (сайт, личный кабинет). Благодаря чему появилась возможность генерации документов на основе данных МИС (1С) и личный кабинет через API.
1. Вводная задача от заказчика, проблематика, цели
В компанию SimbirSoft обратился клиент — ГК «Эксперт».
ГК «Эксперт»—федеральная сеть медицинских центров, одна из крупнейших в России частных медицинских компаний, специализирующаяся на диагностике (МРТ/КТ) и лечении, работающая с 2007 года. Включает более 40 диагностических центров, в которых работают тысячи сотрудников.
Задачи
Разработка комплексного решения на микросервисной архитектуре.
Система позволяет удаленно оформлять юридически значимые договоры с применением простой электронной подписи (ПЭП) на проведение МРТ-исследований.
Проект позволил компании уйти от бумажного документооборота, ускорил процессы и повысил удобство для пациентов.
В проект включились специалисты DevOps (автоматизация технологических процессов сборки, настройки и развертывания ПО) и бэкенд-разработки.
Реализованы услуги:
- разработка и внедрение сервиса электронного документооборота (ЭДО) с ПЭП;
- проектирование и развертывание отказоустойчивой инфраструктуры на базе Kubernetes (DEV, STAGE, PROD);
- настройку комплексного мониторинга и логирования работы системы;
- интеграцию нового сервиса с личным кабинетом пациента и медицинской информационной системой (МИС) клиента.
- аналитика
- архитектурная концепция
- сервис API для обработки запросов от других систем и веб-приложений, сервис API для обработки запросов от административной панели управления, сервис API Gateway, сервис для обработки высоконагруженных задач и очередей.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Бизнес-задачи проекта
Внедрить систему электронного подписания договоров для достижения четырех ключевых целей:
- полный отказ от бумажных носителей и снижение связанных с ними затрат;
- сокращение времени оформления документов (с нескольких дней до нескольких минут);
- устранение необходимости личного присутствия пациента для подписания договора;
- гарантированное соответствие требованиям 63-ФЗ «Об электронной подписи».
Задачи в контексте всей разработки создать безопасный, масштабируемый и отказоустойчивый сервис, который в автоматическом режиме:
- получает данные пациента и услуги из ЛК и медицинской информационной системы (МИС) по REST API;
- формирует индивидуальный договор на основе актуального шаблона;
- подписывает документ ПЭП и обеспечивает его долгосрочное хранение;
- предоставляет пациентам и сотрудникам клиники возможность просмотра и скачивания подписанных документов через UI (пользовательский интерфейс) и API.
- обеспечить бесперебойную работу сервиса для критичных операций компании;
- гарантировать безопасность и целостность юридически значимых документов на всех этапах;
- создать изолированные, но идентичные среды (DEV/STAGE/PROD) для предсказуемого тестирования и развертывания;
- автоматизировать рутину (развертывание, мониторинг, откат), минимизировав человеческий фактор в рабочей среде.
- спроектировать отказоустойчивую архитектуру с нуля;
- реализовать полный цикл подписания документов (простая и усиленная подпись);
- разработать механизм точного позиционирования штампа на PDF-документах с анализом координат текста;
- реализовать склейку HTML-шаблонов и наложение штампов на итоговые PDF-файлы;
- настроить долговременное хранение с автоматической архивацией.
Решение
Одним из значимых факторов успеха в таких проектах становится не столько код, сколько надежность, воспроизводимость и контролируемость платформы, на которой он работает. Наш DevOps-инженер выступил на проекте архитектором этой платформы.
Выбрали программное обеспечение Kubernetes (обусловлено необходимостью декларативного управления инфраструктурой).
Это позволит:
- версионировать и контролировать состояние всей среды как код;
- обеспечивать мгновенную воспроизводимость сред для аварийного восстановления;
- внедрить автоматические проверки безопасности и соответствия законодательным требованиям на этапе CI/CD.
Выбранная архитектура сервиса обеспечит высокую гибкость и отказоустойчивость:
- микросервисы выбраны для независимого масштабирования компонентов и разделяемого управления нагрузкой;
- планировщик задач Hangfire (с Redis в качестве инструмента хранения) обеспечил надежную обработку фоновых процессов и очередей;
- двухуровневое хранение данных (горячий и холодный уровень) снизит затраты на облачное хранилище и повысит безопасность данных;
- Gotenberg (высокопроизводительный легковесный API сервис) выбран за стабильную и производительную конвертацию HTML в PDF с сохранением структуры и визуального представления документа;
- Библиотеки с открытым исходным кодом для работы с PDF-файлами PdfPig и PdfSharpCore использованы для дополнительных манипуляций с PDF, в частности, точного позиционирования штампа цифровой подписи (путем определения координат последнего символа и отступов в документе).
3. Результаты сотрудничества
Технологическая отказоустойчивость
Кластер PROD-среды обработал несколько отказов сервером без простоя сервиса (нулевой период недоступности для пациентов).
Скорость и безопасность изменений
Благодаря автоматизации, выполнили более 70 безопасных развертываний за время проекта. Количество инцидентов из-за «разрыва сред» сведено к нулю.
Контроль и наблюдаемость
Реализован единый «пульт управления» (Grafana dashboards) для инфраструктуры и приложений, что позволило команде оперативно выявлять и устранять узкие места в производительности.
4. Заключение
Бизнес-эффект
Снижение операционных рисков
- автоматизация аварийного восстановления и внедрения продвинутого мониторинга;
- минимизация финансовых и репутационных рисков при сбоях критического сервиса.
Экономия на масштабировании
- Инфраструктура, описанная кодом, позволяет масштабировать сервис в новые регионы не за месяцы, а за дни, что снижает стоимость будущего роста.
Фундамент для инноваций
- Стабильная и предсказуемая платформа позволит бизнесу и разработке фокусироваться на улучшении продукта для пациентов, а не на «тушении пожаров» в инфраструктуре.
Трудности
Трудности, для которых бэкенд-команда нашла оптимальные решения, связаны с точным позиционированием штампа на PDF. Обычно это самая нетривиальная задача.
PDF не хранит информацию о логической структуре текста — только координаты каждого символа. Нужно было разработать алгоритм, который находит последний символ в документе и гарантированно размещает штамп после него.
При этом необходимо учитывать разные шрифты, кодировки и возможность переноса на новую страницу. Малейшая ошибка в координатах — и штамп мог наехать на текст или выйти за пределы страницы. Благодаря команде задача была решена.



