Развёртывание Comindware Platform. Архитектура, ландшафт, программное и техническое обеспечение


Введение

Comindware Platform представляет собой целостный программный комплекс на базе стека современных технологий.

Здесь представлено краткое описание архитектуры Comindware Platform, а также даны рекомендации по выбору ландшафта и конфигурации программного и аппаратного (технического) обеспечения для развёртывания Системы на основе Comindware Platform.

Определения

  • Сервер приложений — установленный экземпляр ПО Comindware Platform.
  • Приложение — обособленное бизнес-решение, реализованное на сервере приложений.
  • Активные пользователи — пользователи, регулярно генерирующие данные на сервере приложений.
  • DAS — запоминающее устройство, непосредственно подключенное к серверу приложений.
  • SAN — сетевая система хранения (СХД, сеть хранения данных).
  • IOPS — количество операций ввода-вывода в секунду.

Архитектура Системы

В основе Системы лежит клиент-серверная компонентно-многослойная сервисно-ориентированная архитектура, расширяемая плагинами и адаптерами.

В состав Системы входят следующие компоненты:

  • Веб-приложение: одностраничное приложение (SPA) на основе Marionette, Backbone, React, Redux.
  • Мобильное приложение: React Native on Expo.
  • Бэкенд: компоненты-сервисы на основе .NET 6.0, .NET Framework 4.8 (Windows), Mono 6.12 (Linux), JRE 17.
  • СУБД: фирменная патентованная СУБД Comindware ElasticData
  • Хранилище данных: распределённая высокопроизводительная СУБД Apache Ignite.
  • Сервис журналирования транзакций: OpenSearch (Elasticsearch).
  • Сервис сбора и анализа журналов и данных мониторинга Системы: Zabbix, OpenSearch (Elasticsearch), Kibana (OpenSearch Dashboards).
  • Сервис файловых журналов: NLog.
  • Модули для интеграции: см. «Интеграция с внешними системами».

Внимание!

Если продуктовый контур Comindware Platform изолирован внешним межсетевым экраном, необходимо настроить правила фильтрации для разрешения входящего трафика HTTP/HTTPS и WS/WSS в контур Comindware Platform.

См. Перечень стороннего ПО, входящего в состав и необходимого для работы Системы.

Диаграмма архитектуры Comindware Platform

Диаграмма архитектуры Comindware Platform

Безопасность и отказоустойчивость Системы

В Системе предусмотрены следующие механизмы обеспечения безопасности и отказоустойчивости:

  • Внешняя безопасность — реализуется посредством:
    • механизма аутентификации пользователей Kerberos и OpenID;
    • сетевого экрана;
    • обратного прокси-сервера.
  • Внутренняя безопасность — реализуется посредством ролевой модели безопасности.
  • Отказоустойчивость — реализуется посредством использованием резервных серверов и дополнительных узлов хранения и обработки данных.
  • Масштабируемость — реализуется посредством увеличения количества серверов, обрабатывающих запросы.

См. «Безопасность».

Интеграция с внешними системами

Предусмотрены следующие механизмы интеграции с внешними системами:

  • Git — контроль версий приложений, создаваемых с помощью Системы.
  • OData — обмен данными с внешними системами посредством REST API.
  • OpenLDAP (Active Directory) — аутентификация, управление аккаунтами и единый вход.
  • SMTP/IMAP/Exchange — получение и отправка электронных писем.
  • ESB (Apache Kafka / RabbitMQ / MSMQ) — обмен сообщениями с внешними системами в распределенных и федеративных конфигурациях.

См. «Подключения».

Ландшафт развертывания Системы

Для достижения бесперебойной работы Систему необходимо развернуть в окружении, обеспечивающем достаточную производительность и отказоустойчивость.

Систему можно развернуть для доступа через интернет и интранет:

  • в минимальной конфигурации — на одной виртуальной или физической машине заказчика.
  • в продуктовой конфигурации— на мощностях заказчика в отказоустойчивой конфигурации в соответствии с требованиями заказчика.

Рекомендуемые варианты развертывания Системы

Минимальная конфигурация

