Облачная платформаEvolution

Концепции сервиса Workflow Studio


В этом разделе вы найдете описание принципов устройства и работы сервиса Workflow Studio.

Workflow Studio — платформа Cloud.ru для автоматизации инженерных задач в облаке. Она включает три инструмента: Workflows, Pipelines и Services.

Инструменты платформы

Workflows

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

Pipelines

Редактор конвейеров сборки и доставки. Используется для классического CI/CD: получение кода, сборка, тесты, развертывание по стадиям и управление джобами.

Services

Инструмент для развертывания приложений из Git-репозиториев. Забирает код, собирает контейнерный образ и публикует приложение по доменному имени без ручной настройки инфраструктуры.

Как работает сервис Pipelines

Работа сервиса Pipelines строится вокруг сценариев, которые описываются в виде YAML-конфигурации и хранятся в репозитории кода. Когда происходит запуск сценария, система выделяет ресурсы в инфраструктуре выполнения, например в легковесной среде Container Apps или полноценном кластере Managed Kubernetes.

Подробнее о Container Apps.

Подробнее о Managed Kubernetes.

Сам процесс выполнения сценария делится на последовательные стейджи (Stage) — логические этапы конвейера.

Внутри каждого стейджа находятся джобы (Job) — единицы выполнения, которые могут работать параллельно. То, какое именно действие выполнит джоба, определяет коннектор (например сборка Docker-образа, выполнение HTTP-запроса или bash-скрипта).

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

Ниже описана каждая сущность системы.

Сценарий

Сценарий — основная сущность Workflow Studio. Это автоматизированный процесс, описанный в .yml-файле. Он хранится в репозитории Repo или в вашем собственном репозитории. Сценарий состоит из стейджей, каждый из которых содержит одну или несколько джобов.

Стейдж (Stage)

Стейдж (Stage) — логический этап сценария, объединяющий группу джобов. Стейджи выполняются последовательно: следующий стейдж запускается только после успешного завершения предыдущего.

Атрибут

Тип

Описание

name

string

Уникальное имя стейджа

job

array

Список джобов внутри стейджа

Джоба (Job)

Джоба (Job) — единица выполнения внутри стейджа. Каждая джоба содержит один коннектор с его настройками, а джобы внутри одного стейджа могут выполняться параллельно.

Атрибут

Тип

Описание

name

string

Уникальное имя джобы.

type

string

Тип коннектора.

spec

object

Конфигурация коннектора — набор атрибутов зависит от type.

Коннектор

Коннектор определяет тип шага в джобе и способ выполнения задачи. Workflow Studio поддерживает несколько типов коннекторов, список которых постоянно пополняется.

Bash-коннектор

Запускает произвольный bash-скрипт внутри контейнера. Может работать как с привязкой к репозиторию, так и без нее.

bash-con

Атрибут

Тип

Описание

script

string

Shell-команды для выполнения, поддерживает многострочный ввод.

repository_id

UUID

ID репозитория, если нужен доступ к коду во время выполнения.

branch

string

Ветка репозитория, указывается вместе с repository_id.

HTTP-коннектор

Отправляет HTTP-запрос к внешнему API или сервису. Ответ можно сохранять в переменные для использования в следующих джобах.

http-con

Атрибут

Тип

Описание

url

string

URL эндпоинта, поддерживает шаблоны {{.VAR}}.

method

string

HTTP-метод: get, post, put, delete.

body

string

Тело запроса, поддерживает подстановку переменных.

headers

array

Список HTTP-заголовков, [] — без дополнительных заголовков.

Build & Push коннектор

Собирает Docker-образ по указанному Dockerfile и публикует его в реестр Artifact Registry. Этот коннектор позволяет автоматизировать процесс упаковки приложения перед его развертыванием.

buildandpush

Атрибут

Тип

Описание

destination

string

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

repository_id

UUID

ID репозитория с исходным кодом.

branch

string

Ветка репозитория для сборки.

dockerfile

string

Путь к Dockerfile относительно корня репозитория.

registry_credentials

array

Учетные данные для реестра, []— использовать данные по умолчанию.

Container Apps коннектор

