Skip to content

Требования к оборудованию

Минимум для одного сервера

Для пилота, демо или небольшой команды весь стенд (все контейнеры) работает на одном сервере:

РесурсМинимумКомфортно
CPU2 vCPU4 vCPU
RAM4 GB8–16 GB
Диск20 GB SSD100+ GB SSD (БД растёт вместе с данными и бэкапами)
ПОDocker 24+, Docker Compose 2.20+

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

Промышленные конфигурации (HA)

Вариант 1 — до 50 одновременных пользователей

Топология: 2 App-узла (active/active) + 1 DB-узел, перед ними балансировщик (HAProxy/Keepalived с VIP или железный LB).

App-узлы ×2 (Traefik, backend, queue-воркеры ×3–4, scheduler, Reverb, frontend):

КомпонентМинимумРекомендация
CPU4 ядра @ 2.5 GHz8 ядер
RAM16 GB ECC32 GB ECC
Диск120 GB SSD256 GB NVMe
Сеть1 Гбит/с2 × 1 Гбит/с (bonding)

DB-узел (PostgreSQL 16, Redis 7, Meilisearch, SeaweedFS):

КомпонентМинимумРекомендация
CPU4 ядра8 ядер
RAM16 GB ECC32 GB ECC
Диск для данных500 GB SSD1 TB NVMe (RAID 1)
Диск для файлов1 TB HDD2 TB HDD (RAID 1)

HA БД: PostgreSQL Streaming Replication (ручной failover) или Patroni; Redis — Sentinel на 3 узла (третий Sentinel на одном из App-узлов).

Сравнение вариантов

ПараметрВариант 1 (≤50)Вариант 2 (50–200)Вариант 3 (200–1000)
Серверов36 (+2 LB)19+
CPU итого24 ядра72 ядра200+ ядер
RAM итого~80 GB~352 GB~1.5 TB
SSD (данные)1 TB2 TB6 TB
HDD (файлы)2 TB10 TB40 TB+
HA PostgreSQLStreaming ReplicationStreaming + PatroniPatroni-кластер (3 узла)
HA RedisSentinelSentinelRedis Cluster (6 узлов)
HA AppActive/Active ×2Active/Active ×3K8s / Swarm, 4+ узлов

Детальные спецификации вариантов 2 и 3 (Patroni-кластер, Redis Cluster, Ceph/MinIO) — во внутреннем отчёте internal-docs/onprem-hardware-requirements.md репозитория.

Почему именно эти ресурсы

  • RAM — главный ресурс. PostgreSQL кэширует рабочий набор (shared_buffers ≈ 25 % RAM узла); Meilisearch держит индексы в памяти (~2–5 GB на 1 млн документов); Redis хранит сессии, очереди и PubSub Reverb целиком в памяти; каждый Apache/PHP-воркер — 80–120 MB.
  • SSD обязателен для БД и поиска — латентность диска напрямую конвертируется в латентность API.
  • Файлы (SeaweedFS) можно держать на HDD — вложения читаются линейно и редко.
  • Queue-воркеры влияют на отзывчивость UI: уведомления и индексация поиска выполняются асинхронно; если воркеров мало, «мгновенные» события начинают запаздывать.
  • Отдельный воркер отчётов (queue-reports) нужен потому, что экспорт XLSX/PDF — долгие и прожорливые по памяти задачи (до 512 MB на джоб): без выделенного воркера они блокировали бы уведомления. См. Очереди и планировщик.

Сетевые порты

Наружу стенд открывает только 80 (редирект на https) и 443 — всё остальное живёт во внутренних Docker-сетях. Для исходящих соединений нужны:

НаправлениеЗачем
SMTP-релей (587/465)Исходящая почта
IMAP-сервер (993)Приём входящих писем
api.telegram.org (443)Telegram-бот (если используется)
Let's Encrypt (443)Выпуск/продление TLS-сертификатов
LDAP/AD (389/636)Вход по корпоративному каталогу (если используется)

Orbita ITSM — документация для системных администраторов