О приложении

Архитектура приложения


Интерфейс_раздела


  1. Клиент
    В роли клиентов приложения могут выступать:

    • Пользовательский веб-браузер: Интерфейс, с которым взаимодействуют пользователи.
    • Внешняя система: Программы и сервисы, которые используют API для подачи запросов и взаимодействия с приложением.
  2. Веб-сервер
    Nginx отвечает за прием входящих HTTPS-запросов, перенаправление запросов на сервер приложения по HTTP, балансировку нагрузки между различными экземплярами сервера приложения, кеширование статического контента.

  3. Сервер приложения
    Node.js приложение, обрабатывающее бизнес-логику и взаимодействующее с другими компонентами системы. Обрабатывает входящие запросы по HTTP на порт 8080, поступающих от веб-сервера. Формирует ответы и отправляет их обратно через веб-сервер к клиенту. Используется многопроцессная архитектура для масштабирования нагрузки (запускается отдельный процесс для каждого ядра процессора).

  4. Агрегация статистики
    ClickHouse обеспечивает хранение и обработку статистических данных. Например, позволяет сохранять информацию о количестве активных пользователей за день или месяц, количестве созданных объектов и т.д.

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

  6. Хранение структурированных данных
    MongoDB используется для хранения досок, команд и проектов.

  7. Файловое хранилище
    S3-совместимое хранилище, работающее по AWS SDK v2 и v3. Служит для размещения пользовательских файлов различного типа (изображения, документы, медиа-файлы).

Функциональные возможности и особенности приложения

  • Приложение поддерживает AstraLinux, Ubuntu и другие операционные системы, обеспечивающие работу контейнеризации.

  • Приложение можно развернуть с использованием Docker, Docker Compose и Kubernetes с применением helm chart по запросу.

  • Поддерживается интеграцию с другими on-premises решениями.

  • Поддерживается шифрование данных между всеми узлами приложения.

  • Приложение работает с базами данных MongoDB и PostgreSQL.

  • Поддерживается работа в нескольких инстансах.

  • Приложение разработано с учетом принципов отказоустойчивости.

  • Приложение может полноценно функционировать в изолированной инфраструктуре.

  • Поддерживается работа с syslog.

  • Приложение поддерживает SAML, OpenID и LDAPS для реализации единого входа (SSO).

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

  • Возможна загрузка пользователей из Active Directory.

  • Все учетные записи в приложении персонифицированы.

Сетевые параметры

Порт Назначение Протокол Трафик Шифрование Алгоритм шифрования Тип Комментарий
443 Внешний доступ к приложению через nginx (HTTPS) со стороны клиента TLS (HTTPS) Внешний Да (TLS 1.2 или 1.3) ECDHE-RSA-AES256-GCM-SHA384 Н Порт может быть изменен в конфигурации nginx
8080 Внутренние экземпляры backend-приложения (по числу CPU) HTTPS Внутренний Да (TLS 1.3) TLS_AES_256_GCM_SHA384 Н Прокси через nginx, порт зависит от числа процессов и настройки приложения. Например 8080–8087
9000 Обращения к внешнему хранилищу (S3 API, AWS v2 или v3) HTTPS (S3 API) Внешний Да TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 и др. Н Используется как endpoint для доступа к объектному хранилищу
541 Отправка логов на syslog-сервер UDP или TCP Внешний или внутренний Зависит от конфигурации Зависит от конфигурации Н Может быть как TCP, так и UDP. TLS обычно не включен
6379 Redis (in-memory key-value хранилище) Redis протокол Внутренний Нет Не применяется Н Требует включения TLS для соответствия ИБ
5432 PostgreSQL (БД приложения) PostgreSQL Внутренний Нет Не применяется Н Приложение не поддерживает работу с TLS
389 LDAP LDAP (TCP) Внешний или внутренний Нет Не применяется Н Без шифрования, для поиска пользователей
636 LDAPS LDAP over TLS Внешний или внутренний Да TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 и др. Н TLS-версия LDAP, используется для безопасной аутентификации

Условные обозначения для портов:

Н — настраиваемый. Можно изменить в конфигурации приложения.
Ф — фиксированный, не настраиваемый.

Криптографическая защита

Используемые хеш-алгоритмы — bcrypt.

Предыдущая