docs: recreate documentation structure with updated specs
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Руководство по развертыванию (Deployment)
|
||||
|
||||
Контакт-центр поддерживает два основных сценария развертывания на серверах: упрощенный (через Docker Compose для небольших стендов) и enterprise-grade (через Kubernetes и Helm для продакшена).
|
||||
|
||||
## 1. Требования к Production-окружению
|
||||
|
||||
Для запуска в боевых условиях (Scale Profile) **строго обязателен PostgreSQL**. Запуск на SQLite в Production категорически не поддерживается.
|
||||
Также для связи микросервисов в продакшене требуется запущенный кластер **RabbitMQ**.
|
||||
|
||||
## 2. Развертывание через серверный Docker Compose (Test / Stage)
|
||||
|
||||
Если у вас один выделенный сервер (VPS/VM Linux) и вы хотите настроить автоматический деплой из GitLab:
|
||||
|
||||
Готовые скрипты находятся в `scripts/`:
|
||||
- `install_gitlab_runner.sh` — регистрирует раннер на сервере.
|
||||
- `bootstrap_gitlab_deploy.sh` — подготавливает базовые папки и .env-файлы.
|
||||
- `deploy_gitlab.sh` — сам скрипт деплоя.
|
||||
|
||||
В директории `deployment/` лежат файлы конфигураций для сервера:
|
||||
- `docker-compose.server.registry.yml` — тянет собранные образы напрямую из GitLab Container Registry.
|
||||
- `.env.production.template` — шаблон боевых секретов, включая `APP_TOKEN_SECRET` и `OIDC_...` для Keycloak.
|
||||
|
||||
**Как обновиться (CI/CD Pipeline):**
|
||||
GitLab CI (файл `.gitlab-ci.yml`) собирает Docker-образы для каждого микросервиса (`services/*`) при merge в ветку `main` и перезапускает Compose-файл на вашем выделенном сервере.
|
||||
|
||||
## 3. Развертывание в Kubernetes (On-premise / Cloud Production)
|
||||
|
||||
Для крупных внедрений контакт-центра (когда нужен автомасштаб `ai_voice_runtime_service` или `routing-service` при высокой нагрузке) используется встроенный Helm-чарт.
|
||||
|
||||
Исходники манифестов лежат в:
|
||||
- `deployment/helm/` — основной Helm Chart микросервисной платформы.
|
||||
- `deployment/kubernetes/` — статические манифесты.
|
||||
|
||||
### 3.1. Установка Helm чарта
|
||||
Для установки чарта в кластер перейдите в директорию `deployment/helm` и выполните:
|
||||
```bash
|
||||
# 1. Создание отдельного namespace
|
||||
kubectl create namespace mvp-cc
|
||||
|
||||
# 2. Установка/обновление платформы
|
||||
helm upgrade --install mvp-cc-prod ./ \
|
||||
--namespace mvp-cc \
|
||||
-f values.yaml \
|
||||
-f values.prod.yaml
|
||||
```
|
||||
|
||||
### 3.2. Масштабирование (Scale Profiles)
|
||||
Шаблоны Helm поддерживают включение профилей нагрузки. Например, для запуска `scale500` (профиль на 500 одновременных линий/пользователей):
|
||||
- Отключите встроенные SQLite-заглушки во `values.yaml`.
|
||||
- Строго пропишите внешний `DATABASE_URL` до высокодоступного кластера PostgreSQL.
|
||||
- Настройте пулинг коннектов:
|
||||
- `DB_POOL_SIZE`
|
||||
- `DB_MAX_OVERFLOW`
|
||||
|
||||
## 4. Резервное копирование и Откат конфигураций
|
||||
|
||||
Даже при работе в Kubernetes базу данных (PostgreSQL) желательно держать вне кластера (Managed Database/Patroni).
|
||||
|
||||
**Бэкапы аудиозаписей:**
|
||||
Если вы используете `recording-service` с локальным хранением, смонтированные PVC (Persistent Volume Claims) с аудиозаписями нужно регулярно копировать. В инфраструктуре без K8s для этого предусмотрен скрипт `scripts/backup_data.ps1`.
|
||||
Reference in New Issue
Block a user