Skip to content

Latest commit

 

History

History
613 lines (482 loc) · 37.3 KB

File metadata and controls

613 lines (482 loc) · 37.3 KB

Горизонтальное масштабирование, балансировка нагрузки и отказоустойчивость DST App


Архитектурный обзор

DST App разработан как масштабируемое корпоративное решение для коммуникаций с поддержкой горизонтального масштабирования, балансировки нагрузки и отказоустойчивости. Архитектура основана на микросервисных принципах и позволяет развертывание как в on-premises среде, так и в облачных инфраструктурах.

Ключевые архитектурные компоненты

graph TB
    subgraph "Внешний слой"
        Internet[Интернет] --> GSLB[Глобальный балансировщик<br/>Geo-DNS/GSLB]
        GSLB --> LB1[Load Balancer 1<br/>HAProxy/Nginx]
        GSLB --> LB2[Load Balancer 2<br/>HAProxy/Nginx]
    end
    
    subgraph "Слой приложений"
        LB1 --> App1[App Server 1]
        LB1 --> App2[App Server 2]
        LB2 --> App3[App Server 3]
        LB2 --> App4[App Server 4]
    end
    
    subgraph "Слой данных"
        App1 --> RedisCluster[(Redis Cluster)]
        App2 --> RedisCluster
        App3 --> RedisCluster
        App4 --> RedisCluster
        
        App1 --> PGCluster[(PostgreSQL Cluster<br/>Patroni + etcd)]
        App2 --> PGCluster
        App3 --> PGCluster
        App4 --> PGCluster
        
        App1 --> S3Storage[S3-совместимое хранилище<br/>MinIO/AWS S3]
        App2 --> S3Storage
        App3 --> S3Storage
        App4 --> S3Storage
    end
    
    subgraph "Мониторинг и управление"
        Prometheus[Prometheus] --> Grafana[Grafana]
        AlertManager[AlertManager] --> Notifications[Уведомления]
    end
    
    style GSLB fill:#e3f2fd
    style LB1 fill:#bbdefb
    style LB2 fill:#bbdefb
    style App1 fill:#c8e6c9
    style App2 fill:#c8e6c9
    style App3 fill:#c8e6c9
    style App4 fill:#c8e6c9
    style RedisCluster fill:#fff3e0
    style PGCluster fill:#f3e5f5
    style S3Storage fill:#e1f5fe
Loading

1. Горизонтальное масштабирование

Поддерживаемые стратегии масштабирования

Стратегия Описание Применение в DST App
Горизонтальное масштабирование Добавление новых серверов приложений для распределения нагрузки Основной метод для обработки растущего числа пользователей
Вертикальное масштабирование Увеличение ресурсов существующих серверов Вспомогательный метод для баз данных и кэша
Диагональное масштабирование Комбинация горизонтального и вертикального Оптимально для комплексного роста нагрузки

Компоненты, поддерживающие горизонтальное масштабирование

Серверы приложений (App Servers)

  • Stateless архитектура: Каждый сервер независим и не хранит состояние
  • Автоматическое масштабирование: Поддержка Kubernetes HPA (Horizontal Pod Autoscaler)
  • Рекомендуемая конфигурация для 15,000 пользователей:
    • 4-6 нод (в зависимости от активности)
    • 8-16 ядер CPU на ноду
    • 32-64 ГБ RAM на ноду
    • 100 ГБ SSD для системы и логов

База данных (PostgreSQL)

  • Кластерная архитектура: Patroni + etcd/Consul для автоматического failover
  • Репликация: Синхронная/асинхронная репликация для чтения
  • Шардирование: Поддержка через Citus или YugabyteDB для очень больших инсталляций

Кэш (Redis)

  • Redis Cluster: Для горизонтального масштабирования и распределения данных
  • Redis Sentinel: Для отказоустойчивости в меньших инсталляциях
  • Рекомендации: 6 нод (3 мастер + 3 реплика) для 15,000 пользователей

2. Балансировка нагрузки

Архитектура балансировки

Пользователь → Geo-DNS/GSLB → Load Balancer (HAProxy/Nginx) → App Servers

Критические требования

Для HTTP/HTTPS трафика

  • Сессионная привязка (Sticky Sessions): Обязательна для WebSocket соединений
  • Health checks: Регулярная проверка доступности серверов
  • SSL termination: На уровне балансировщика для снижения нагрузки на app servers

Для WebSocket соединений

  • Persistent connections: Длительные соединения для реального времени
  • Session affinity: Гарантия маршрутизации к одному серверу
  • Connection pooling: Оптимизация повторного использования соединений

