Архитектура решения

GANDIVA реализована в соответствии с принципами сервисно-ориентированной архитектуры (SOA). Система состоит из независимых сервисов, каждый из которых отвечает за собственную область функциональности и взаимодействует с остальными по стандартным сетевым протоколам (HTTP/HTTPS, REST). Такой подход обеспечивает слабую связанность компонентов, их независимое обновление и горизонтальное масштабирование.

Контейнерное исполнение

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

Состав компонентов

КОМПОНЕНТ ТИП СЕРВИСА НАЗНАЧЕНИЕ
Обратный прокси Системный Приём клиентских соединений, терминация HTTPS, маршрутизация и балансировка нагрузки между прикладными сервисами.
REST API-приложение Прикладной Серверная бизнес-логика, программный интерфейс REST API, обработка запросов пользователей и внешних систем.
Web-приложение Прикладной Пользовательский веб-интерфейс системы.
Фоновые процессы / планировщик Прикладной Фоновые и выполняемые по расписанию задачи. В ближайших выпусках выделяется в отдельный сервис без публикации во внешнюю сеть.
СУБД PostgreSQL Хранение данных Постоянное хранение данных. Развёртывается на отдельном узле или в кластере.

Независимость и масштабируемость сервисов

Прикладные сервисы (REST API и Web) спроектированы как независимые, поэтому могут запускаться в нескольких экземплярах. Это позволяет наращивать производительность горизонтально и распределять нагрузку средствами обратного прокси и оркестратора. Подробнее — в подразделах «Масштабирование и балансировка нагрузки» и «Контейнеризация и оркестрация».

Оркестрация

Управление жизненным циклом контейнеров (запуск, перезапуск, масштабирование, распределение по узлам) выполняется средствами оркестратора. Выбор оркестратора определяется масштабом внедрения и инфраструктурными требованиями заказчика:

  • Swarm — применяется для небольших и средних внедрений; обеспечивает простую и надёжную оркестрацию для типовых конфигураций.
  • Kubernetes — применяется для крупных внедрений и кластерных конфигураций, где требуются расширенные возможности управления, автоматического масштабирования и отказоустойчивости.

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

Поддержка систем виртуализации

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

Поддерживается инсталляция на российские системы виртуализации, зарегистрированные в Едином реестре российских программ (ЕРРП), — в частности прддерживается  «Горизонт-ВС»  

Контейнерный характер развёртывания позволяет эксплуатировать GANDIVA как на физических серверах, так и в виртуальной инфраструктуре без изменений в составе компонентов.

Сервис звонка с сайта RedConnect