Перейти к содержанию

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

Введение

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

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

Определения

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

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

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

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

  • Веб-приложение: одностраничное приложение (SPA) на основе Marionette, Backbone, React, Redux.
  • Мобильное приложение: React Native on Expo.
  • Бэкенд: компоненты-сервисы на основе .NET 8.0, JRE 17, Mono 6.12 (Linux), .NET Framework 4.8 (Windows).
  • СУБД: фирменная патентованная СУБД 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), который используется в случае перегрузки или выхода из строя основного сервера.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

К началу