En
Проекты Вакансии Блог

Разработка комплексного решения на микросервисной архитектуре для ГК «Эксперт»

Разработали микросервис для подписания договоров и ДС встроили в ИТ-ландшафт компании (сайт, личный кабинет). Благодаря чему появилась возможность генерации документов на основе данных МИС (1С) и личный кабинет через API. 

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

В проект включились специалисты DevOps (автоматизация технологических процессов сборки, настройки и развертывания ПО) и бэкенд-разработки

Клиент

ГК «Эксперт»—федеральная сеть медицинских центров, одна из крупнейших в России частных медицинских компаний, специализирующаяся на диагностике (МРТ/КТ) и лечении, работающая с 2007 года. Включает более 40 диагностических центров, в которых работают тысячи сотрудников.

Задача

Разработка комплексного решения на микросервисной архитектуре.

Система позволяет удаленно оформлять юридически значимые договоры с применением простой электронной подписи (ПЭП) на проведение МРТ-исследований.

Реализованы услуги:

  • разработка и внедрение сервиса электронного документооборота (ЭДО) с ПЭП;

  • проектирование и развертывание отказоустойчивой инфраструктуры на базе Kubernetes (DEV, STAGE, PROD);

  • настройку комплексного мониторинга и логирования работы системы;

  • интеграцию нового сервиса с личным кабинетом пациента и медицинской информационной системой (МИС) клиента.

  • аналитика

  • архитектурная концепция

  • сервис API для обработки запросов от других систем и веб-приложений, сервис API для обработки запросов от административной панели управления, сервис API Gateway, сервис для обработки высоконагруженных задач и очередей.


Хотите узнать подробнее об услугах бэкенд-разработки
Узнать подробнее
snippet


Бизнес-задачи проекта

Внедрить систему электронного подписания договоров для достижения четырех ключевых целей:

  • полный отказ от бумажных носителей и снижение связанных с ними затрат;

  • сокращение времени оформления документов (с нескольких дней до нескольких минут);

  • устранение необходимости личного присутствия пациента для подписания договора;

  • гарантированное соответствие требованиям 63-ФЗ «Об электронной подписи».

Задачи в контексте всей разработки создать безопасный, масштабируемый и отказоустойчивый сервис, который в автоматическом режиме:

  • получает данные пациента и услуги из ЛК и медицинской информационной системы (МИС) по REST API;

  • формирует индивидуальный договор на основе актуального шаблона;

  • подписывает документ ПЭП и обеспечивает его долгосрочное хранение;

  • предоставляет пациентам и сотрудникам клиники возможность просмотра и скачивания подписанных документов через UI (пользовательский интерфейс) и API.

  • обеспечить бесперебойную работу сервиса для критичных операций компании;

  • гарантировать безопасность и целостность юридически значимых документов на всех этапах;

  • создать изолированные, но идентичные среды (DEV/STAGE/PROD) для предсказуемого тестирования и развертывания;

  • автоматизировать рутину (развертывание, мониторинг, откат), минимизировав человеческий фактор в рабочей среде.

  • спроектировать отказоустойчивую архитектуру с нуля;

  • реализовать полный цикл подписания документов (простая и усиленная подпись);

  • разработать механизм точного позиционирования штампа на PDF-документах с анализом координат текста;

  • реализовать склейку HTML-шаблонов и наложение штампов на итоговые PDF-файлы;

  • настроить долговременное хранение с автоматической архивацией.

70
безопасных развертываний за время проекта
0
инцидентов из-за «разрыва сред»

Решение

Одним из значимых факторов успеха в таких проектах становится не столько код, сколько надежность, воспроизводимость и контролируемость платформы, на которой он работает. Наш DevOps-инженер выступил на проекте архитектором этой платформы.

Выбрали программное обеспечение Kubernetes (обусловлено необходимостью декларативного управления инфраструктурой). 

Это позволит: 

  • версионировать и контролировать состояние всей среды как код;

  • обеспечивать мгновенную воспроизводимость сред для аварийного восстановления;

  • внедрить автоматические проверки безопасности и соответствия законодательным требованиям на этапе CI/CD.

Выбранная архитектура сервиса обеспечит высокую гибкость и отказоустойчивость:

  • микросервисы выбраны для независимого масштабирования компонентов и разделяемого управления нагрузкой;

  • планировщик задач Hangfire (с Redis в качестве инструмента хранения) обеспечил надежную обработку фоновых процессов и очередей;

  • двухуровневое хранение данных (горячий и холодный уровень) снизит затраты на облачное хранилище и повысит безопасность данных;

  • Gotenberg (высокопроизводительный легковесный API сервис) выбран за стабильную и производительную конвертацию HTML в PDF с сохранением структуры и визуального представления документа;

  • Библиотеки с открытым исходным кодом для работы с PDF-файлами PdfPig и PdfSharpCore использованы для дополнительных манипуляций с  PDF, в частности, точного позиционирования штампа цифровой подписи (путем определения координат последнего символа и отступов в документе).

