# onPrem: Resources & infrastructure requirements

Данные требования подходят под “чистую” onPrem установку.

## Необходимое ПО

Для установки платформы должен быть развернут KubernetesТребования к Kubernetes

1. Версия 1.27.x
2. StorageClass, который поддерживает RWX (ReadWriteMany) — <https://kubernetes.io/docs/concepts/storage/persistent-volumes/>

\
Прикладное ПО, необходимое для работы Платформы

1. Postgres 16.x
2. Redis 7.x.x
3. S3 Compatible Storage, ex. Minio
4. Rabbitmq 3.12.x
5. Максимальный размер сообщения  512мб
6. ClickHouse 23.8

Если требуется отказоустойчивость и высокая доступность, то Прикладное ПО должно быть развернуто за пределами Kubernetes (см. Рекомендуемые системные требования для разворачивания). Необходима сетевая доступность между всем необходимым ПО и Kubernetes.\
\
Если не требуется отказоустойчивость и высокая доступность, то все сервисы можно разместить в Kubernetes кластере, в таком случае из необходимого ПО для возможности развертывания Платформы будет нужен только Kubernetes, прикладное ПО будет развернуто в процессе установки Платформы автоматически (см. Минимальные системные требования для разворачивания в Kubernetes Cluster)

## Требования к среде

### Минимальные системные требования для разворачивания в Kubernetes Cluster

Функционал, требующий GPU будет недоступен при работе платформы на минимальных системных требованиях

* Недоступен функционал подсистем распознавания (ASR) и генерации голоса (TTS)
* Медленная работа встроенного FAQ сервиса (RAG, LLM)

| Имя группы серверов | Назначение                               | Описание                                                                  | ЦПУ                                                                                | ОЗУ, Гб | Дисковое пространство, Гб | Количество ВМ |
| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ------------------------- | ------------- |
| masters             | мастер ноды оркестратора Kubernetes      | <p><br></p>                                                               | 4 ядра, производительность на ядро не менее чем у Intel® Xeon® Gold 6230           | 4       | 20                        | 1-3           |
| workers             | управляемые ноды оркестратора Kubernetes | <ul><li>сервисы платформы, кроме NLU, LLM</li><li>Прикладное ПО</li></ul> | 8 потоков, производительность на ядро не менее чем у Intel® Xeon® Gold 6230        | 32      | 250                       | 3+            |
| nlu-worker          | управляемые ноды оркестратора Kubernetes | <ul><li>NLU сервисы</li><li>NER сервисы</li></ul>                         | не менее 16 ядер, производительность на ядро не менее чем у Intel® Xeon® Gold 6230 | 64      | 150                       | 1+            |
| llm-worker          | управляемые ноды оркестратора Kubernetes | <ul><li>LLM\&RAG сервисы</li></ul>                                        | не менее 16 ядер, производительность на ядро не менее чем у Intel® Xeon® Gold 6230 | 32      | 150                       | 1+            |

### Рекомендуемые системные требования

#### Kubernetes Cluster

| Имя группы серверов | Назначение                               | Описание                                                                        | ЦПУ                                                                                | ОЗУ, Гб | Дисковое пространство, Гб | Количество ВМ | GPU                                                                |
| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ------------------------- | ------------- | ------------------------------------------------------------------ |
| masters             | мастер ноды оркестратора Kubernetes      | <p><br></p>                                                                     | 4 ядра, производительность на ядро не менее чем у Intel® Xeon® Gold 6230           | 4       | 20                        | 1-3           |                                                                    |
| workers             | управляемые ноды оркестратора Kubernetes | сервисы платформы, кроме NLU, LLM                                               | 8 потоков, производительность на ядро не менее чем у Intel® Xeon® Gold 6230        | 32      | 250                       | 3+            |                                                                    |
| nlu-worker          | управляемые ноды оркестратора Kubernetes | <ul><li>NLU сервисы</li><li>NER сервисы</li></ul>                               | не менее 16 ядер, производительность на ядро не менее чем у Intel® Xeon® Gold 6230 | 64      | 150                       | 1+            |                                                                    |
| llm-worker          | управляемые ноды оркестратора Kubernetes | LLM\&RAG сервисы                                                                | не менее 8 ядер, производительность на ядро не менее чем у Intel® Xeon® Gold 6230  | 64      | 150                       | 1+            | GPU видеокарта производительность не менее чем NVIDIA A10 16GB     |
| voice-workers       | управляемые ноды оркестратора Kubernetes | <p>Сервисы работы с голосом:</p><ul><li>ASR сервис</li><li>TTS сервис</li></ul> | не менее 8 ядер, производительность на ядро не менее чем у Intel® Xeon® Gold 6230  | 64      | 150                       | 1+            | GPU видеокарта производительность не менее чем Nvidia A10 GPU 16GB |

#### Базы данных

| Имя группы серверов | ЦПУ, ядра | ОЗУ, Гб | Дисковое пространство,  Гб | Количество ВМ |
| ------------------- | --------- | ------- | -------------------------- | ------------- |
| Postgres            | 16        | 64      | 1000                       | 2             |
| Rabbitmq            | 8         | 16      | 300                        | 3             |
| Clickhouse          | 8         | 16      | 1000                       | 2+            |
| Redis               | 8         | 16      | 300                        | 3             |

### GPU requirement calculation

#### ASR TTS operation

Up to 5 languages

| Type     | 200 sessions    | 300 sessions      | 400 sessions      |
| -------- | --------------- | ----------------- | ----------------- |
| ASR+TTS  | Nvidia A10 16GB | 2xNvidia A10 16GB | 2xNvidia A10 16GB |
| ASR only | Nvidia A10 16GB | Nvidia A10 16GB   | 2xNvidia A10 16GB |
| TTS only | Nvidia A10 16GB | Nvidia A10 16GB   | 2xNvidia A10 16GB |

## Рекомендации по мониторингу и логированию

В рамках разворачивания Платформы будут развернуты следующие версии инструментов мониторинга и логирования:

1. Elastic Stack 8.5.1
2. Kube Prometheus Stack 61.3.1

Если данные инструменты уже используются у клиента, то они могут быть использованы для мониторинга и логирования Платформы

## Результат подготовки среды

* Выделены ресурсы и настроено ПО в соответствии с выбранным вариантом отказоустойчивости
* Команде Graphlogic предоставлены
* * Доступ в kubernetes и Kubeconfig
  * IP адреса и учетные записи администратора в Прикладное ПО, если выбран вариант отказоустойчивой поставки, когда прикладное ПО расположено за пределами Kubernetes Cluster
  * Организована доступность среды для команды Graphlogic
  * Выданы данные по подключению к клиентским системам мониторинга и логирования, если предполагается их использование
* Создано доменное имя для доступа к UI платформы, опционально, можно создать доменное имя для сервиса хранения объектов S3
* * Так как платформа работает с внешним окружение по протоколу https, к указанным выше доменным именам необходимо выпустить SSL сертификаты

## Тестовое окружение

Предполагается разворачивание тестового окружения на той же среде, что подготовлена для продакшн окружения. В рамках подготовки среды нужны будут только ДНС имена и сертификаты для протокола https для доступа в UI (и s3 опционально)
