Разделы «Создать микросервис» и «Микросервисы» группы «Разработка» предназначены для создания микросервисов из шаблонов и работы с ними. Микросервис создаётся из шаблона: портал создаёт репозиторий в GitLab, записывает в него файлы шаблона и регистрирует микросервис в каталоге.

Создание микросервиса

Мастер создания микросервиса открывается в разделе «Создать микросервис» или кнопкой «Создать микросервис» в разделе «Микросервисы». Мастер состоит из трёх шагов: «Шаблон», «Сервис» и «Параметры».

Для создания микросервиса требуется разрешение read:template-packs. Без него отображается сообщение «Недостаточно прав для просмотра галереи шаблонов.».

Шаг «Шаблон»

На шаге «Шаблон» выберите шаблон в галерее. Для каждого шаблона отображаются язык, последняя версия, теги и описание; если шаблоны получены из нескольких реестров, отображается и реестр шаблона.

Галерея фильтруется полем «Поиск по названию, языку или тегам», переключателем языков и списком «Источник». Переключатель языков отображается, если в галерее шаблоны на разных языках, а список «Источник» — если шаблоны получены из нескольких реестров.

Выбранный шаблон и его версия отображаются в нижней части шага. Нажмите «Далее».

Если галерея пуста, отображается сообщение «Шаблонов пока нет. Попросите администратора настроить реестр шаблонов.».

Шаг «Сервис»

На шаге «Сервис» заполните сведения о микросервисе:

ПолеОписание
«Название микросервиса»Отображаемое название микросервиса. От 3 до 64 символов
«Идентификатор микросервиса»Идентификатор в каталоге и название репозитория. От 3 до 64 символов: строчные латинские буквы, цифры и дефис, не в начале и не в конце. Заполняется по названию, пока вы не измените его вручную
«Версия шаблона»По умолчанию выбрана последняя доступная версия, отмеченная как «(рекомендуемая)»
«Система»Система, в состав которой войдёт микросервис
«Пространство в системе контроля версий»Группа GitLab, в которой будет создан репозиторий микросервиса
«Описание репозитория»Описание проекта в GitLab. Необязательное поле

В панели «Что будет создано» отображаются выбранные шаблон, версия, система, название, пространство и идентификатор. Нажмите «Далее».

Кнопка «Далее» недоступна, пока не заполнены обязательные поля. Если у выбранного пространства не задан идентификатор группы GitLab, кнопка также недоступна: обратитесь к администратору портала.

Если в каталоге нет систем, отображается сообщение «Нет доступных систем. Сначала создайте систему.».

Шаг «Параметры»

На шаге «Параметры» заполните параметры шаблона. Состав параметров задаёт автор шаблона: например, порт приложения, тип базы данных, включение метрик. Параметры, которые совпадают с данными шага «Сервис», например идентификатор микросервиса, в форме не отображаются и заполняются автоматически.

Параметры сложной структуры вводятся в формате JSON. При ошибке в JSON отображается сообщение «Некорректный JSON: {details}».

Если у шаблона нет параметров, отображается сообщение «У выбранного шаблона нет параметров.».

Нажмите «Создать микросервис». Откроется окно «Запустить процесс» с процессом создания; нажмите «Запустить».

Если для шаблона не настроен процесс создания, отображается сообщение «Для шаблона {template} не задан процесс создания микросервиса», и кнопка «Создать микросервис» недоступна. Обратитесь к администратору портала.

Результат создания

После запуска процесса мастер возвращается к первому шагу. Ход выполнения отображается в строке «Выполняются процессы» и в панели «Мои активности».

Процесс создания из набора данных «Реестр шаблонов микросервисов» выполняет следующие задачи:

  1. Создаёт проект в выбранной группе GitLab.
  2. Записывает в репозиторий файлы шаблона и файл .ddp/template.lock.yaml с версией шаблона и значениями параметров.
  3. Регистрирует микросервис в каталоге и связывает его с системой.

Микросервис появляется в разделе «Микросервисы» после завершения процесса.

Не удаляйте файл .ddp/template.lock.yaml из репозитория: по нему портал обновляет микросервис до новых версий шаблона.

Список микросервисов

Раздел «Микросервисы» показывает все микросервисы каталога.

