Использование приложения оператором#

@startuml

left to right direction
'top to bottom direction

actor "Оператор сервиса" as Arrows


usecase "Обновление инструментов развертывания" as A
usecase "Запуск развертывания сервиса" as B
usecase "Диагностика ошибок развертывания" as C
usecase "Настройка параметров сервиса" as D
usecase "Настройка параметров стенда" as E


Arrows --> A
Arrows --> B
Arrows --> C
Arrows --> D
Arrows --> E

@enduml

Варианты использования Deploy tools оператором, показанные на Диаграмме вариантов использования реализованы в виде двух Jenkins jobs: Deploy job и Service job. Соответствие вариантов использования реализующим их Jenkins job показано в таблице:

Вариант использования

Реализующий Jenkins job

Диагностика ошибок развертывания

Deploy job

Запуск развертывания

Service job

Настройка параметров

Service job + Deploy job

Обновление инструментов развертывания

Service job

Настройка параметров стенда

Service job + Deploy job

Использование Deploy Job#

Deploy job осуществляет:

  • развертывание приложения на сервера WebSphere;

  • развертывание в OSE;

  • импорт параметров приложений;

  • обновление конфигурации инфраструктуры;

  • запуск job АФТ.

Описание сценариев Deploy job:

Наименование сценария (playbook)

Назначение

Входные параметры:
Глобальные настройки (common репозиторий)

Входные параметры:
Настройки в приложении (репозиторий приложения/дистрибутив)

Результаты выполнения

DB_UPDATE

Запуск liquibase скриптов для накатки изменений в БД

sqlReport:"true"/"false"
или
useFpVerification:"true"/"false"

Дистрибутив должен содержать:
…\package\db<директория с архивом>
distrib.yml → секция dbscripts – в ней указан путь до архива file: package/db/data-dictionary-db-app.zip (если имя дистрибутива в приложении будет изменено, но не обновлено в указанном пути будет выведена ошибка) и указан url до базы, используя переменные: jdbc:oracle:thin@{{EFS_DB_HOST}}:{{EFS_DB_PORT}}:{{EFS_DB_NAME}};
secret.yml → содержащий нужные пароли.

3 варианта развертывания на БД:
1. Через приложение верификации - useFpVerification:»true» ;
2. Dry run (генерация SQL отчетов - DryRun) – требует включенного параметра sqlReport:"true" ;
3. Обычная прокатка на базу.

NGINX_DEPLOY

Установка PL-компонентов приложения на группы серверов nginx/nginx_ui. Обычно используется для развертывания статики.

Не требуется

Статика nginx
package\pl\
distrib.yml → секция nginx_files
locations.conf
upstreams.conf
Формат заполнения distrib.yml
Обновление конфигурации нескольких nginx (для nginx_ii, nginx_ui,nginx_mm)

На сервера из группы nginx_ui будет скопирована статика из дистрибутива.

NGINX_II_DEPLOY/NGINX_MM_DEPLOY/
NGINX_EX_DEPLOY/NGINX_BH_DEPLOY/

Установка маршрутов на NGINX IAG
nginx_ii/nginx_mm/nginx_ex/nginx_bh

iag:"true"

distrib.yml
package\conf\global\iag\
package\conf\iag\
package\conf\limits
nginx-iag-routing.json.j2
nginx-iag-service.json.j2
nginx-iag-nodes.json.j2
nginx-iag-limits.fact

На сервера NGINX IAG будут настроены маршруты.

API_MANAGER_UPLOAD

Выгрузка в API менеджер.

Не требуется