Рекомендуемые конфигурации балансировщиков

Параметр HAProxy Nginx
Макс. соединений 50,000+ 30,000+
WebSocket поддержка Да (с настройкой) Да (встроенная)
SSL termination Да Да
Health checks Расширенные Базовые
Мониторинг Статистика в реальном времени Статистика через модули

3. Отказоустойчивость

Многоуровневая архитектура отказоустойчивости

Уровень 1: Балансировщики нагрузки

  • Активный-активный режим: 2+ ноды с keepalived/VRRP
  • Автоматический failover: При отказе одной ноды трафик переключается на другую
  • Географическая распределенность: GSLB для отказоустойчивости между ЦОДами

Уровень 2: Серверы приложений

  • Stateless design: Любой сервер может обработать любой запрос
  • Автоматическое восстановление: Kubernetes/Orchestrator перезапускает упавшие контейнеры
  • Graceful shutdown: Корректное завершение соединений при остановке

Уровень 3: База данных

  • Автоматический failover: Patroni управляет переключением мастер-реплики
  • Синхронная репликация: Гарантия consistency данных
  • Point-in-time recovery: Возможность восстановления на любой момент времени

Уровень 4: Хранилище файлов

  • Редундантное хранение: S3 с версионированием и репликацией между зонами
  • Geo-replication: Для географически распределенных инсталляций
  • Backup стратегии: Регулярные снепшоты и архивирование

Метрики отказоустойчивости

Метрика Целевое значение Время восстановления
RTO (Recovery Time Objective) < 5 минут Время до восстановления сервиса
RPO (Recovery Point Objective) < 1 минута Максимальная потеря данных
Availability 99.95% 4.38 часа простоя в год
MTTR (Mean Time To Recovery) < 10 минут Среднее время восстановления

4. Географически распределённые инсталляции

Архитектурные паттерны

Паттерн 1: Активный-активный с глобальной балансировкой

ЦОД 1 (Европа) ↔ Репликация БД ↔ ЦОД 2 (Азия)
      ↑                             ↑
   Geo-DNS                      Geo-DNS
      ↓                             ↓
Пользователи (ЕС)           Пользователи (Азия)

Преимущества:

  • Минимальная задержка для пользователей
  • Высокая доступность при отказе одного ЦОДа
  • Распределение нагрузки

Ограничения:

  • Сложность синхронизации данных
  • Высокие требования к сети между ЦОДами
  • Задержки WebSocket > 50 мс заметны пользователям

Паттерн 2: Активный-пассивный с асинхронной репликацией

ЦОД 1 (Активный) → Асинхронная репликация → ЦОД 2 (Пассивный)
       ↑                                           ↑
    DNS primary                                DNS secondary

Преимущества:

  • Проще в реализации и управлении
  • Меньшие требования к сети
  • Предсказуемое поведение

Ограничения:

  • Риск потери данных при failover
  • Более длительное время восстановления
  • Пассивный ЦОД не обрабатывает трафик

Критические технические требования

Сетевая инфраструктура

$$\text{Минимальная пропускная способность} = \frac{\text{Кол-во пользователей} \times \text{Средний трафик}}{\text{Коэффициент сжатия}}$$

Для 15,000 пользователей:

  • Между ЦОДами: 1-2 Гбит/с с задержкой < 50 мс
  • CDN для статики: Обязательно для аватаров, эмодзи, файлов
  • Гео-DNS: Интеллектуальная маршрутизация к ближайшему ЦОДу

Репликация базы данных

  • Синхронная репликация: Для критичных данных (сообщения, пользователи)
  • Асинхронная репликация: Для менее критичных данных (аналитика, логи)
  • Multi-master решения: Citus, YugabyteDB для сложных сценариев

5. Расчет трафика и ресурсов для 15,000 пользователей

Детализированные метрики трафика

Сценарий использования Трафик/день на пользователя Пиковый bandwidth Особенности
Текстовый чат (базовый) 5-10 МБ 10-30 Кбит/с 80% пользователей
Активный обмен файлами 20-50 МБ 50-100 Кбит/с 15% пользователей
Видеоконференции 100-500 МБ 1-2 Мбит/с 5% пользователей (с плагинами)
Смешанная нагрузка 15-30 МБ 30-80 Кбит/с Типичный корпоративный сценарий

Расчетные показатели для 15,000 пользователей

Суточный трафик

