Архитектура системы изначально спроектирована под использование в облаке: EnDocs построен на основе React и NodeJS. Для работы с базами данных используются MySQL и PostgreSQL. В качестве шины обмена событий и данных задействуются Yandex Queue и RabbitMQ. Бизнес-логика обеспечивается благодаря микросервисам, размещенным в контейнерах Docker. Контейнеры управляются оркестратором Kubernetes. Для хранения файлов используется объектное хранилище данных на базе S3-протокола. Распределённая сервисная архитектура позволяет масштабировать решение более гибко, в зависимости от нагрузки на систему.
Факторы высокой производительности EnDocs
количество серверов и сервисов пропорционально увеличивается при увеличении клиентских подключений;
в архитектуре используются микро и макро-сервисы, каждый из которых выполняет специализированную задачу;
запуск сервисов в контейнерах обеспечивает гибкое распределение нагрузки и стабильность работы;
S3 хранилище организует размещение большого объема документов вне СУБД;
архитектура поддерживает шардирование – размещение для дочерних организаций компании: общие сервисы, разные хранилища данных.
Разработка под высокую производительность
Каждая версия системы проходит полноценное нагрузочное тестирование. Компания использует комплексную методику тестирования, соответствующую специфике приложений.