Комплект приложения. Комплект группы
Contents
Комплект приложения. Комплект группы#
Комплект приложений (Appkit)#
Комплект приложений указывается для группы ресурсов и определяет перечень артефактов, необходимых для разворачивания системы Global ERP:
Дистрибутив сервера приложений Global ERP (globalserver)
Образ прикладного решения (applib)
Набор конфигураций для сервисов кластера (profile)
Опционально в комплект приложений также входит:
Исходный код для отладки прикладного решения (appsrc)
Комплект приложений хранится на системном хранилище в виде zip-архивов (globalserver.zip, applib.zip, profile.zip и, опционально, appsrc.zip) вместе с хэш-суммами, которые могут подготавливаться утилитой nscli.
Путь к комплекту приложений на системном хранилище и хэш-суммы также хранятся в ConfigMap группы ресурсов, что используется подами серверов приложения для определения текущей версии комплекта приложений.
Изменить комплект приложений можно при помощи команд:
nsctl: ./resgroup.sh switch_appkit
nscli: ./appkit.sh switch
Дистрибутив сервера приложений (globalserver)#
Предоставляется вендором.
Образ прикладного решения (applib)#
Формируется во время сборки прикладного проекта.
Набор конфигураций для сервисов кластера (profile)#
Профиль (profile) используется контейнерами для конфигурации служб. Внутри архива лежат директории, названия которых соответствуют конфигурируемой службе. Внутри каждой такой директории в свою очередь лежат каталоги статических файлов (static
) и шаблонов (template
).
Некоторые конфигурационные файлы можно свободно редактировать, такие обычно поставляются в nscli в папке default/profile
, которая используется утилитой для создания профиля по умолчанию.
В профиле с шаблонами конфигурационных файлов находятся:
Конфигурация сервера приложений
globalserver/template/config/global3.config.xml
Конфигурация сборщика телеметрии
globalserver/template/config/otel-sdk.config.yaml
иglobalserver/template/config/otel-globalserver.config.yaml
Конфигурация менеджера заданий
globalscheduler/template/config/quartz.properties
Конфигурация проектных настроек системных логов
globalscheduler/template/config/logback-LoggerContext-ext.xml
Конфигурация проектных настроек логов сессии
globalscheduler/template/config/logback-LoggerContext-session-ext.xml
Исходный код для отладки прикладного решения (appsrc)#
Внимание
Касается предстоящей версии 5.0
Вместе с образом прикладного решения (applib) могут формироваться и исходные коды проекта (appsrc), необходимые для облачной отладки прикладного решения.
Состояния комплекта приложений#
Комплект приложений бывает в трех состояних:
stopped
- остановлен, сервера приложений и балансировщик не работаютstarted
- запущен, сервера приложений и балансировщик работают в нормальном режимеdrained
- осушен, сервера приложений работают в служебном режиме (то есть пользователи не могут подключиться к серверу), балансировщик работает, как обычно
Переключение состояний возможно при помощи команд:
nsctl:
nscli:
Комплект группы (Groupkit)#
Комплект группы указывается для группы ресурсов и определяет перечень вспомогательных артефактов:
Архив с дополнительными библиотеками (libs)
Файлы JDK для переопределения (java)
Вы можете использовать java для добавления хранилища собственных сертификатов cacerts: добавьте их в комплект группы по пути java/jre/lib/security/cacerts
.
Комплекту группы также хранится на системном хранилище, а путь к ним - в ConfigMap группы ресурсов, однако хэши не учитываются. Изменения в комплекте группы требуют перезапуска всех подов.
Обычно комплект группы не требуется.
Переключить комплект группы можно командой nsctl ./resgroup.sh switch_groupkit
.
Управление комплектами#
Управление комплектами выполняется при помощи команды nscli ./appkit.sh
Создать комплект с минимальным профилем#
Создадим комплект с пользовательским профилем по умолчанию в директории workspace/kit
.
./appkit.py prepare_profile --appkit-dir workspace/kit
Получаем следующую структуру:
workspace/kit
└── profile
├── globalscheduler
│ └── template
│ └── config
│ └── quartz.properties
└── globalserver
└── template
└── config
├── global3.config.xml
├── logback-LoggerContext-ext.xml
└── logback-LoggerContext-session-ext.xml
Упаковать комплект и пересчитать хэши#
Давайте добавим компонентов комплекта и упакуем комплект в директории workspace/kit
.
Новая структура комплекта:
workspace/kit
├── applib.zip
├── globalserver.zip
├── java
│ └── jre
│ └── lib
│ └── security
│ └── cacerts
└── profile
├── globalscheduler/...
└── globalserver/...
Примечание
Как можно заметить, в комплекте лежат дистрибутивы globalserver.zip и applib.zip, а также профиль и файлы Java в отдельных папках. Итоговый комплект можно использовать и как комплект приложения, и как комплект группы.
Выполним:
./appkit.py refresh_hash --source workspace/kit
Все компоненты комплекта, хранящиеся в отдельной папке, теперь упакованы в zip-архивы. Рядом с zip-архивами лежат файлы со значениями хэш-сумм.
Отправить комплект на системное хранилище#
Давайте отправим этот комплект на системное хранилище по пути mykit/v1
.
./appkit.py push --namespace my-namespace --source workspace/kit --destination mykit/v1
Совет
Предварительно запускать ./appkit.py refresh_hash
необязательно, упаковка и расчет контрольных сумм произойдет и при запуске ./appkit.py push
.
Теперь вы должны увидеть этот комплект в контейнере nsctl в папке ~/nsctl/workspace/mnt/sys/mykit/v1
.
Обновить GlobalERP#
Сменим комплект приложения и обновим базу данных.
./appkit.py switch_and_upgrade --namespace my-namespace --resgroup my-resgroup --remote_appkit mykit/v1
Внимание
После выполнения команды, комплект приложений остается в осушенном состоянии.
Включить GlobalERP#
Сделаем GlobalERP снова доступной для пользователей через вывод комплекта приложений из осушенного состояния.
./appkit.py start --namespace my-namespace --resgroup my-resgroup