Entaxy CI/CD

CI/CD - система непрерывной интеграции и развертывания на платформе Entaxy ION.

Интерфейс CI/CD

  • Entaxy CI/CD:

    cicd interface
    • Applications (приложение, которое разворачивается в целевой среде);

      • default (хранилище, используемое для сохранения приложения и связанных с ним файлов и ресурсов).

    • Projects (набор конфигураций, объектов и прочих ресурсов необходимых для сборки приложения);

      • default (хранилище, используемое для сохранения проекта и связанных с ним файлов и ресурсов).

Проект

Создание проекта

  1. Находясь в разделе Projects, нажмите кнопку Create Project.

    create project button
    create project window

    Откроется окно с перечнем параметров:

    • * Name: обязательное поле для указания названия проекта;

    • Group: необязательное поле для указания названия группы, в которой будет размещен создаваемый проект (по умолчанию entaxy.applications);

    • * Storage: обязательное поле выбора используемого хранилища.

    • * Version: обязательное поле для указания версии проекта. По умолчанию устанавливается версия 1.0.0

  2. После заполнения всех необходимых полей нажмите кнопку Save, чтобы сохранить проект.

    Созданный проект появится в дереве проектов.

    project table
    • Name - номер версии проекта;

    • Build Available - наличие билда для данной версии;

    • Actions - кнопка 'Remove', для удаления выбранной версии.

Управление версиями проекта

При создании проекта в дереве проектов автоматически создается версия, указанная при его создании. Для управления версиями проекта выберите его и перейдите к нужной версии.

project tree

Добавить версию проекта

Чтобы добавить новую версию, выберите нужный проект и перейдите на вкладку Versions, затем нажмите кнопку Add Version и воспользуйтесь одним из двух предложенных способов:

project addversion button
  • Add Version From Scratch - добавить новую версию с нуля;

    project createversion

    Created version: введите номер версии в формате x.x.x (номер версии должен иметь форму х.х.х, где х - неотрицательные целые числа и не должны содержать ведущих нулей) и нажмите кнопку Save.

  • Add Version From Existent - создать новую версию, используя уже существующую версию как шаблон для внесения изменений и добавления новых данных.

    create version prototype

    Created version: введите номер версии в формате x.x.x (номер версии должен иметь форму х.х.х, где х - неотрицательные целые числа и не должны содержать ведущих нулей);
    Prototype Version: выберите из выпадающего списка, на основе какой версии будет создана новая версия и нажмите кнопку Save.

Удалить версию проекта

Чтобы удалить созданную версию, выберите нужный проект и нажмите кнопку "Remove" напротив версии, которую нужно удалить. Подтвердите удаление, нажав Confirm или отмените удаление, нажав Cancel.

versions remove