Разворачивает или обновляет контейнерное приложение в сервисе Container Apps. Это удобный способ быстрого деплоя без необходимости настраивать сложную инфраструктуру.

contapp-con

Атрибут

Тип

Описание

name

string

Название приложения в Container Apps.

container-name

string

Имя контейнера внутри приложения.

image

string

Docker-образ для деплоя, поддерживает шаблоны.

port

integer

Порт, на котором слушает контейнер.

Helm Deploy коннектор

Разворачивает или обновляет приложение, используя Helm Chart. Развертывание происходит в кластере Managed Kubernetes.

helmdeploy-con

Атрибут

Тип

Описание

name

string

Название деплоя в кластере.

image

string

Docker-образ для деплоя.

replicas

integer

Количество реплик пода.

config

string

Kubeconfig или конфигурация деплоя.

Function коннектор

Запускает произвольный код на поддерживаемом языке программирования. Код функции может обращаться к глобальным данным сценария через Load/Save без внешнего хранилища.

function-con

Атрибут

Тип

Описание

language

string

Язык выполнения, поддерживается go.

code

string

Исходный код функции, используйте YAML-оператор > для многострочного кода.

Переменные окружения

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

  • В полях коннекторов переменные указываются через синтаксис {{.VARIABLE_NAME}}.

  • В bash-скриптах переменные доступны как $VARIABLE_NAME.

env-var

Инфраструктура выполнения

Workflow Studio поддерживает два типа инфраструктуры для запуска джобов. Если при запуске сценария инфраструктура не выбрана, система автоматически предлагает запуск на Container Apps.

Тип инфраструктуры

Описание

Container Apps

Облегченная контейнерная среда. Включает free tier — бесплатный объем ресурсов для запуска сценариев без дополнительной оплаты.

Managed Kubernates

Полноценный кластер для сложных и ресурсоемких сценариев.

Максимальное количество одновременно запущенных джобов — 20 штук на пользователя для физических и юридических лиц.

Запуск сценария

Каждый запуск сценария — это отдельная сущность со своим уникальным run_id. Процесс запуска проходит через несколько статусов в зависимости от состояния выполнения задач.

Статус

Описание

pending

Запуск поставлен в очередь.

running

Джобы выполняются.

done

Все джобы завершены успешно.

failed

Один или несколько джобов завершились с ошибкой.

YAML-конфигурация

Каждый сценарий описывается в .yml-файле, хранящемся в репозитории. Общая иерархия конфигурации строится по принципу вложенности: pipeline → stages → stage → jobs → job.

yaml-conf

Корневой атрибут

Тип

Описание

pipeline

object

Корневой элемент конфигурации.

stages

array

Список стейджей сценария.

Services

Services — это часть Workflow Studio, которая отвечает за развертывание приложений из Git-репозитория в Container Apps. Вместо того чтобы описывать процесс деплоя в сценарии, можно создать сервис и запустить деплой из интерфейса Services.

Основные сущности Services:

Сервис

Сервис — это описание приложения, которое разворачивается в Container Apps. В сервисе указаны репозиторий, ветка и настройки развертывания. Один проект Workflow Studio может содержать несколько сервисов.

Деплой

Деплой — это запуск процесса развертывания сервиса. При деплое Workflow Studio забирает код из указанной ветки, собирает контейнерный образ и разворачивает его в Container Apps. Каждый запуск деплоя сохраняется в истории.

Статусы деплоя

Статус показывает текущее состояние процесса развертывания сервиса:

  • «Ожидание» — деплой поставлен в очередь.

  • «Выполняется» — выполняются сборка образа и развертывание.

  • «Готово» — приложение успешно развернуто и доступно по домену.

  • «Ошибка» — во время деплоя произошла ошибка.

Домен приложения

После успешного деплоя приложение становится доступно по доменному имени вида https://{name}.containerapps.ru.

История деплоев

Для каждого сервиса хранится история всех запусков деплоя. В ней можно посмотреть, из какой ветки выполнялся деплой, его статус, стадии выполнения сценария, время запуска и длительность выполнения.

Container Apps

Services использует Container Apps как целевую платформу для запуска контейнеризированных приложений. Container Apps автоматически управляет масштабированием и инфраструктурой, а Workflow Studio отвечает за сборку и развертывание.