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

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


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

Workflow Studio — это платформа для создания инженерных сценариев в облаке: от автоматизации DevOps, MLOps и работы с данными до управления инфраструктурой приложений.

Работа сервиса строится вокруг сценариев, которые описываются в виде 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

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