Компоненты типовой минимальная конфигурации Системы, предназначенной для демонстраций и реализации пилотных проектов:

  • Comindware Platform: установленный экземпляр ПО.
  • СУБД Comindware ElasticData.
  • Сервер журналирования транзакций OpenSearch (Elasticsearch) — в конфигурации с одним узлом.

Минимальная конфигурация Системы

Минимальная конфигурация Системы

Продуктовая конфигурация

Компоненты типовой продуктовой конфигурации, обеспечивающей дублирование и резервирование ресурсов, а также отказоустойчивость Системы:

  • Comindware Platform: установленный экземпляр ПО.
  • СУБД Comindware ElasticData.
  • Сервер OpenSearch (Elasticsearch) для журналирования транзакций.
  • Обратный прокси-сервер NGINX для фильтрации нежелательных запросов и ретрансляции допустимых запросов во внутреннюю сеть.
  • Сервер мониторинга Zabbix для мониторинга доступности служб и свободного пространства на дисках.
  • Сервер SMTP/IMAP/Exchange (необязательно) для передачи уведомлений.
  • Сервер LDAP (необязательно) для централизованного управления инфраструктурой сети.
  • Сервер Git (необязательно) для контроля версий приложений, создаваемых с помощью Comindware Platform.

Продуктовая конфигурация: ландшафт подсистем

Продуктовая конфигурация: ландшафт подсистем

Продуктовое использование накладывает требования на следующие характеристики Системы:

  • безопасность — реализуется за счет настройки сетевого экрана и обратного прокси-сервера;
  • отказоустойчивость — реализуется за счет использования резервных серверов и дополнительных узлов на серверах, хранящих данные;
  • масштабируемость — реализуется за счет добавления дополнительных серверов, обрабатывающих запросы.

Типовой ландшафт сервисов в составе Системы

Типовой ландшафт сервисов в составе Системы

Рекомендуемый набор серверов приложений

Для повышения эффективности разработки и тестирования приложений, а также отказоустойчивости и безопасности эксплуатации приложений рекомендуется развернуть несколько серверов приложений (необходимость использования каждого из этих серверов определяется при составлении технических требований):

  • сервер разработки (development), на котором осуществляется разработка приложений;
  • сервер тестирования (pre-production), на котором осуществляется тестирование приложений;
  • основной сервер (production), на котором осуществляется эксплуатация приложений;
  • резервный сервер (standby), который используется в случае перегрузки или выхода из строя основного сервера.

Техническое обеспечение Системы

Здесь представлены рекомендуемые характеристики технического обеспечения для развёртывания Системы на мощностях заказчика под управлением операционной системы Windows или Linux.

Конфигурация серверов приложений

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

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

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

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

Фактические требования к техническому обеспечению могут значительно отличаться и зависят от следующих факторов:

  • количества активных пользователей в Системе;
  • количества приложений в Системе;
  • количества запускаемых процессов;
  • количества настроенных вычислений, правил, условий и зависимостей данных;
  • объема хранимой информации и документов.

Подсистемы (см. параграф «Конфигурация подсистем») и виртуальные машины с ПО рекомендуется размещать на нескольких физических машинах.

Каналы связи между узлами Системы должны обеспечивать пропускную способность не менее 10 Гбит/с.

Методика расчета требуемых аппаратных ресурсов

Здесь представлены примеры расчёта системных ресурсов отказоустойчивой системы.

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

  • 500 зарегистрированных;
  • 200 активных;
  • 25 постоянных.

Инфраструктурные сервисы

  • Виртуальные серверы одного сервиса должны быть размещены на разных физических серверах.
  • Скорость соединения между серверами должна быть не менее 10 Гб/с.
  • SSD-накопитель для базы данных должен быть высокоскоростным и высоконадёжным.
Логич. ядер ЦП от 3,0 ГГц ОЗУ, ГБ Раздел с ПО, ГБ, SSD БД, ГБ, SSD
Обратные прокси (VPS): Reverse proxy1, Reverse proxy2
2 2 24
Система мониторинга и отслеживания (VPS): Monitor1, Monitor2
2 4 24 128

