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

Архитектура программного обеспечения

Общее описание

Решение VK People Hub имеет микросервисную архитектуру.

Выбранная архитектура решения предоставляет возможности:

  • эксплуатации решения с минимальными затратами на обслуживание;
  • обеспечения высокого уровня отказоустойчивости и безопасности портальных систем;
  • обеспечения репликации данных на уровне СУБД;
  • оперативной реакции на возникающие задачи и ситуации в рамках портальной платформы;
  • обеспечения предсказуемости в управлении всем комплексом портальных решений в процессе его развития;
  • обеспечения архитектурной целостности поставляемого решения, кастомизации Продукта за счёт модульности микросервисной архитектуры и имеющихся технологических возможностей.

Продукт учитывает планы и стратегию развития и модернизации в перспективе:

  • обеспечивается возможность горизонтальной масштабируемости серверов приложений, балансировки, кэширования, файлового хранения, СУБД и т.д.;
  • для обеспечения требуемой функциональности Продукта и целевых значений производительности используется in-memory СУБД в качестве горячего кеша;
  • на уровне пользовательских интерфейсов используются наиболее распространенные фреймворки (библиотеки) с открытым исходным кодом;
  • продукт поддерживает модель разработки виджетов с использованием JavaScript и встраивание их в пользовательский интерфейс с возможностью многократного использования;
  • в качестве основной СУБД используется реляционная СУБД PostgreSQL с открытым исходным кодом.
  • продукт может размещаться на серверах в ЦОД Клиента;
  • продукт поддерживает поставку и оркестрацию контейнеров Docker на базе платформы Kubernetes.

Функциональная архитектура

Продукт VK People Hub помогает решить следующие задачи:

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

Продукт VK People Hub обеспечивает руководителей и сотрудников достаточными инструментами для реализации всех необходимых шагов, требующих участия сотрудника и руководителя, в следующих бизнес-процессах:

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

Более подробное описание бизнес-функций сервисов VK People Hub представлено на странице Функциональное описание.

AS IS Текущая функциональная архитектура продукта VK People Hub

as_is_architecture

Рисунок. Текущая функциональная архитектура Продукта VK People Hub.

TO BE Планируемая в обозримом будущем функциональная архитектура продукта VK People Hub

to_be_architecture

Рисунок. Целевая функциональная архитектура Продукта VK People Hub.

Технологическая архитектура

Продукт VK People Hub построен на базе распространенных и применяемых среди аналогов инструментов:

  • Backend бизнес-логика:
    • Язык программирования: Python3;
    • Базовый фреймворк: Django;
    • Библиотеки:
      • Asyncio,
      • Celery,
      • Fastapi.
  • Frontend бизнес-логика:
    • Язык программирования: TypeScript;
    • Базовый фреймворк: React.

В качестве прикладного ПО используется:

  • СУБД:
    • PostgreSQL (OLTP, основная модель данных, включающая ПДн);
    • ClickHouse (OLAP);
    • Redis (горячий кеш);
    • MinIO (объектное хранилище).
  • Межсервисное взаимодействие:
    • Kafka (брокер сообщений);
    • IAM;
    • KeyCloak (авторизация и аутентификация).

Поддерживается реализация SSO с IAM-решением клиента с использованием протоколов OIDC, SAML, Kerberos/SPNEGO.

technical_architecture

Рисунок. Компонентная архитектура VK People Hub.

API

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

По запросу клиента предоставляется актуальная версия документации API к необходимым сервисам. Формат возвращаемых данных – JSON.

Архитектура развёртывания

Решение VK People Hub поставляется в виде набора helm chart и образов контейнеров Docker, содержащих исполняемые файлы ПО.

Решение разворачивается на подготовленной и предоставляемой клиентом (или реализуемой проектно) платформе оркестрации на базе Kubernetes.

Важно! Поставка коробочной версии ПО VK People Hub не включает в себя и не осуществляет поддержку дистрибутивов:

  • платформы оркестрации Kubernetes и нижележащей инфраструктуры;
  • средств виртуализации Docker;
  • инфраструктурных, сетевых компонентов;
  • внешних средств информационной безопасности.

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

Вариант 1. Простая модель on-premises в контуре корпоративной сети

technical_architecture

Самый простой вариант топологии развёртывания - модель on-premises полностью в контуре корпоративной сети клиента. На диаграмме опущена низкоуровневая сетевая инфраструктура, в т.ч. L4-МСЭ, эксплуатируемая клиентом.