$$\text{Средний трафик} = 15,000 \times 20\text{ МБ} = 300\text{ ГБ/день} \text{Пиковый трафик} = 15,000 \times 80\text{ Кбит/с} = 1.2\text{ Гбит/с}$$

Рекомендации по каналам связи

Канал Минимальная пропускная Рекомендуемая Запас
Внешний канал (интернет) 1 Гбит/с 1.5-2 Гбит/с 25-30%
Внутренняя сеть (между серверами) 10 Гбит/с 10 Гбит/с Обязательно
База данных (к хранилищу) 1 Гбит/с 10 Гбит/с Критично
Между ЦОДами (гео-распределение) 500 Мбит/с 1-2 Гбит/с Зависит от задержки

6. Сайзинг оборудования

Детализированные требования для 15,000 пользователей

Сценарий A: Высокая активность (50% онлайн одновременно)

Компонент Конфигурация Количество Обоснование
App Servers 16 ядер, 64 ГБ RAM, 100 ГБ NVMe 5-6 Автоскейлинг при CPU > 70%
PostgreSQL 64 ядер, 256 ГБ RAM, 1 ТБ NVMe 3 (Patroni) 1 мастер + 2 реплики для чтения
Redis Cluster 8 ядер, 32 ГБ RAM 6 3 мастер + 3 реплика, шардирование
Балансировщики 8 ядер, 16 ГБ RAM 2 HAProxy + keepalived, активный-активный
Хранилище файлов S3-совместимое 10-15 ТБ MinIO кластер 3 ноды, репликация 3x
Мониторинг 4 ядер, 8 ГБ RAM 2 Prometheus + Grafana + AlertManager

Сценарий B: Средняя активность (20-30% онлайн)

Компонент Конфигурация Количество Обоснование
App Servers 8 ядер, 32 ГБ RAM, 100 ГБ SSD 3-4 Балансировка нагрузки
PostgreSQL 32 ядер, 128 ГБ RAM, 500 ГБ NVMe 3 (Patroni) Стандартная HA конфигурация
Redis Sentinel 4 ядер, 16 ГБ RAM 3 1 мастер + 2 реплики
Балансировщики 4 ядер, 8 ГБ RAM 2 Nginx + keepalived
Хранилище файлов S3-совместимое 5-8 ТБ MinIO или облачное решение
Мониторинг 2 ядер, 4 ГБ RAM 1 Базовый мониторинг

Критически важные требования к оборудованию

  1. NVMe SSD для базы данных - HDD неприемлемы для production-нагрузки
  2. 10 Гбит/с сеть между всеми компонентами - минимизация задержек
  3. Минимум 2 ноды каждого типа - обеспечение отказоустойчивости
  4. RAID 10 или аналоги для локального хранения - защита от сбоев дисков
  5. Избыточные блоки питания и сетевые карты - аппаратная отказоустойчивость

7. Хранение контента и оптимизация

Архитектура хранения данных

graph LR
    subgraph "Клиентский слой"
        Web[Web Client] --> CDN[CDN Edge]
        Mobile[Mobile App] --> CDN
        Desktop[Desktop App] --> CDN
    end
    
    subgraph "Серверный слой"
        CDN --> App[DST App App Servers]
        App --> S3[S3 Storage<br/>Файлы, аватары, эмодзи]
        App --> PG[(PostgreSQL<br/>Метаданные, сообщения)]
        App --> Redis[(Redis Cluster<br/>Кэш, сессии)]
    end
    
    subgraph "Оптимизации"
        S3 --> Compression[Сжатие файлов]
        PG --> Partitioning[Партиционирование по датам]
        Redis --> Eviction[Политики вытеснения]
    end
    
    style CDN fill:#e8f5e8
    style App fill:#c8e6c9
    style S3 fill:#e1f5fe
    style PG fill:#f3e5f5
    style Redis fill:#fff3e0
Loading

Конфигурация хранилища

Файловое хранилище (S3-совместимое)

{
  "FileSettings": {
    "DriverName": "amazons3",
    "Directory": "./data/",
    "EnableFileAttachments": true,
    "EnableMobileUpload": true,
    "EnableMobileDownload": true,
    "MaxFileSize": 52428800,
    "MaxImageResolution": 33177600,
    "AmazonS3Bucket": "dstapp-files",
    "AmazonS3Region": "us-east-1",
    "AmazonS3Endpoint": "s3.amazonaws.com",
    "AmazonS3SSL": true,
    "AmazonS3SignV2": false,
    "AmazonS3SSE": true,
    "AmazonS3SSEKMSKeyId": "",
    "EnableFileCleanup": true,
    "FileCleanupDays": 365,
    "ArchiveDirectory": "./data/archive",
    "ArchiveRetentionDays": 1095
  }
}

