Масштабування ресурсів реєстру

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

Кожен реєстр має свої специфічні задачі, логіку роботи й налаштування, а звідси — й набір певних сервісів, які залучені для виконання цих задач більшою або меншою мірою.

Відповідно до навантаження на певний реєстр, а це напряму залежить від кількості запитів від активних користувачів, сервіси реєстру потребують певної кількості ресурсів та можуть бути розгорнуті в одному та більше екземплярах.

Для прикладу, під час обслуговування 1500 активних користувачів протягом 1 години, умовний реєстр повинен мати приблизно наступну конфігурацію:

Конфігурація горизонтального масштабування реєстру
Сервіс Кількість копій (інстансів)

Admin portal/Officer portal/Citizen portal

1

BPMS

4

BP WS gateway

1

BP admin portal

1

DB/DB read replica

1

Digital document service

1

Digital signature service

3

Excerpt services

1

Form schema provider

3

Form schema validator

3

Istio gateway

1

Infra (jenkins/gerrit/nexus etc.)

1

Kafka services (exporter, schema registry)

1

Kafka cluster

3

Kafka cluster zookeeper

3

Kong

4

Language server

1

Process history rest api

2

Process history persistence service

1

Redash services

1

Registry rest api

4

Registry kafka api

4

Redis rfr (1000m)

2

Redis rfs

3

User settings rest api

1

User task management

3

User process management

2

Wiremock

1

Ознайомтеся із детальними звітами та параметризацією тестування навантаження у розділі Звіти продуктивності системи.

Залежно від потреб вашого реєстру, можливо змінювати конфігурації певних сервісів, зокрема ви можете:

Масштабувати ресурси вертикально

Зробити це можна двома способами:

  • (Основний шлях) В адміністративній панелі Control Plane, у розділі керування ресурсами для сервісів.

    Детальніше про це ви можете дізнатися на сторінці Керування ресурсами реєстру.
  • (Додатковий шлях) В OpenShift-консолі:

    Цей підхід дозволяє швидко додати ресурси до певних сервісів, але з часом налаштування будуть скинуті до тих, що зазначені в Helm-чарті.
    • Оберіть проєкт із вашим реєстром > Workloads > Deployments > Відкрийте налаштування сервісу > YAML.

    • У розділі spec.containers.resources ви можете встановити необхідні параметри конфігурації для CPU та memory.

    • У розділі spec.containers.resources.env ви можете визначити змінні оточення для ваших застосунків, як-то JAVA_OPTS, змінні для Ceph тощо.

platform prod deploy resources

Масштабувати ресурси горизонтально

Горизонтальне масштабування можна виконати внаслідок збільшення кількості реплік певних сервісів.

  • Наразі масштабувати горизонтально так:

    Цей підхід дозволяє швидко додати кількість реплік для бажаних сервісів, але з часом налаштування будуть скинуті до тих, що зазначені в Helm-чарті.
    • Оберіть проєкт із вашим реєстром > Workloads > Deployments > Відкрийте налаштування сервісу > YAML.

    • У розділі spec.replicas ви можете встановити потрібну кількість реплік для обраного сервісу.

      Приклад. Горизонтальне масштабування сервісу bpms до трьох реплік
      spec:
        replicas: 3

    platform prod deploy resources 1

Налаштувати горизонтальне масштабування автоматизовано (Horizontal Pod Autoscaler) буде можливе у розділі Ресурси реєстру адміністративної панелі Control Plane у наступних релізах, починаючи з 1.9.7.