В верхней части раздела отображаются показатели:

  • «Всего микросервисов» — число микросервисов в каталоге;
  • «Связанные системы» — число систем, в которые входят микросервисы;
  • «Проблемные» — число микросервисов, у которых проверка статуса вернула «С проблемами» или «Ошибка».

Таблица фильтруется полем «Поиск по имени или системе» и списками «Все домены» и «Все языки». Кнопка «Сбросить» очищает фильтры.

Колонки таблицы:

КолонкаСодержимое
«Микросервис»Название микросервиса и ссылка на репозиторий
«Владелец»Владелец сущности микросервиса
«Домен»Домен системы, в которую входит микросервис
«Система»Системы, в которые входит микросервис
«Язык»Язык микросервиса
«Окружения»Окружения, на которых развёрнут микросервис
«Состояние»Результат проверок статуса

В таблице отображается 10 микросервисов на странице. Нажмите на строку, чтобы открыть карточку микросервиса.

Карточка микросервиса

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

Вкладка «Справка»

На вкладке «Справка» отображаются сведения о микросервисе:

ПолеСодержимое
«Репозиторий»Ссылка на репозиторий
«Последняя поставка»Ветка, коммит, сообщение и автор последнего коммита. Если данные ещё не получены, — «Ещё не синхронизировано»
«Шаблон»Идентификатор шаблона, из которого создан микросервис, или «Нет»
«Версия»Текущая версия шаблона
«Владелец», «Команда владелец»Владелец и команда-владелец сущности
«Системы»Системы микросервиса
«Окружения»Окружения, кластеры и версии образа на каждом окружении
«Общие ресурсы»Общие ресурсы, подключённые к развёртываниям микросервиса

Ниже отображаются показатели «Открытые MR» и «Последний пайплайн» со статусом и ссылкой на пайплайн.

Вкладки «Пайплайны» и «MRs»

На вкладках «Пайплайны» и «MRs» отображаются виджеты, которые администратор настроил для карточки микросервиса, например пайплайны и merge request репозитория GitLab. Если виджет не настроен, на вкладке отображается сообщение «Раздел пока недоступен».

Вкладка «Процессы»

На вкладке «Процессы» отображаются процессы, привязанные к ресурсу микросервиса, и история их запусков. Запуск можно приостановить, возобновить, перезапустить, остановить или удалить. Таблица запусков устроена так же, как на вкладке «Процессы» страницы сущности: подробнее — в разделе «Отслеживание состояния».

Вкладка «Окружения»

На вкладке «Окружения» отображается таблица окружений, в которых развёрнут микросервис, со столбцами «Окружение», «Версия», «Кластер» и «URL». Кнопка «Обновить» перечитывает данные. URL строится по Ingress-ресурсам окружения: хост и путь маршрута. Если у хоста не указана схема, подставляется https://.

Обновление из шаблона

Когда выходит новая версия шаблона, из которого создан микросервис, на вкладке «Справка» карточки микросервиса отображается блок «Доступна версия {version}» с кнопкой «Обновить».

Чтобы обновить микросервис до новой версии шаблона:

  1. Откройте карточку микросервиса и нажмите «Обновить».
  2. В окне «Запустить процесс» нажмите «Запустить».
  3. Дождитесь завершения процесса. Процесс создаёт в репозитории ветку ddp/template-upgrade-<версия> с изменениями шаблона и открывает merge request.
  4. Проверьте изменения в merge request и примите его в GitLab.

После принятия merge request версия в поле «Версия» обновляется в течение нескольких минут, и блок «Доступна версия» исчезает.

Обновление изменяет только файлы, которые автор шаблона отметил как управляемые шаблоном, и не удаляет файлы из репозитория. Какие файлы изменяются, зависит от стратегии обновления шаблона.

Кнопка «Обновить» недоступна, если:

  • у вас нет прав на запуск процессов для микросервиса — «Недостаточно прав для запуска процессов на этой сущности.»;
  • обновление уже выполняется — «Процесс обновления шаблона уже выполняется для этого сервиса.»;
  • для шаблона не настроен процесс обновления — «Для шаблона {template} не задан процесс обновления. Задайте его в правилах маппинга главной, в действиях по шаблонам.».

Если для микросервиса включено автоматическое обновление, портал сам открывает merge request после выхода новой версии шаблона. Настройка автоматического обновления описана в разделе «Обновление из шаблона» руководства администратора.