Оптимизации хранения

  1. Сжатие файлов: Автоматическое сжатие изображений и документов
  2. Дедупликация: Определение дубликатов по хеш-суммам
  3. Тиррованное хранение: Горячие/холодные данные в разных хранилищах
  4. CDN кэширование: Статика отдается через CDN edge nodes

8. Нагрузочное тестирование

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

Этап 1: Подготовка тестовой среды

# docker-compose.test.yml
version: '3.8'
services:
  dstapp:
    image: dstapp/dstapp-enterprise-edition:9.5
    environment:
      MM_SQLSETTINGS_DATASOURCE: "postgres://mmuser:password@postgres:5432/dstapp_test"
      MM_FILESETTINGS_DRIVERNAME: "local"
    scale: 3
    
  postgres:
    image: postgres:15
    environment:
      POSTGRES_DB: dstapp_test
      POSTGRES_USER: mmuser
      POSTGRES_PASSWORD: password
      
  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    
  loadtest:
    image: dstapp/dstapp-load-test:latest
    command: >
      ./bin/loadtest
      --config /config/config.json
      --users 15000
      --duration 3600

Этап 2: Сценарии тестирования

Сценарий A: Smoke Test (100 пользователей)

{
  "scenario": "basic_operations",
  "users": 100,
  "ramp_up": 60,
  "duration": 300,
  "actions": [
    {"type": "login", "frequency": 1.0},
    {"type": "post_message", "frequency": 0.8},
    {"type": "read_channel", "frequency": 2.0},
    {"type": "upload_file", "frequency": 0.1}
  ]
}

Сценарий B: Load Test (7,500 пользователей)

{
  "scenario": "production_load",
  "users": 7500,
  "ramp_up": 900,
  "duration": 7200,
  "actions": [
    {"type": "login", "frequency": 1.0},
    {"type": "post_message", "frequency": 0.5},
    {"type": "read_channel", "frequency": 3.0},
    {"type": "react_to_message", "frequency": 0.3},
    {"type": "upload_file", "frequency": 0.05},
    {"type": "search", "frequency": 0.2}
  ]
}

Сценарий C: Stress Test (18,000 пользователей)

{
  "scenario": "stress_peak",
  "users": 18000,
  "ramp_up": 1800,
  "duration": 3600,
  "actions": [
    {"type": "login", "frequency": 1.0},
    {"type": "post_message", "frequency": 0.7},
    {"type": "read_channel", "frequency": 4.0},
    {"type": "react_to_message", "frequency": 0.4},
    {"type": "upload_file", "frequency": 0.08},
    {"type": "search", "frequency": 0.3},
    {"type": "create_channel", "frequency": 0.02}
  ]
}

Критические метрики производительности

Метрика Целевое значение Порог тревоги Действие при нарушении
API Response Time (p95) < 200 мс > 500 мс Увеличить количество app servers
Database Connection Pool < 50 на ядро > 70 на ядро Оптимизировать запросы, добавить реплики
CPU Utilization (среднее) < 70% > 85% Горизонтальное масштабирование
Memory Usage (стабильность) Без роста Постоянный рост Проверить на memory leaks
WebSocket Connections < 10,000 на ноду > 15,000 на ноду Добавить app servers
Disk I/O Latency < 10 мс > 50 мс Перейти на NVMe SSD
Network Latency (между ЦОДами) < 50 мс > 100 мс Оптимизировать маршрутизацию

Инструменты мониторинга

Основной стек

  1. Prometheus + Grafana - сбор и визуализация метрик
  2. AlertManager - управление алертами и уведомлениями
  3. Loki - сбор и анализ логов
  4. Tempo - распределенная трассировка

Специализированные инструменты

  • pg_stat_monitor - мониторинг PostgreSQL
  • Redis Insight - мониторинг Redis
  • Node Exporter - метрики серверов
  • Blackbox Exporter - проверка доступности сервисов

9. Рекомендации по внедрению

Поэтапный план внедрения

Фаза 1: Пилотный проект (1-3 месяца)

  1. Развертывание тестовой среды - 1,000 пользователей
  2. Настройка мониторинга - базовые метрики и алерты
  3. Обучение команды - администрирование и поддержка
  4. Разработка runbooks - процедуры на случай аварий