package/conf/imports/apiManager/*

Выгрузка данных в API Manager.

WMQ_UPDATE_FP

Создание/обновление объектов WebSphere MQ

Не требуется

package\conf\config\parameters\mq_fp.<fp_name>.conf
package\conf\config\definitions\mq_fp.<fp_name>.json

На серверах MQ созданы очереди.

KAFKA_UPDATE_FP

Создание/обновление объектов Kafka

Не требуется

package\conf\config\parameters\kafka_fp.<fp_name>.conf
package\conf\config\definitions\kafka_fp.<fp_name>.json

На серверах Kafka созданы очереди.

WAS_STOP_SERVER

Остановка сервера WebSphere AS

Не требуется

distrib.yml, секции: applications.deploy_group

Миграция файлов для job автотестирования

WAS_CLEAR_TEMP

Удаление временных файлов WebSphere AS

Не требуется

distrib.yml, секции: applications.deploy_group

На серверах WAS будут очищены директории temp, config/temp .

WAS_FPI_COMMON

Настройка общих параметров WebSphere AS

Не требуется

distrib.yml, секции: applications.config_fp_name
package\conf\config\parameters\websphere.<fp_name>.conf
package\conf\config\definitions\websphere.<fp_name>.json

На сервера WAS будут настроены бщие настройки (jvm и т.п.).

WAS_FPI_INSTALL

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

Не требуется

distrib.yml, секции: applications.config_fp_name

package\conf\config\parameters\<fp_name>.conf
package\conf\config\definitions\<fp_name>.json

На сервера WAS будут настроены ресурсы для приложения (datasource, wm CF и т.п.).

WAS_FPI_DEPLOY

Установка BH-компонентов приложения на WebSphere AS

Не требуется

package\bh\
distrib.yml, секция applications

На серверах WAS будут установлены приложения из дистрибутива.

WAS_START_SERVER

Запуск сервера WebSphere AS

Не требуется

distrib.yml, секция applications.deploy_group

Запуск серверов WAS

WAS_SMOKE

Запуск smoke тестов

"testsJob": "http://<Jenkins>.ru/job"

distrib.yml, секции:
applications.contextRoot
или
smoke_checks

На серверах WAS будут выполнены smoke тестов из дистрибутива (будут выполнены запросы на REST и поиск по паттернам FAIL/OK).

WAS_RUN_AUTOTEST

Запуск АФТ API

distrib.yml

Не требуется

Запуск Job автотестирование (UI).

WAS_RUN_UI_AUTOTEST

Запуск АФТ UI

Не требуется

Не требуется

Запуск Job автотестирование

MIGRATION_FP_CONF

Миграция конфигурационных файлов приложения

Не требуется

Не требуются

Миграция конфигурационных файлов дистрибутива приложения в репозиторий приложения.
1. Миграция version.conf (заполнение version.conf) в части скриптов.
2. Миграция ветки limits (файла nginx-iag-limits.fact).
3. Миграция конфигурационных файлов дистрибутива приложения.

MIGRATION_AFT_CONF

Миграция тестовых данных приложения и настроек АФТ

Не требуется

Не требуется

Миграция тестовых данных приложения и настроек АФТ.

FP_CONF_CHECK

Проверка конфигурационных файлов приложения

Не требуется

Не требуются

fp_conf_check , проверка конфигурации дистрибутива приложения

При включенном параметре sqlReport:"true" происходит генерация отчета liquibase для последующей прокатки сценария (playbook) DB_UPDATE.

NGINX_EAG_UPLOAD

Выгрузка в Реестр сервисов

Не требуется

Не требуется

Выгрузка в Реестр сервисов.

OPENSHIFT_CHECK

Проверка доступности установки в OpenShift

Не требуется

Не требуется

Проверка доступности установки в OpenShift.

OPENSHIFT_UPDATE_REPLICAS

Изменение установленного количества реплик в OpenShift

Не требуется

Не требуется

Изменение установленного количества реплик в OpenShift.

OPENSHIFT_INGRESS_EGRESS_DEPLOY

Установка ingress/egress в OpenShift

Не требуется

Не требуется

Установка ingress/egress в OpenShift.

DEBUG

Режим Debug для Jenkins job

Не требуются

Не требуются

Расширенный вывод лог-файлов Ansible прокатки Jenkins job.

Важно

Нельзя запускать одновременно несколько типов развертывания (WAS + OSE, VM + WAS и т.д.). В моменте можно выполнить развертывание только на одну инфраструктуру.

Использование Service job#

Service job осуществляет миграцию кодовой базы Pipeline на стенд и общих параметров Common репозитория на стенд.

Описание сценариев Service job:

  1. MERGE — миграция кода/библиотек Pipeline, Scheduler, а так же миграция файла environment_<segment>.json / миграция общих настроек среды / миграция кода/библиотек Pipeline автотестов.

  2. MIGRATION_SUBSYSTEMS — миграция файла subsystems_<segment>.json.

  3. JOBS_RECONF_ALL — реконфигурация нескольких Jenkins jobs.

  4. WAS_FPI_UTIL_JOB_CONF — реконфигурация Jenkins job.

  5. MERGE_COMMON_REPO — схлопывание (миграция) блочных репозиториев в общий.

  6. SOFT_COMMON_MIGRATION — аналогично стандартной миграции Common, за исключением того, что изменения не сразу переносятся в ветку, а создается Pull Request с набором изменений, которые были произведены в результате миграции.