Как стать автором
Обновить
125.35
MWS
Больше, чем облако

Планировщики процессов — другие open source решения

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.6K

Такие workflow-оркестраторы, как Metaflow или Apache Airflow, на слуху. Однако в их тени существуют не менее интересные решения — например, StepWise, Dagu, Windmill, Flyte и µTask. Они предоставляют интересные возможности для автоматизации, ускорения и упрощения настройки сложных workflow, и часто обладают более современной архитектурой, меньшим порогом входа или ярко выраженной специализацией для типовых задач.

Сегодня познакомимся подробнее с инструментами, которые расширят ваш арсенал и помогут создавать более надёжные и экономичные системы.

Dagu

Этот планировщик написан на Go, и с его помощью можно настроить выполнение shell-скриптов и Python-команд в различных средах. Его разработала команда программистов из Dagu Community в 2022 году. В то время они занимались другим проектом, но при интеграции планировщика задач — столкнулись с трудностями. Инструменты вроде Airflow и Prefect оказались слишком тяжеловесными, а ETL-пайплайн и без того вырос до сотен тысяч строк на Perl (и это без учета скриптов). Так что в качестве упрощённой альтернативы был разработан Dagu.

Dagu можно применять для автоматизации ETL-задач. Он позволяет определять зависимости между командами в виде ориентированного ациклического графа (DAG), а также поддерживает запуск Docker-контейнеров, выполнение HTTP-запросов и SSH-команд. С помощью встроенного WebUI пользователь может отслеживать состояние DAG, его журналы и конфигурации. 

Dagu сохраняет баланс между простотой развёртывания и эффективностью в работе с умеренным числом процессов. Интерфейс инструмента лёгок в освоении для начинающих разработчиков.

StepWise

Не совсем планировщик, а скорее нишевый инструмент — фреймворк для .NET, позволяющий выполнять, разрабатывать и визуализировать событийно-ориентированные рабочие процессы. Инструмент в 2023 году разработал Сяоюнь Чжан, известный под ником LittleLittleCloud. Он занимает должность старшего инженера в одном из подразделений Microsoft.

Основу StepWise составляет движок, который управляет выполнением операций, разрешает зависимости и обеспечивает параллельное выполнение. С помощью интерфейса WebUI рабочие процессы можно визуализировать. В WebUI интегрирована система-помощник Geeno, позволяющая анализировать и запускать задачи.

Flyte

Оркестратор, который позволяет выстраивать корпоративные пайплайны, в том числе для работы с данными для машинного обучения. Их можно запускать как в облаке, так и в локальных средах, поскольку в основе Flyte лежит Kubernetes. Можно воспользоваться готовыми SDK для Python, Java, Scala и JavaScript. 

Flyte предоставляет интерфейсы для проверки данных на каждом этапе процесса. А также позволяет командам работать на одной платформе без конфликтов конфигураций.

Flyte используют в Warner Bros. и других организациях. Например, в Spotify платформа помогла объединить разрозненные команды, отвечающие за разные бизнес-направления и модели (подкасты, роялти и др.), позволив им работать с единой системой анализа данных.

Windmill

Это — платформа для построения workflow-процессов и интерфейсов. Она позволяет выстраивать комплексные пайплайны. Можно сказать, что Windmill представляет собой альтернативу таким сервисам, как Retool, Pipedream и Superblocks. По утверждениям разработчиков, в сравнении с другими решениями Windmill превосходит их по скорости выполнения как лёгких, так и ресурсоёмких процессов (согласно бенчмаркам на 40 легковесных и 10 длительных задачах).

Windmill автоматически преобразует скрипты в UI-компоненты. Принцип работы достаточно прост: подготавливается скрипт на Python, TypeScript, Go или Bash в Web IDE (или можно синхронизировать код с GitHub), параметры скрипта парсятся и генерируется фронтенд.

Стоит учитывать, что хотя исходники Windmill распространяются под Apache 2.0 и AGPLv3, есть и некоторые проприетарные функции.

µTask

Это — система для создания и выполнения рабочих процессов с описанием логики задач на YAML. Каждый независимый инстанс решения может самостоятельно определять доступные задачи. Для начала работы в µTask необходимо описать граф действий и взаимозависимостей. После этого он берет на себя асинхронное выполнение каждого шага, сохраняя промежуточные состояния.

Разработчики привели несколько реальных ситуаций, с которыми справится µTask. Например, в Kubernetes можно настроить триггер, который сгенерирует закрытый ключ, запросит новый TLS-сертификат и передаст его в кластер. Достаточно подробное руководство для старта (со скриншотами) можно найти в репозитории проекта.


Эти решения могут (и должны) использовать облачные хранилища для надёжного хранения промежуточных данных, артефактов выполнения задач и логов. Например, Metaflow по умолчанию сохраняет все артефакты в S3. Объектное облачное хранилище обеспечивает отказоустойчивость, масштабируемость и доступ к данным из любой точки мира, что особенно важно для распределённых workflow. Подробнее о возможностях геораспределённого облачного хранилища MWS — по ссылке.

Теги:
Хабы:
+5
Комментарии0

Публикации

Информация

Сайт
mws.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия