Kestra
是一款开源的分布式工作流和任务管理系统,基于 JVM 构建。它支持对任务的高可用性调度和分布式执行,特别适合需要处理大规模数据流的场景,比如 ETL 任务、事件驱动的工作流和自动化运维流程。
简单来说,Kestra 帮助你用 YAML 定义任务,提供插件扩展,甚至支持 Docker 容器的运行。配置好了以后,任务的执行如行云流水,直接解放双手。
主要特点:
- 一切都是代码,来自 UI:通过 Git 版本控制集成将工作流保持为代码,即使在从 UI 构建工作流时也是如此。
- 事件驱动和预定工作流:通过简单的
触发器
定义自动化预定和实时事件驱动的工作流。 - 声明式 YAML 接口:使用内置代码编辑器中的简单配置定义工作流。
- 丰富的插件生态系统:内置数百个插件,可从任何数据库、云存储或 API 中提取数据,并以任何语言运行脚本。
- 直观的用户界面和代码编辑器:直接从用户界面构建和可视化工作流程,具有语法高亮、自动完成和实时语法验证功能。
- 可扩展:旨在处理数百万个工作流,具有高可用性和容错能力。
- 版本控制友好:从内置代码编辑器编写工作流程,并直接从 Kestra 将它们推送到您首选的 Git 分支,从而通过 CI/CD 管道和版本控制系统实现最佳实践。
- 结构与弹性:通过命名空间、标签、子流、重试、超时、错误处理、输入、在UI中生成工件的输出、变量、条件分支、高级调度、事件触发器、回填、动态任务、顺序和并行任务,驯服混乱并为您的工作流程带来弹性,并在需要时跳过任务或触发器,方法是将标志
disabled
设置为true
。
🧑 每当您从 UI 或通过 API 调用更改工作流程时,YAML 定义都会自动调整。因此,编排逻辑始终在代码中以声明方式进行管理,即使您以其他方式(UI、CI/CD、Terraform、API 调用)修改工作流程也是如此。
安装使用
项目官方推荐使用,5分钟即可快速体验。
1、Docker安装Kestra:需要在本地或服务器环境中安装Docker,然后使用Kestra提供的Docker镜像快速启动一个实例。执行以下命令即可:
docker run --pull=always --rm -it -p8080:8080 --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp kestra/kestra:latest server local
然后浏览器打开 http://localhost:8080 即可启动 Kestra UI 界面。
2.、定义工作流:在Kestra的UI界面或直接使用YAML文件定义数据管道的任务流程。比如,你可以创建一个简单的“Hello World”流:
id: getting_started
namespace: company.team
tasks:
- id: hello_world
type: io.kestra.plugin.core.log.Log
message: Hello World!
3、执行与监控:启动工作流后,你可以在Kestra的界面中实时查看任务状态,跟踪进度并查看日志输出。
Kestra
是一个强大而灵活的工作流编排工具,它不仅能帮助你管理复杂的数据管道,还能通过丰富的插件系统轻松集成各种数据源。对于需要处理海量数据和构建多源数据管道的团队来说,Kestra无疑是一个值得探索的工具。
请登录后查看评论内容