Продуктовый ландшафт

  • Виртуальные серверы одного сервиса должны быть размещены на разных физических серверах.
  • Скорость соединения между серверами должна быть не менее 10 Гб/с.
  • SSD-накопитель для базы данных должен быть высокоскоростным и высоконадёжным.
Логич. ядер ЦП от 3,0 ГГц ОЗУ, ГБ Раздел с ПО, ГБ, SSD БД, ГБ, SSD Загру­­­жаемые файлы, ГБ,
СХД HDD
Жур­налы, HDD Резерв­­ные копии, ГБ,
СХД HDD
Серверы приложений (VPS): CBAP-node1, CBAP-node2, CBAP-node3
8 32 64 128 1024 16 512
Сервер журналов OpenSearch (VPS): OpenSearch-node1, OpenSearch-node2, OpenSearch-node3
4 16 24 128 16 512

Ландшафт тестирования и разработки

  • SSD-накопитель для базы данных должен быть высокоскоростным и высоконадёжным.
Логич. ядер ЦП от 3,0 ГГц ОЗУ, ГБ Раздел с ПО, ГБ, SSD БД, ГБ, SSD Загру­­­жаемые файлы, ГБ,
СХД HDD
Жур­налы, HDD Резерв­­ные копии, ГБ,
СХД HDD
GitServer: git-server
2 4 24 128
Сервер приложений (VPS): CBAP-test
8 24 64 128 32 16 128
Сервер приложений (VPS): CBAP-dev
8 24 64 128 32 16 128
Сервер журналирования транзакций (VPS): OpenSearch
4 16 24 128 16 128

Минимальная конфигурация основного сервера приложений

Кол-во польз. ЦП ОЗУ HDD SSD
1–200 активных 4 ядра от 3,7 ГГц +
(1 ядро × 100 акт. польз. × кол-во прил.)
16 ГБ +
(4 ГБ × 100 акт. польз. × кол-во прил.)
16 ГБ 16 ГБ
200 активных 4 ядра +
(2 ядра × кол-во прил.)
16 ГБ +
(8 ГБ × кол-во прил.)
16 ГБ × кол-во прил. 16 ГБ × кол-во прил.
300 активных 4 ядра +
(3 ядра × кол-во прил.)
16 ГБ +
(12 ГБ × кол-во прил.)
16 ГБ × кол-во прил. 16 ГБ × кол-во прил.
400 активных 4 ядра +
(4 ядра × кол-во прил.)
16 ГБ +
(16 ГБ × кол-во прил.)
16 ГБ × кол-во прил. 16 ГБ × кол-во прил.

Минимальная конфигурация резервного сервера приложений

Кол-во польз. ЦП ОЗУ HDD SSD
1­–200 4 ядра от 3,7 ГГц +
(1 ядро × 100 польз. × кол-во прил.)
16 ГБ +
(4 ГБ × 100 польз. × кол-во прил.)
16 ГБ × кол-во прил. 8 ГБ × кол-во прил.
200 4 ядра +
(2 ядра × кол-во прил.)
16 ГБ +
(8 ГБ × кол-во прил.)
16 ГБ × кол-во прил. 8 ГБ × кол-во прил.
300 4 ядра +
(3 ядра × кол-во прил.)
16 ГБ +
(12 ГБ × кол-во прил.)
16 ГБ × кол-во прил. 8 ГБ × кол-во прил.
400 4 ядра +
(4 ядра × кол-во прил.)
16 ГБ +
(16 ГБ × кол-во прил.)
16 ГБ × кол-во прил. 16 ГБ × кол-во прил.

Минимальная конфигурация серверов разработки и тестирования

Кол-во польз. ЦП ОЗУ HDD SSD
1–100 4 ядра от 3,7 ГГц 16 ГБ 16 ГБ 16 ГБ

Конфигурация системы хранения данных

В минимальной конфигурации все папки данных сервера приложений могут храниться в одном разделе на высокопроизводительном SSD-накопителе.

Высокопроизводительные системы хранения (SSD DAS/SAN) должны обеспечивать производительность не меньше 100 000 IOPS на 1 сервер приложений.

