# Системные требования

## Рабочее место аналитика

* ОС: Windows/Linux/MasOS.
* Процессор: 4 ядра или более.
* Оперативная память: 16 Гб или более.
* Жесткий диск: 20 Гб или более.
* Рекомендуемый браузер: последняя версия Chrome
* Сеть 
  * исходящее соединение по сети интернет на порты: HTTP:80 (Nexus), HTTP:4000 (package-repository), 
  * исходящее соединение по локальной сети на порт JDBC:5432 (СУБД)

## Общее

### Типовая конфигурация сервера приложений

* Рекомендуемая ОС: Linux.
* Процессор: 8 ядра или более.
* Оперативная память: 16 Гб или более.
* Жесткий диск: 20 Гб или более.
* Java JDK 17.х.
* Сервер приложений.
* Только для демонстрационного и тестового стенда: открытый debug порт (по умолчанию 8787)  
* Сеть 
  * входящее соединение по локальной сети: HTTP:8080 
  * только для демонстрационного и тестового стенда: входящее соединение по локальной сети debug порт HTTP:8787
  * исходящее соединение по локальной сети на порт JDBC:5432 (СУБД)

### Типовая конфигурация сервера БД

* Рекомендуемая ОС: Linux.
* Процессор: 4 ядра или более.
* Оперативная память: 16 Гб или более.
* Жесткий диск:
  * тип - SSD/NVME SSD
  * 20 Гб или более для системы
  * 50 Гб и более для данных
* Средство анализа логов pgBadger
* PostgreSQL 15 или выше, с включением логирования запросов (необходимо для pgBadger)
* Сеть 
  * входящее соединение по локальной сети на порт JDBC:5432
* Для обеспечения отказоустойчивости необходимо создать более 1 узла. Отказоустойчивость обеспечивается посредством patroni.

## Демонстрационный стенд

### Сервер приложений

* см. типовую конфигурацию сервера приложений

### Сервер БД

* см. типовую конфигурацию сервера БД

## Тестовый стенд/боевой стенд

### Балансировщик

* Рекомендуемая ОС: Linux.
* Процессор: 2 ядра или более.
* Оперативная память: 4 Гб или более.
* Жесткий диск: 20 Гб или более.
* Задача - распределение нагрузки между серверами статики и серверами приложений
* Nginx
* Сеть 
  * входящее соединение по локальной сети на порт HTTP:80
  * исходящее соединение по локальной сети на порт HTTP:80 (серверы статики)
  * исходящее соединение по локальной сети на порт HTTP:8080 (серверы приложений)

### Сервер статики

* Рекомендуемая ОС: Linux.
* Процессор: 2 ядра или более.
* Оперативная память: 4 Гб или более.
* Жесткий диск: 20 Гб или более.
* Задача - выдача frontend части приложения
* Для обеспечения отказоустойчивости необходимо создать более 1 узла
* Nginx
* Сеть 
  * входящее соединение по локальной сети на порт HTTP:80

### Сервер приложений

* см. типовую конфигурацию сервера приложений
* Для обеспечения отказоустойчивости необходимо создать более 1 узла

### Сервер БД

* см. типовую конфигурацию сервера БД
* Для обеспечения отказоустойчивости необходимо создать более 1 узла

### Сервер мониторинга

* Рекомендуемая ОС: Linux.
* Процессор: 2 ядра или более.
* Оперативная память: 4 Гб или более.
* Жесткий диск: 20 Гб или более.
* Задачи
  * Сбор общей информации (процессор, оперативная память, диск, сеть) со узлов стенда
  * Сбор информации о приложении
    * метрики приложения
    * загрузка пулов соединений БД на сервере приложений
    * загрузка оперативной памяти сервера приложений
* Сеть 
  * входящее соединение по локальной сети на порт HTTP:80
  * входящее соединение по локальной сети от агента мониторинга

### Сервер сбора логов

* Рекомендуемая ОС: Linux.
* Процессор: 2 ядра или более.
* Оперативная память: 4 Гб или более.
* Жесткий диск: 50 Гб или более.
* Задача - сбор access и server логов с серверов приложений 
* Сеть 
  * входящее соединение по локальной сети на порт HTTP:80
  * входящее соединение по локальной сети от агента сбора логов