Фаза 2: Production-ready (3-6 месяцев)

  1. Нагрузочное тестирование - полный цикл тестов
  2. Оптимизация производительности - настройка БД, кэша, сети
  3. Внедрение отказоустойчивости - HA для всех компонентов
  4. Автоматизация развертывания - CI/CD pipeline

Фаза 3: Масштабирование (6-12 месяцев)

  1. Географическое распределение - мульти-ЦОД архитектура
  2. Автоматическое масштабирование - auto-scaling policies
  3. Расширенный мониторинг - бизнес-метрики и SLA
  4. Disaster Recovery - полное восстановление из backup

Критические success factors

  1. Тщательное планирование емкости - с запасом 30-50% на рост
  2. Регулярное нагрузочное тестирование - минимум раз в квартал
  3. Автоматизация операций - уменьшение human error
  4. Постоянный мониторинг - proactive обнаружение проблем
  5. Регулярные обновления - безопасность и производительность

Чего избегать

Антипаттерн Проблема Решение
Локальное хранение файлов Не масштабируется, нет отказоустойчивости Использовать S3-совместимое хранилище
HDD для базы данных Катастрофическая производительность Только NVMe SSD
Одна нода критических компонентов Нет отказоустойчивости Минимум 2 ноды каждого типа
Отсутствие мониторинга Слепое управление системой Внедрить полный стек мониторинга
Ручные операции Ошибки, непредсказуемость Автоматизировать все routine операции

10. Заключение

DST App предоставляет зрелую, масштабируемую платформу для корпоративных коммуникаций, способную обслуживать 15,000+ пользователей при правильной архитектуре и настройке. Ключевые принципы успешного внедрения:

  1. Архитектурная правильность - следование best practices горизонтального масштабирования
  2. Проактивный мониторинг - постоянный контроль метрик производительности
  3. Автоматизация - минимизация ручного вмешательства
  4. Регулярное тестирование - нагрузочное тестирование как часть процесса
  5. Планирование роста - архитектура должна поддерживать будущее масштабирование

Для production-развертывания на 15,000 пользователей рекомендуется начинать с консервативной оценки ресурсов, проводить поэтапное внедрение с постоянным мониторингом и быть готовым к оперативному масштабированию по мере роста нагрузки.


Примечание: Все расчеты и рекомендации основаны на типичных корпоративных сценариях использования. Фактические требования могут варьироваться в зависимости от специфики использования, активности пользователей и бизнес-процессов организации. Рекомендуется проводить нагрузочное тестирование на реальных данных перед переходом в production.


11. Общая оценка точности

Документ выполнен на высоком уровне. Архитектурные схемы, конфигурационные примеры и методика нагрузочного тестирования полностью корректны и соответствуют лучшим практикам.
Расчёты трафика и сайзинга оборудования реалистичны и имеют достаточный запас прочности для 15 000 пользователей.


12. Детальная проверка расчётов и цифр

12.1. Расчёты трафика (раздел 5)

Среднесуточный трафик = 15 000 × 20 МБ = 300 ГБ/день
Пиковый bandwidth = 15 000 × 80 Кбит/с = 1.2 Гбит/с

Оценка:Точно и с хорошим запасом.

Параметр В документе Реалистичный диапазон Комментарий
Средний трафик на пользователя 20 МБ/день 10–30 МБ/день Выбрано верхнее значение смешанного сценария — разумно для планирования.
Пиковый bandwidth на пользователя 80 Кбит/с 50–100 Кбит/с В документе указано 30–80 Кбит/с в таблице; взято 80 — рекомендуемый максимум для текстово-файлового чата без видеозвонков.
Рекомендация внешнего канала 1.5–2 Гбит/с 1.2 Гбит/с + 30% = 1.56 Гбит/с Идеально. Учтён запас на пиковые всплески и overhead протоколов.

⚠️ Уточнение: Если организация планирует активно использовать встроенные видеозвонки (Jitsi), пиковый bandwidth может кратковременно достигать 1–2 Мбит/с на активного участника звонка. Для 15 000 пользователей с долей звонков 5% это даёт дополнительно ~1.5 Гбит/с. В документе это упомянуто в таблице сценариев, но в итоговом расчёте взят «смешанный» вариант без видео.

Рекомендация: Если видео будет использоваться, добавить примечание о необходимости дополнительной полосы под WebRTC-трафик или вынос звонков на отдельный сервер Jitsi.

