Требования
Здесь описаны требования, предъявляемые платформой «Агредатор» к IT-инфраструктуре, в которую планируется интеграция. Поскольку платформа представляет собой комплексное и конфигурируемое решение, то данные требования носят консультационный характер и могут меняться в зависимости от конкретной выбранной схемы размещения или иных условий.
Системные требования
«Агредатор» должен работать на любой современной операционной системе семейства Linux и на любой современной версии Docker. На данный момент единственной поддерживаемой архитектурой является 64-bit x86
.
Поскольку требования к аппаратной части сильно зависят от планируемой загрузки (и выбранной схемы размещения), тут будут приведены приблизительные характеристики серверов с Агредатором, базой данных, RabbitMQ и Minio, позволяющие обрабатывать различные потоки обращений к платформе.
1000 запросов в сутки | 100 тысяч запросов в сутки | 1 млн запросов в сутки | |
---|---|---|---|
Агредатор | 4 ядра CPU, 8 Гб ОЗУ, HDD диск 100Гб | 8 ядер CPU, 12 Гб ОЗУ, HDD диск 100Гб, для каждого дополнительного сервиса требуется добавлять 512 Мб ОЗУ |
16 ядер CPU, 32 Гб ОЗУ, HDD диск 100Гб |
RabbitMQ | 2 ядра CPU, 6 Гб ОЗУ, HDD диск 100 Гб | 4 ядра CPU, 16 Гб ОЗУ, SSD диск 200 Гб | 8 ядер CPU, 32 Гб ОЗУ, SSD диск 200 Гб1 |
База данных | 2 ядра CPU, 4 Гб ОЗУ, HDD диск 100 Гб | 6 ядер CPU, 16 Гб ОЗУ, SSD диск 200 Гб | 12 ядер CPU, 32 Гб ОЗУ, SSD диск 200+ Гб2 |
Minio (S3) | 2 ядра CPU, 4 Гб ОЗУ, HDD диск 100 Гб | 4 ядра CPU, 8 Гб ОЗУ, SSD диск 100 Гб | 8 ядер CPU, 16 Гб ОЗУ, SSD диск 200+ Гб3 |
1 Кластеризация RabbitMQ и иных компонентов необходима для обеспечения отказоустойчивости и рассчитывается отдельно.
2 Объём дискового пространства СУБД обусловлен требуемым сроком хранения данных и должен быть рассчитан под конкретные условия.
3 Объём дискового пространства Minio (S3) обусловлен требуемым сроком хранения данных, необходимость кластеризации и балансировки нагрузки - производительностью отдельных узлов.
Окружение и ПО
Для запуска платформы или её сервисов можно использовать современную ОС семейства Linux. Тем не менее есть минимальные требования, которые гарантируют стабильную работу и простоту запуска, поскольку они используются при разработке и тестировании платформы.
- ОС: Debian 9.5 x64 или выше, Ubuntu 18.04 x64 или выше
- наличие на машине доступа к
docker.rnds.pro
,harbor.rnds.pro
,hub.docker.com
по протоколу HTTPS на порт 443 для скачивания Docker образов сервисов. Если на подготавливаемом сервере нет доступа в интернет, образы можно получить у нас через архивацию - системная служба docker не ниже версии 20.10. Более ранние версии также поддерживаются, но требуют некоторого изменения файлов конфигурации docker-compose.yml
- утилита docker-compose не ниже версии 1.25. Более ранние версии имеют команды и синтаксис, отличный от приведённого в документации, но также позволяют выполнять все необходимые действия по запуску и обслуживанию ПО
Информацию о том, как установить docker и docker-compose, а также описание эксплуатации и допустимых команд можно найти по ссылкам:
Безопасность
Требования к безопасности в существенной степени определяются окружением клиента и принятыми внутренними регламентами, уставными документами и иными нормативными и законодательными актами.
Платформа «Агредатор» спроектирована для работы в изолированной сети, исключающей несанкционированный доступ. Доступы от внешних систем (пользователей) к платформе должны явно настраиваться с учетом внутренней политики безопасности заказчика. Отсутствие несанкционированного доступа к компонентам системы извне является неотъемлемым требованием системы.
При планировании внедрения платформы следует учитывать приведенные здесь рекомендации.
Сеть и требования к ней
Для продуктового развертывания мы рекомендуем строго ограничивать трафик и возможность подключения к определенному набору портов, специально выбранных для этих целей. Большинство сервисов и подсистем платформы не имеют прямого интерфейса взаимодействия и для общения с ними используются HTTP-шлюз или точка подключения AMQP. Конкретные порты и протоколы приведены в описании сервисов.
Поскольку компоненты системы запускаются с использованием технологии Docker контейнеров, то дополнительные требования накладываются на конфигурацию платформы контейнеризации, например docker-engine. Они включают отсутствие несанкционированного доступа к самой системе оркестрации, обеспечение сетевой связности узлов и другие стандартные требования. Подробно про безопасность для Docker контейнеров можно узнать на следующих ресурсах:
- Безопасность для Docker-контейнеров - Статья от компании Флант
- Docker в банке - Практики продуктовой эксплуатации Docker
- Docker security - Официальный раздел Docker, посвященный безопасности
Хранение данных
Все компоненты платформы «Агредатор» не хранят данные локально и представляют из себя read-only контейнеры. Все данные сохраняются в строго определенных местах: RabbitMQ, PostgreSQL и Redis, которые в свою очередь не являются частью платформы и могут быть настроены и запущены силами специалистов заказчика согласно установленным нормам.
Кроме того, большинство сервисов платформы спроектированы так, чтоб во время работы не сохранять сами данные, с которыми они работают, а хранить лишь информацию о выполненной работе - какой запрос как именно был обработан. Таким образом, есть строго определённые сервисы и точно известные места (таблицы в СУБД) где данные хранятся непосредственно, что позволяет гибко настроить политику работы с данными, резервное копирование, архивирование и удаление.
Взаимодействие сервисов
Основным протоколом взаимодействия сервисов является AMQP. При этом используется TLS-соединение между всеми сервисами и брокером сообщений RabbitMQ. HTTP-взаимодействие используется при передаче файлов (например XML-логов взаимодействия СМЭВ) между некоторыми сервисами.
Всё взаимодействие с внешним миром, такое как работа операторов, взаимодействие по API с АБС или другими системами должно производиться строго с использованием защищенного соединения HTTPS. Управление доменными именами, сертификатами, TLS-терминация, балансировка входной нагрузки (использование прокси-серверов nginx и подобных) выполняется силами и средствами заказчика, исходя из требований внутренней инфраструктуры и политики ИБ.