Результат

Технологическая отказоустойчивость 

Кластер PROD-среды обработал несколько отказов сервером без простоя сервиса (нулевой период недоступности для пациентов).

Скорость и безопасность изменений 

Благодаря автоматизации, выполнили более 70 безопасных развертываний за время проекта. Количество инцидентов из-за «разрыва сред» сведено к нулю. 

Контроль и наблюдаемость 

Реализован единый «пульт управления» (Grafana dashboards) для инфраструктуры и приложений, что позволило команде оперативно выявлять и устранять узкие места в производительности.

Бизнес-эффект

Снижение операционных рисков

  • автоматизация аварийного восстановления и внедрения продвинутого мониторинга;

  • минимизация финансовых и репутационных рисков при сбоях критического сервиса.

Экономия на масштабировании

Инфраструктура, описанная кодом, позволяет масштабировать сервис в новые регионы не за месяцы, а за дни, что снижает стоимость будущего роста.

Фундамент для инноваций

Стабильная и предсказуемая платформа позволит бизнесу и разработке фокусироваться на улучшении продукта для пациентов, а не на «тушении пожаров» в инфраструктуре.

Трудности

Трудности, для которых бэкенд-команда нашла оптимальные решения, связаны с точным позиционированием штампа на PDF. Обычно это самая нетривиальная задача. 

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

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

Используемые технологии

  • Kubernetes

  • GitLab CI/CD

  • Ansible.NET, 

  • MWS Cloud

  • Grafana

  • S3-совместимое хранилище.

  • Бэкенд: .NET 8, Asp.Net Core

  • Хранение данных: PostgreSQL, MinIO

  • Очереди и фоновые задачи: Hangfire (Redis)

  • Конвертация и обработка PDF: Gotenberg (HTML→PDF), PdfSharpCore, PdfPig

  • Позиционирование и наложение штампов: Собственный алгоритм на PdfPig + PdfSharpCore с анализом координат текста

  • Интеграции: MTS Exolve (sms-уведомления)

  • Инфраструктура: Docker, Kubernetes

  • Документирование: OpenAPI


Хотите узнать подробнее об услуге DevOps?
Узнать подробнее
snippet
Другие работы
Создание приложения управления сном для компании «Аскона»
Создание единой системы авторизации для крупной российской компании
Анализ процессов крупной производственной компании
Усиление команды по разработке системы управления грузоперевозками для компании «ТЕХНОНИКОЛЬ»
Автоматизация финансовой аналитики для «МК Лизинг»
Разработка корпоративного портала для обучения сотрудников крупной технологической компании
Развитие приложения Askona Sleep для компании «Аскона»
Создание приложения управления сном для компании «Аскона»
Создание единой системы авторизации для крупной российской компании
Анализ процессов крупной производственной компании
Усиление команды по разработке системы управления грузоперевозками для компании «ТЕХНОНИКОЛЬ»
Автоматизация финансовой аналитики для «МК Лизинг»
Разработка корпоративного портала для обучения сотрудников крупной технологической компании
Развитие приложения Askona Sleep для компании «Аскона»
Оставьте заявку на проект
Оставьте контакты, чтобы обсудить проект и условия сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Python-paзработчик
  • Системный аналитик (финтех)
  • iOS-разработчик
  • C#-разработчик
  • Android-разработчик
  • Golang-разработчик
  • 1С-аналитик
  • Data-инженер
  • UI/UX дизайнер
  • Prompt-инженер
  • Flutter-разработчик
  • DWH-аналитик
  • SDET Java
  • QA Fullstack Java/Kotlin
  • Специалист по кадровому делопроизводству
  • Бухгалтер по расчету заработной платы
  • React Native-разработчик
  • Data Scientist RecSys
  • Data Scientist/NLP-инженер
  • Системный аналитик ЦФТ
  • Сетевой инженер/системный аналитик
  • DevOps Team Lead (ML/Data Platform)
  • SRE-инженер (финтех)
  • DevOps/Build-инженер
  • 1С-аналитик (ритейл)
  • Computer Vision-специалист
Ваши данные
Данные кандидата
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Отправить
Отправлено
Заказать демонстрацию
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.