Skip to content

Основные понятия

Интерфейс PDM построен вокруг десятка понятий. Ниже они разобраны по порядку — от самого крупного к самому мелкому.

Как всё устроено целиком

Сущности вложены друг в друга:

  • кластер содержит проекты;
  • проект содержит стенды;
  • на стенде работают приложения платформы;
  • у каждого приложения на стенде есть свои настройки и своя версия.

Поэтому один и тот же стенд всегда описывается парой «кластер + имя»: имена стендов повторяются в разных кластерах, и легко перепутать тестовый с боевым.

Кластер

Кластер — отдельная площадка Kubernetes, на которой развёрнуты окружения. Это верхний уровень иерархии. Кластеров обычно несколько, и они отличаются назначением — например, для тестирования и для боевой работы.

Список кластеров PDM не ведёт вручную, а получает из инфраструктуры. Подключением кластеров занимается администратор.

Проект

Проект — группировка стендов внутри кластера. Своей страницы у проекта нет: он показан меткой у имени стенда и помогает понять, к какой команде или направлению стенд относится.

Стенд (неймспейс)

Стенд — конкретное окружение: один развёрнутый экземпляр платформы со своим набором приложений, своими настройками и своим адресом. Это главный объект системы, и почти вся работа в PDM идёт вокруг него.

Технически стенд — это неймспейс (namespace) в кластере Kubernetes, то есть изолированный участок кластера со своим набором запущенных приложений. Слово «неймспейс» встречается в адресах страниц, но в интерфейсе и в этой документации используется более привычное «стенд».

Пример: стенд prj-demo в кластере для тестирования — это отдельная копия платформы, на которой можно проверять изменения, не задевая остальных.

Приложение платформы

Приложение платформы (в интерфейсе — «Сервис», «Компонент») — одна из составных частей платформы: интерфейс пользователя, серверный сервис, служебный компонент. Платформа собрана из нескольких таких приложений, и на каждом стенде они крутятся все вместе.

У приложения есть имя, набор настраиваемых параметров и версия, выложенная на конкретном стенде. Справочник приложений ведёт администратор — приложения одинаковы для всех стендов, различаются только их версии и настройки.

Конфигурация стенда

Конфигурация стенда — все настройки приложений на этом стенде. Каждая настройка — это отдельный параметр: галочка, строка, число, номер версии или выбор из списка.

У параметра два «этажа»:

  • значение по умолчанию — общее для всей платформы, одинаковое для всех стендов;
  • переопределение — значение, заданное именно для этого стенда.

Правило простое: если у стенда есть переопределение, работает оно; если нет — работает значение по умолчанию.

Версия приложения

Версия приложения — это тег образа, который выложен на стенде. Формально версия — такой же параметр конфигурации, как остальные, только вынесенный из общего списка настроек отдельно.

Действие над приложением

Действие над приложением — операция, которую можно запустить для конкретного приложения: собрать образ из ветки, собрать новую версию или просто указать уже готовый тег. Любое действие в итоге даёт тег образа — именно он и становится версией приложения на стенде.

Отсюда самый частый сценарий работы: вместо того чтобы вписывать версию руками, вы выбираете действие сборки из ветки, и PDM сам подставит тег собранного образа в настройки стенда.

Сборка и пайплайн

Сборка — запуск подготовки образа приложения. PDM не собирает ничего сам: он запускает пайплайн в GitLab — заранее настроенную последовательность шагов, которая собирает код и публикует образ.

Пока пайплайн идёт, PDM периодически проверяет его состояние, поэтому шаг сборки может долго оставаться в состоянии «Выполняется» — это нормально. В интерфейсе у сборки есть ссылка на пайплайн и его лог.

Релиз

Релиз — одно согласованное изменение конфигурации, раскатываемое сразу на много стендов. В отличие от правки одного стенда, релиз обновляет значения по умолчанию (то есть касается всех), отдельно решает судьбу стендов с собственными переопределениями и завершается массовым применением изменений.

Релизы нумеруются и остаются в истории: видно, кто и когда его создал, что менялось и чем всё закончилось.

Рабочее пространство

Рабочее пространство — одна длительная операция, разложенная на шаги. Так выполняются выкладка настроек стенда, сборка и релиз. У каждого шага свой статус, данные и лог, а сами шаги связаны в схему: часть выполняется параллельно, а завершающий шаг ждёт, пока отработают все остальные.

Благодаря этому кнопка в интерфейсе срабатывает мгновенно, а за самой работой вы наблюдаете отдельно — и видите не «идёт или не идёт», а конкретный шаг, на котором операция находится.

Коротко

ТерминЧто это одной строкой
Кластерплощадка Kubernetes, внутри которой живут проекты и стенды
Проектгруппировка стендов внутри кластера, метка рядом с именем стенда
Стенд (неймспейс)отдельное окружение — один развёрнутый экземпляр платформы
Приложение платформысоставная часть платформы, работающая на стенде
Параметр конфигурацииодна настройка приложения на стенде
Значение по умолчаниюобщее значение параметра для всех стендов
Переопределениесобственное значение параметра на конкретном стенде
Версия приложениятег образа, выложенный на стенде
Действие над приложениемсборка ветки, сборка версии или установка готового тега
Сборка (пайплайн)подготовка образа приложения в GitLab
Релизсогласованное изменение конфигурации сразу на многих стендах
Рабочее пространстводлительная операция, разложенная на шаги

Одно понятие — разные подписи

Одно и то же понятие подписано на экране по-разному: приложение платформы встречается и как «Сервис» (вкладка «Сервисы»), и как «Компонент» (колонка в таблице конфигурации); рабочее пространство в разделе «Рабочие пространства» называется «Обработка»; стенд остаётся неймспейсом в адресах страниц. Это те же самые понятия.

Что дальше