Підсистема розгортання та налаштування Платформи та реєстрів

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

1. Загальний опис

Підсистема розгортання та налаштування Платформи та реєстрів - це комплекс різноманітних інструментів і процесів, які дозволяють забезпечити ефективне та безперервне функціонування Платформи та Реєстрів відповідно до потреб користувачів Платформи.

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

Підсистема реалізована з використанням GitOps-практик, що означає стан Платформи та реєстрів зберігається в репозиторії системи контроля версій Git (Gerrit). Інші компоненти підсистеми, такі як оператори та інструменти CI/CD (Jenkins), контролюють стан Платформи та реєстрів та приводять її до тієї, що збережена в репозиторії.

2. Функції підсистеми

  • Розгортання, конфігурування та оновлення компонентів Платформи та реєстрів

  • Зберігання компонентів Платформи та Реєстрів

  • Версіонування конфігурації Платформи та Реєстрів

3. Технічний дизайн підсистеми

config mgmt.drawio
Зображення 1. Діаграма компонентів підсистеми та їх взаємодії

4. Складові підсистеми

Назва компоненти Namespace Deployment Походження Репозиторій Призначення

Сервіс розгортання конфігурації

control-plane

jenkins

3rd-party

github:/epam/edp-ddm-control-plane-jenkins

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

Агент сервісу розгортання конфігурації

control-plane

origin

github:/epam/edp-ddm-infrastructure-jenkins-agent

Jenkins агент, що використовується для виконання задач розгортання, налаштування та оновлення Платформи та Реєстрів.

Сховище артефактів Платформи

control-plane-nexus

nexus

3rd-party

github:/epam/edp-ddm-control-plane-nexus

Центральне сховище артефактів, компонентів та їх залежностей з яких складається кожна окрема підсистема та Платформа в цілому. Збереження артефактів платформи

Jenkins оператор

control-plane

jenkins-operator

epam-origin

github:/epam/edp-jenkins-operator

Допоміжне програмне забезпечення, яке виконує функції розгортання, налаштування та відновлення програмного комплексу Jenkins, як компонента підсистеми.

Codebase оператор

control-plane

codebase-operator

epam-origin

github:/epam/edp-codebase-operator

Codebase оператор - це допоміжне програмне забезпечення, яке виконує функцію реєстрації нового Реєстру як компонента Платформи та виконує первісну конфігурацію.

Nexus оператор

control-plane-nexus

nexus-operator

epam-origin

github:/epam/edp-nexus-operator

Допоміжне програмне забезпечення, яке виконує функції розгортання, налаштування та відновлення Nexus Repository Manager, як компонента підсистеми.

Компонент реєстрової конфігурації

<registry-namespace>

-

epam-origin

github:/epam//edp-ddm-registry-configuration

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

5. Технологічний стек

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

6. Атрибути якості підсистеми

6.1. Portability

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

6.2. Observability

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

Детальніше з дизайном підсистем можна ознайомитись у відповідних розділах:

6.3. Maintainability

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