Объем выделяемого пространства на высокопроизводительных (SSD DAS/SAN) и низкопроизводительных системах хранения (HDD DAS/SAN) следует определить в ходе составления технических требований.

Для оптимизации обработки, хранения и резервного копирования папки данных сервера приложений можно разместить в отдельных хранилищах:

  • файлы базы данных и конфигурации — SSD DAS/SAN (эти данные сервер приложений обрабатывает постоянно в оперативном режиме, что создает высокую нагрузку на подсистему хранения);
  • загруженные пользователями файлы — HDD DAS/SAN (такие файлы хранятся долговременно, не в базе данных и запрашиваются по ссылке, поэтому для их обработки и хранения высокопроизводительная подсистема хранения не требуется);
  • журнал Системы — HDD DAS/SAN (запись файлов журнала создает минимальную нагрузку на подсистему хранения);
  • резервные копии — HDD DAS/SAN (резервные копии формируются периодически, используются редко, для их хранения важнее объем, а не производительность хранилища; тем не менее, скорость резервного копирования может снижаться в случае наличия большого количества мелких файлов, загруженных пользователями, в таком случае можно разместить папку резервных копий на высокопроизводительном накопителе);
  • временная папка — SSD DAS/SAN (нагрузка при хранении и обработке временных файлов может возрастать при большом количестве активных пользователей и транзакций, загрузке пользователями множества файлов и под влиянием прочих факторов).

Конфигурация подсистем

Конфигурация сервера распределённой СУБД

Сервер распределённой СУБД Apache Ignite в минимально необходимой конфигурации можно установить автоматически при развертывании Comindware Platform либо самостоятельно в требуемой конфигурации.

Требования к конфигурации

Примеры конфигураций

Конфигурация сервера журналирования транзакций

Сервер журналирования транзакций OpenSearch (Elasticsearch) в минимально необходимой конфигурации можно установить автоматически при развертывании Comindware Platform либо самостоятельно в требуемой конфигурации.

Требования к конфигурации

  • Должна быть включена аутентификация.
  • Должна быть разрешена работа под любым аккаунтом, кроме стандартного (например, elastic).
  • Номер порта должен отличаться от стандартного 9200.
  • В конфигурации должно быть задано достаточное количество шардов: минимум 3000.

Примеры конфигураций

Конфигурация обратного прокси-сервера

Обратный прокси-сервер NGINX в минимально необходимой конфигурации можно установить автоматически при развертывании Comindware Platform либо самостоятельно в требуемой конфигурации.

Требования к конфигурации

  • NGINX;
  • Модуль ModSecurity;
  • Модуль GeoIP.

Примеры конфигураций

Конфигурация сервера Zabbix

Требования к конфигурации

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

  • Мониторинг доступности сервера распределённой СУБД Apache Ignite.
    • Сервер может быть недоступен из-за проблем с сетью.
    • На сервере может закончиться свободное место на диске.
    • Конфигурация сервера может не позволять обработать запросы, например, ввиду невозможности создания нового индекса или соответствующего ему шарду.
  • Мониторинг доступности сервера журналирования транзакций OpenSearch (Elasticsearch)
    • Сервер может быть недоступен из-за проблем с сетью.
    • На сервере может закончиться свободное место на диске.
    • Конфигурация сервера может не позволять обработать запросы, например, ввиду невозможности создания нового индекса или соответствующего ему шарда.
  • Мониторинг места на дисках с базой данных, журналами, резервными копиями и т. п.
  • Мониторинг ошибок в процессе работы Системы
    • Ошибки конфигурации Системы.
    • Ошибки в процессе эксплуатации Системы.
    • Ошибки, связанные с обновлением окружения, в котором работает Система, или компонентов самой Системы.

Примеры конфигураций

К началу


Номер Статьи: 4596
Размещено: Tue, Jul 5, 2022
Последнее обновление: Thu, Apr 24, 2025

Online URL: https://kb.comindware.ru/article/razvertyvanie-comindware-platform-arhitektura-landshaft-programmnoe-i-tehnicheskoe-obespechenie-4596.html