Разделы «Создать микросервис» и «Микросервисы» группы «Разработка» предназначены для создания микросервисов из шаблонов и работы с ними. Микросервис создаётся из шаблона: портал создаёт репозиторий в GitLab, записывает в него файлы шаблона и регистрирует микросервис в каталоге.
Создание микросервиса
Мастер создания микросервиса открывается в разделе «Создать микросервис» или кнопкой «Создать микросервис» в разделе «Микросервисы». Мастер состоит из трёх шагов: «Шаблон», «Сервис» и «Параметры».
Для создания микросервиса требуется разрешение read:template-packs. Без него отображается сообщение «Недостаточно прав для просмотра галереи шаблонов.».
Шаг «Шаблон»
На шаге «Шаблон» выберите шаблон в галерее. Для каждого шаблона отображаются язык, последняя версия, теги и описание; если шаблоны получены из нескольких реестров, отображается и реестр шаблона.
Галерея фильтруется полем «Поиск по названию, языку или тегам», переключателем языков и списком «Источник». Переключатель языков отображается, если в галерее шаблоны на разных языках, а список «Источник» — если шаблоны получены из нескольких реестров.
Выбранный шаблон и его версия отображаются в нижней части шага. Нажмите «Далее».
Если галерея пуста, отображается сообщение «Шаблонов пока нет. Попросите администратора настроить реестр шаблонов.».
Шаг «Сервис»
На шаге «Сервис» заполните сведения о микросервисе:
| Поле | Описание |
|---|---|
| «Название микросервиса» | Отображаемое название микросервиса. От 3 до 64 символов |
| «Идентификатор микросервиса» | Идентификатор в каталоге и название репозитория. От 3 до 64 символов: строчные латинские буквы, цифры и дефис, не в начале и не в конце. Заполняется по названию, пока вы не измените его вручную |
| «Версия шаблона» | По умолчанию выбрана последняя доступная версия, отмеченная как «(рекомендуемая)» |
| «Система» | Система, в состав которой войдёт микросервис |
| «Пространство в системе контроля версий» | Группа GitLab, в которой будет создан репозиторий микросервиса |
| «Описание репозитория» | Описание проекта в GitLab. Необязательное поле |
В панели «Что будет создано» отображаются выбранные шаблон, версия, система, название, пространство и идентификатор. Нажмите «Далее».
Кнопка «Далее» недоступна, пока не заполнены обязательные поля. Если у выбранного пространства не задан идентификатор группы GitLab, кнопка также недоступна: обратитесь к администратору портала.
Если в каталоге нет систем, отображается сообщение «Нет доступных систем. Сначала создайте систему.».
Шаг «Параметры»
На шаге «Параметры» заполните параметры шаблона. Состав параметров задаёт автор шаблона: например, порт приложения, тип базы данных, включение метрик. Параметры, которые совпадают с данными шага «Сервис», например идентификатор микросервиса, в форме не отображаются и заполняются автоматически.
Параметры сложной структуры вводятся в формате JSON. При ошибке в JSON отображается сообщение «Некорректный JSON: {details}».
Если у шаблона нет параметров, отображается сообщение «У выбранного шаблона нет параметров.».
Нажмите «Создать микросервис». Откроется окно «Запустить процесс» с процессом создания; нажмите «Запустить».
Если для шаблона не настроен процесс создания, отображается сообщение «Для шаблона {template} не задан процесс создания микросервиса», и кнопка «Создать микросервис» недоступна. Обратитесь к администратору портала.
Результат создания
После запуска процесса мастер возвращается к первому шагу. Ход выполнения отображается в строке «Выполняются процессы» и в панели «Мои активности».
Процесс создания из набора данных «Реестр шаблонов микросервисов» выполняет следующие задачи:
- Создаёт проект в выбранной группе GitLab.
- Записывает в репозиторий файлы шаблона и файл
.ddp/template.lock.yamlс версией шаблона и значениями параметров. - Регистрирует микросервис в каталоге и связывает его с системой.
Микросервис появляется в разделе «Микросервисы» после завершения процесса.
Не удаляйте файл .ddp/template.lock.yaml из репозитория: по нему портал обновляет микросервис до новых версий шаблона.
Список микросервисов
Раздел «Микросервисы» показывает все микросервисы каталога.
В верхней части раздела отображаются показатели:
- «Всего микросервисов» — число микросервисов в каталоге;
- «Связанные системы» — число систем, в которые входят микросервисы;
- «Проблемные» — число микросервисов, у которых проверка статуса вернула «С проблемами» или «Ошибка».
Таблица фильтруется полем «Поиск по имени или системе» и списками «Все домены» и «Все языки». Кнопка «Сбросить» очищает фильтры.
Колонки таблицы:
| Колонка | Содержимое |
|---|---|
| «Микросервис» | Название микросервиса и ссылка на репозиторий |
| «Владелец» | Владелец сущности микросервиса |
| «Домен» | Домен системы, в которую входит микросервис |
| «Система» | Системы, в которые входит микросервис |
| «Язык» | Язык микросервиса |
| «Окружения» | Окружения, на которых развёрнут микросервис |
| «Состояние» | Результат проверок статуса |
В таблице отображается 10 микросервисов на странице. Нажмите на строку, чтобы открыть карточку микросервиса.
Карточка микросервиса
Карточка микросервиса открывается в правой панели. В заголовке отображаются название, состояние, домен и язык микросервиса.
Вкладка «Справка»
На вкладке «Справка» отображаются сведения о микросервисе:
| Поле | Содержимое |
|---|---|
| «Репозиторий» | Ссылка на репозиторий |
| «Последняя поставка» | Ветка, коммит, сообщение и автор последнего коммита. Если данные ещё не получены, — «Ещё не синхронизировано» |
| «Шаблон» | Идентификатор шаблона, из которого создан микросервис, или «Нет» |
| «Версия» | Текущая версия шаблона |
| «Владелец», «Команда владелец» | Владелец и команда-владелец сущности |
| «Системы» | Системы микросервиса |
| «Окружения» | Окружения, кластеры и версии образа на каждом окружении |
| «Общие ресурсы» | Общие ресурсы, подключённые к развёртываниям микросервиса |
Ниже отображаются показатели «Открытые MR» и «Последний пайплайн» со статусом и ссылкой на пайплайн.
Вкладки «Пайплайны» и «MRs»
На вкладках «Пайплайны» и «MRs» отображаются виджеты, которые администратор настроил для карточки микросервиса, например пайплайны и merge request репозитория GitLab. Если виджет не настроен, на вкладке отображается сообщение «Раздел пока недоступен».
Вкладка «Процессы»
На вкладке «Процессы» отображаются процессы, привязанные к ресурсу микросервиса, и история их запусков. Запуск можно приостановить, возобновить, перезапустить, остановить или удалить. Таблица запусков устроена так же, как на вкладке «Процессы» страницы сущности: подробнее — в разделе «Отслеживание состояния».
Вкладка «Окружения»
На вкладке «Окружения» отображается таблица окружений, в которых развёрнут микросервис, со столбцами «Окружение», «Версия», «Кластер» и «URL». Кнопка «Обновить» перечитывает данные.
URL строится по Ingress-ресурсам окружения: хост и путь маршрута. Если у хоста не указана схема, подставляется https://.
Обновление из шаблона
Когда выходит новая версия шаблона, из которого создан микросервис, на вкладке «Справка» карточки микросервиса отображается блок «Доступна версия {version}» с кнопкой «Обновить».
Чтобы обновить микросервис до новой версии шаблона:
- Откройте карточку микросервиса и нажмите «Обновить».
- В окне «Запустить процесс» нажмите «Запустить».
- Дождитесь завершения процесса. Процесс создаёт в репозитории ветку
ddp/template-upgrade-<версия>с изменениями шаблона и открывает merge request. - Проверьте изменения в merge request и примите его в GitLab.
После принятия merge request версия в поле «Версия» обновляется в течение нескольких минут, и блок «Доступна версия» исчезает.
Обновление изменяет только файлы, которые автор шаблона отметил как управляемые шаблоном, и не удаляет файлы из репозитория. Какие файлы изменяются, зависит от стратегии обновления шаблона.
Кнопка «Обновить» недоступна, если:
- у вас нет прав на запуск процессов для микросервиса — «Недостаточно прав для запуска процессов на этой сущности.»;
- обновление уже выполняется — «Процесс обновления шаблона уже выполняется для этого сервиса.»;
- для шаблона не настроен процесс обновления — «Для шаблона {template} не задан процесс обновления. Задайте его в правилах маппинга главной, в действиях по шаблонам.».
Если для микросервиса включено автоматическое обновление, портал сам открывает merge request после выхода новой версии шаблона. Настройка автоматического обновления описана в разделе «Обновление из шаблона» руководства администратора.