Логическая зона Название элемента Предоставляет Описание
ДМЗ WAF Заказчик Web Application Firewall – L7/HTTP firewall
Внутренняя сеть HTTP Load Balancer Заказчик Балансировщик нагрузки, интегрируемый с Ingress Controller кластера Kubernetes. Может также служить proxy-сервером. Терминирует SSL/TLS
Внутренняя сеть Jump-host Заказчик Промежуточный сервер для доступа эксплуатации к API kubernetes и СУБД
Внутренняя сеть Кластер Kubernetes Заказчик
Внутренняя сеть Сервисы в кластере Kubernetes VK Бизнес-сервисы решения VK People Hub
Внутренняя сеть PostgreSQL Заказчик/VK РСУБД PostgreSQL
Внутренняя сеть Другие СУБД Заказчик/VK Другие используемые в VK People Hub СУБД: Redis, ClickHouse, …
Внутренняя сеть Хранилище S3 Заказчик/VK Объектное хранилище с S3-совместимым API. Например, VKCS S3
ИТ- и Бизнес-системы HCM Заказчик Интегрируемые бизнес-системы Заказчика
ИТ- и Бизнес-системы LMS Заказчик Интегрируемые бизнес-системы Заказчика
ИТ- и Бизнес-системы Другие бизнес-системы Заказчик Интегрируемые бизнес-системы Заказчика
ИТ- и Бизнес-системы LDAP-провайдер Заказчик Необязательно. IdP, работающий по протоколу LDAP. Например, Microsoft Active Directory
ИТ- и Бизнес-системы Инструменты развёртывания Заказчик Система развёртывания для управления деплойментами Kubernetes-кластера и СУБД. Например, GitLab
ИТ- и Бизнес-системы Docker реестр (зеркало) Заказчик Локальное зеркало-репозиторий для образов контейнеров Docker. Рекомендуется настройка в режиме pull through cache

Вариант 2. Простая модель on-premises в контуре корпоративной сети с клиентским VPN

technical_architecture

Аналогичный вариант топологии развёртывания, учитывающий подключение конечных пользователей, находящихся за пределом офисной ЛВС клиента, посредством VPN (Point-to-Site), например, OpenVPN. На диаграмме опущена низкоуровневая сетевая инфраструктура, в т.ч. L4-МСЭ, эксплуатируемая клиентом.

Вариант 3. Гибридная модель on-cloud с интегрируемыми ИС в контуре корпоративной сети

technical_architecture

Гибридная модель развёртывания. Решение VK People Hub разворачивается на вычислительных ресурсах облачного провайдера (VK Cloud). Сетевое взаимодействие с интегрируемыми ИС клиента осуществляется посредством долгоживущего VPN-тоннеля (Site-to-Site) между сетевыми контурами корпоративной сети клиента и облачного провайдера.

Соответствие требованиям информационной безопасности

Восстановления при аварийных ситуациях

Для обеспечения отказоустойчивости всех компонентов продукта VK People Hub имеет возможность функционирования в кластерном режиме (обеспечивается платформой оркестрации Kubernetes).

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

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

Осуществление резервного копирования информации может осуществляться в режимах (периодичность и очередность этих операций определяются клиентом в собственном корпоративном регламенте эксплуатации VK People Hub):

  • создание полной копии базы данных;
  • сохранение изменений, внесенных со времени создания последней архивной копии.

Для хранения снимков файловой системы (snapshots) с возможностью дальнейшего восстановления используются средства хранения, определяемые Клиентом.

Зоны системного ландшафта

Продукт VK People Hub имеет возможность управляемого переноса конфигураций между зонами системного ландшафта, т.е. компоновки и переноса конфигураций между средой разработки, средой тестирования, продуктивной средой.

Обновление (перенос) конфигураций пакетов helm chart между зонами системного ландшафта происходит через взаимодействие в системе управления репозиториями.

Управление доступом пользователей на Портал

Контроль (предоставление/отказ) доступа субъектов к защищаемым информационным ресурсам осуществляется в соответствии с матрицей доступа, сопровождающей Продукт, распределяющей между ролями пользователей права для выполнения действий на портале. Наборы групп пользователей, их роли, права и состав управляются Администратором.

Администратор обладает возможностями:

  • присвоение и ограничение прав пользователя в соответствии с его участием в соответствующей группе пользователей;
  • обеспечение разграничения уровней доступа пользователей, как с возможностью индивидуальной настройки прав доступа, так и с использованием механизма системных ролей;
  • обеспечение разграничения доступа к информационным ресурсам (наборам документов, НСИ и т.д.);
  • обеспечение разграничения доступа к функциям Продукта;
  • аутентификация пользователя на Портале производится в едином сервисе авторизации по персональному уникальному логину по паролю при входе из корпоративной сети через SSO (решение Single-Sign On) на базе Keycloak.

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

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