Добавление объектов в версию проекта

  1. Для добавления объектов перейдите на вкладку Project в выбранной версии проекта и нажмите кнопку Add Objects (в открывшемся окне вы увидите список доступных объектов с чек-боксами для выбора, их имена и типы).

    add objects
  2. Отметьте необходимые объекты и нажмите кнопку Add.

    add objects check
    1. После этого вам может быть предложено добавить объекты и ресурсы, связанные с добавляемыми объектами. Вы можете отметить необходимые объекты и добавить, их нажав на кнопку "Add"", или нажать "Skip", чтобы пропустить.

      add objects skip

      Связанные объекты пропущенные на этом шаге можно будет добавить позже. Для этого выберите объект и нажмите кнопку "Add Related".

      addrelated
    2. При добавлении объекта в проект автоматически добавятся зависимые от него объекты и ресурсы в статусе REQUIRED, необходимые для корректного функционирования добавляемого объекта.

      Если среди зависимых объектов присутствуют объекты являющиеся инфраструктурными компонентами платформы (имеющие признак platform/system), они будут иметь неизменяемый статус IGNORED.
      object required

      Эти объекты можно либо включить в проект, либо проигнорировать. Для изменения статуса объекта отметьте его чек-бокс и нажмите кнопку Include Selected, чтобы включить объект в проект. В этом случае в столбцах Required и Ignored отобразится иконка в виде крестика, указывающая, что объект добавлен в проект, но не требуется на целевом окружении и не проигнорирован.

      При нажатии на кнопку Ignore Selected объект будет проигнорирован в проекте. В этом случае в столбцах Required и Ignored отобразится иконка с зеленой галочкой, указывая на то, что проигнорированный объект требуется на целевом окружении и исключен из проекта.

      При нажатии на кнопку Remove Selected объект будет удален из проекта, если он не является обязательным для других объектов. В случае, если объект требуется для другого, не удаляемого объекта, его статус изменится на Required (если до этого он был Ignored или Included) и появится оповещение с указанием зависимого объекта и его удаление будет возможно только вместе с зависимым объектом.

    object buttons
    • Include Selected - включить выбранные объекты в проект;

    • Ignore Selected - проигнорировать выбранные объекты;

    • Remove Selected - удалить выбранные объекты из проекта.

      Список добавляемых объектов представлен в следующем виде:

      • Status: отображает текущее состояние объектов:

        status objects
        Обозначение Название Описание

        icon check

        INCLUDED

        Означает, что объект будет добавлен в проект.

        icon required

        REQUIRED

        Указывает на необходимость данного объекта в проекте. Требуется обязательное определение его статуса (IGNORED/INCLUDED).

        icon ignor

        IGNORED

        Означает, что объект будет проигнорирован (в случае игнорирования объекта предполагается, что этот объект находится на конечном окружении).

      • Id: Уникальный идентификатор объекта;

      • Type: Тип объекта;

      • Scope: Окружение объекта;

      • Required: Указывает, является ли объект необходимым для проекта;

      • Ignored: Указывает, будет ли объект проигнорирован.

  3. Сделав все необходимые изменения выполняем Commit и осуществляем сборку билда нажатием на кнопку Build.

Сборка проекта невозможна, если среди объектов присутствует объект со статусом REQUIRED.

При сборке и развертывании приложения необходимо учитывать использование сертификатов и ключей, хранящихся в keystores, для обеспечения безопасного взаимодействия между компонентами системы. Поскольку автоматическое отслеживание алиасов в keystores не поддерживается, важно вручную проверить и убедиться, что все необходимые алиасы правильно настроены в целевом окружении.

Работа с билдом

После успешной сборки проекта мы получаем готовый билд.
В дереве проектов появится раздел build info.

build info

Каждая вкладка раздела build info содержит информацию о: названии проекта, его версии и Maven URL (который используется в разделе applications для импорта билда).

Кроме того, имеются следующие варианты экспорта билда:

export repository

Вы можете экспортировать его в файл или в один из репозиториев.

Описание вкладок:

  1. Items:
    Объекты входящие в билд с указанием: id, type и component.

    build items
  2. Requirements
    Объекты, которые были проигнорированы при сборке проекта (предполагается, что они присутствуют на конечном окружении).

    build requirments
  3. Components
    Перечень компонентов с указанием id, type и priority.

    build components

Системные репозитории

На интеграционной платформе по умолчанию доступны три системных репозитория (entaxy-local, entaxy-shared, entaxy-updates). Настройка параметров репозиториев осуществляется в конфигурационном файле ru.entaxy.esb.artifact.repositories.cfg.

  • Локальный репозиторий (entaxy-local):
    Путь для хранения артефактов указывается в параметре local.location:
    local.location=${karaf.data}/local-repo

  • Общий кластерный репозиторий (entaxy-shared):
    Путь к общему репозиторию указывается в параметре shared.location
    shared.location=${karaf.home}/shared-repo

  • Репозиторий обновлений (entaxy-updates):
    URL репозитория обновлений указывается в параметре updates.remotes
    updates.remotes=https://nexus.entaxy.ru/nexus/repository/entaxy-public/

Подробнее о системных репозиториях вы можете прочитать здесь: Репозитории Entaxy ION

Кастомные репозитории