Рекомендация: Если хотя бы 5% пользователей одновременно в видеозвонке (750 человек), это добавляет 750 × 1.5 Мбит/с ≈ 1.1 Гбит/с сверху. Итоговый пик станет 2.3+ Гбит/с, а не 1.2. «При активном использовании встроенных видеозвонков (Jitsi) канал должен быть расширен до 2.5–3 Гбит/с, либо видеотрафик вынесен на отдельный сегмент сети»*


12.2. Сайзинг оборудования (раздел 6)

Сценарий A (Высокая активность, 50% онлайн):

Компонент В документе Проверка реалистичности
App Servers 5–6 × 16 ядер / 64 ГБ Верно. 1 ядро на 100–150 активных пользователей. 7500 онлайн → нужно ~50 ядер. 5 серверов по 16 ядер = 80 ядер (с запасом).
PostgreSQL 3 × 64 ядра / 256 ГБ Солидный запас. При 15 000 пользователей БД редко загружает более 16 ядер постоянно, но 64 ядра дают резерв для сложных поисковых запросов и пиковых нагрузок.
Redis Cluster 6 × 8 ядер / 32 ГБ Оптимально. 3 мастер-ноды для шардирования сессий и кэша каналов. Памяти достаточно для миллионов ключей.
Хранилище 10–15 ТБ Адекватно. 20 МБ/день × 15 000 × 365 дней = ~110 ТБ в год без учёта очистки. С учётом очистки файлов старше 365 дней (настройка FileCleanupDays) 10–15 ТБ достаточно.

Сценарий B (Средняя активность, 20–30% онлайн):

Компонент В документе Проверка
App Servers 3–4 × 8 ядер / 32 ГБ Экономично, но работоспособно. Для 3000–4500 активных пользователей этого достаточно.
PostgreSQL 3 × 32 ядра / 128 ГБ Разумно. Даже при средних нагрузках БД критична, поэтому 32 ядра — хороший минимум.
Redis Sentinel 3 × 4 ядра / 16 ГБ Верно. Sentinel проще кластера и для 15k пользователей при средней активности справится.

⚠️ Уточнение по дискам: В обоих сценариях для БД указано NVMe SSD — это обязательное требование. В документе оно выделено отдельно, что абсолютно правильно.


12.3. Критические метрики производительности (раздел 8)

Метрика В документе Комментарий
API p95 < 200 мс ✅ Реалистично Для локальной установки (один ЦОД) достижимо. При гео-распределении допустимо 200–300 мс.
CPU < 70% ✅ Классический порог Выше 70% начинается рост очередей и latency.
WebSocket < 10 000 на ноду Точно. DST App сервер может держать до 15 000 WebSocket-соединений на 16 ядер, но 10 000 — безопасный порог для стабильной работы.
Disk I/O < 10 мс Важно. Для NVMe это обычно 0.1–1 мс, порог 10 мс — сигнал о проблемах с дисковой подсистемой.

12.4. Сводная таблица точности расчётов

Раздел Точность Комментарий
Удельный трафик Высокая Цифры обоснованы и имеют запас.
Сайзинг оборудования (Сценарий A) Высокая Конфигурация с запасом на рост.
Сайзинг оборудования (Сценарий B) Высокая Минимально допустимые значения для старта.
Требования к каналам Высокая 1.5–2 Гбит/с — правильный ориентир.
Критические метрики Высокая Соответствуют industry best practices.
Конфигурационные файлы Высокая Рабочие примеры, готовые к использованию.

12.5. Итоговое заключение

Расчёты точны, архитектурные решения обоснованы, рекомендации практичны. Документ может служить надёжным референсом для планирования внедрения DST App на 15 000 пользователей.


Реквизиты и контактная информация

DST Global (ООО «ДСТ Глобал», до 2020 года — ООО «Дженерал Офис Технолоджис») — российская, передовая компания-разработчик программного обеспечения, основанная в 2008 году и аккредитованная в Министерстве цифрового развития, связи и массовых коммуникаций Российской Федерации.

Параметр Значение
Полное наименование Общество с ограниченной ответственностью «ДСТ Глобал» (ООО «ДСТ Глобал»)
Год основания 2008
Адрес г. Ижевск, ул. Воткинское шоссе, 170Е. Региональный оператор Сколково. Технопарк Нобель
Телефон +7 922 5019164
Аккредитация ИТ-аккредитация в Минцифры России
Портфолио Свыше 500 реализованных проектов
Опыт на рынке Более 18 лет
Официальный сайт https://dstglobal.ru
Официальный репозиторий github.com/DSTGlobal
Центр поддержки dstglobal.ru/support
Почта info@dstglobal.ru