Подробнее о создании кастомных репозиториев можно прочитать здесь.

Приложение

Создание приложения

  • Находясь в разделе Applications, нажмите кнопку Import.

    • Откроется окно с перечнем параметров:

    applications import

Выберите один из предложенных вариантов импорта собранного проекта.

  • Import From File - импортировать приложение из .jar файла:

    import file
  • Storage - выбрать используемое хранилище;

  • File - перетащите файл со сборкой проекта сюда или нажмите, чтобы выбрать его из файловой системы.

    • Import From Repository - импортировать приложение по ссылке из репозитория.

      import repository
    • Storage - выбрать используемое хранилище;

    • Maven url - доступный в разделе build info дерева проектов.

      maven url

      После успешного импорта сборки проекта в дереве приложений отобразится добавленное приложение.

      applications info
    • Name - название приложения;

    • Versions & Revisions - номер версии/номер последней ревизии/номер установленной ревизии.

      Для управления созданным приложением выберите его в дереве приложений.

Добавление ревизий приложения

После успешного импорта в дереве проектов автоматически появляется соответствующее приложение с неизменяемой нулевой ревизией. Текущий статус ревизии отображается рядом с номером.

Основное различие между ревизиями заключается в их конфигурации.

revision status
  • Для добавления новой ревизии приложения выберите необходимую версию приложения в дереве приложений и находясь на вкладке Application нажмите кнопку Add Revision:

    add revision

    Для добавления ревизии воспользуйтесь одним из предлагаемых способов:

    • Add Revision - добавить новую ревизию (новая ревизия будет создана на основе последней);

    • Add Revision From Existent - добавить новую ревизию на основе существующей (выберите нужную ревизию из выпадающего списка).

      На вкладке Application так же представлена информация о приложении.

      1. Таблица Items - содержит список объектов включенных в приложение:
        Revisionable - определяет, может ли объект быть изменен или обновлен в рамках ревизии.
        Editable - указывает на возможность редактирования конфигурации объекта.

        revisionable editable
      2. Таблица Requirements - содержит список проигнорированных объектов, где поле Status показывает их наличие на конечном окружении.

        requirments status

Изменение конфигурации

Для объектов с типом CONFIG предусмотрена поддержка редактирования конфигурации.

Нулевая ревизия является неизменяемой, для внесения изменений в конфигурации необходимо создать новую ревизию.

application config
  1. Чтобы внести изменения в конфигурацию, перейдите к нужной ревизии приложения в дереве приложений (не нулевой). И нажмите кнопку "Configure". После этого статус ревизии изменится на - [CONFIGURED].

    revision configured
  2. Установка локальных значений для выбранных файлов конфигурации: отметьте необходимые файлы конфигурации с помощью чек-боксов и нажмите кнопку "Set Local Values" (Установить локальные значения) для автоматического применения настроек.

    setlocalvalues
  3. Каждый файл конфигурации можно редактировать отдельно и для него доступны следующие опции:

    • Clear Changes - отменяет внесенные изменения и возвращает файл к исходному состоянию;

    • Copy Local Values - копирует текущие локальные значения для файла конфигурации;

    • Save Changes - сохраняет внесенные изменения в файл конфигурации;

  4. Внесите необходимые изменения в выбранный объект, а затем нажмите кнопку "Save Changes".

Деплой и установка приложения

  1. Для развертывания и установки выбранной ревизии приложения нажмите на кнопки Deploy (статус ревизии изменится на - [DEPLOYED])

    revision deploy
  2. И Install (статус ревизии изменится на - [INSTALLED]) соответственно.

    revision install

Удаление приложения

Для удаления установленного приложения выберите соответствующую установленную ревизию и нажмите кнопку Uninstall.

uninstall

Приложение будет удалено из целевой среды, и статус ревизии будет изменен на UNINSTALLED. Приложение со статусом UNINSTALLED можно повторно установить нажав на кнопку Install.

uninstalled

Видео: "Реализация переноса между окружениями - CI/CD"