事件驱动的声明式编排平台
点击图片即可在 4 分钟内了解如何开始使用 Kestra。
?什么是凯斯特拉?
Kestra 是一个开源的、事件驱动的编排平台,可以简化计划和事件驱动的工作流程。通过将基础架构即代码最佳实践引入数据、流程和微服务编排,您只需几行 YAML 即可直接从 UI 构建可靠的工作流。
主要特点:
- 一切皆代码且来自 UI:通过Git 版本控制集成将工作流程保持为代码,即使是从 UI 构建它们时也是如此。
- 事件驱动和计划工作流程:通过简单的
trigger
定义自动执行计划和实时事件驱动工作流程。 - 声明式 YAML 接口:使用内置代码编辑器中的简单配置来定义工作流程。
- 丰富的插件生态系统:内置数百个插件,可从任何数据库、云存储或 API 中提取数据,并运行任何语言的脚本。
- 直观的 UI 和代码编辑器:通过语法突出显示、自动完成和实时语法验证,直接从 UI 构建和可视化工作流程。
- 可扩展:旨在处理数百万个工作流程,具有高可用性和容错能力。
- 版本控制友好:从内置代码编辑器编写工作流程,并直接从 Kestra 将其推送到您首选的 Git 分支,从而实现 CI/CD 管道和版本控制系统的最佳实践。
- 结构和弹性:通过命名空间、标签、子流程、重试、超时、错误处理、输入、在 UI 中生成工件的输出、变量、条件分支、高级调度、事件触发器、回填、动态,驯服混乱并为您的工作流程带来弹性任务、顺序和并行任务,并在需要时通过将
disabled
标志设置为true
来跳过任务或触发器。
每当您从 UI 或通过 API 调用对工作流程进行更改时,YAML 定义都会自动调整。因此,编排逻辑始终在代码中以声明方式进行管理,即使您以其他方式(UI、CI/CD、Terraform、API 调用)修改工作流程也是如此。
快速入门
尝试现场演示
通过我们的现场演示尝试 Kestra。无需安装!
5 分钟内即可在本地开始使用
在 Docker 中启动 Kestra
确保 Docker 正在运行。然后,用单个命令启动 Kestra:
docker run --pull=always --rm -it -p 8080:8080 --user=root
-v /var/run/docker.sock:/var/run/docker.sock
-v /tmp:/tmp kestra/kestra:latest server local
查看我们的安装指南以了解其他部署选项(Docker Compose、Podman、Kubernetes、AWS、GCP、Azure 等)。
通过 http://localhost:8080 访问 Kestra UI 并开始构建您的第一个流程!
你的第一个 Hello World 流程
创建一个包含以下内容的新流程:
id : hello_world
namespace : dev
tasks :
- id : say_hello
type : io.kestra.plugin.core.log.Log
message : " Hello, World! "
运行流程并在 UI 中查看输出!
?插件生态系统
Kestra 的功能通过丰富的插件生态系统进行了扩展,使您能够在任何地方运行任务并使用任何语言编写代码,包括 Python、Node.js、R、Go、Shell 等。以下是 Kestra 插件如何增强您的工作流程:
随处运行:
- 本地或远程执行:通过 SSH 在本地计算机、远程服务器上执行任务,或使用任务运行程序扩展到无服务器容器。
- Docker 和 Kubernetes 支持:在工作流程中无缝运行 Docker 容器或启动 Kubernetes 作业来处理计算密集型工作负载。
任何语言的代码:
- 脚本支持:用您喜欢的编程语言编写脚本。 Kestra 支持 Python、Node.js、R、Go、Shell 等,允许您集成现有代码库和部署模式。
- 灵活的自动化:执行 shell 命令,对各种数据库运行 SQL 查询,并发出 HTTP 请求与 API 交互。
事件驱动和实时处理:
- 实时触发器:实时响应来自外部系统的事件,例如文件到达、消息总线中的新消息(Kafka、Redis、Pulsar、AMQP、MQTT、NATS、AWS SQS、Google Pub/Sub、Azure 事件中心) ),等等。
- 自定义事件:定义自定义事件以根据特定条件或外部信号触发流程,从而实现高度响应的工作流程。
云集成:
- AWS、Google Cloud、Azure:与各种云服务集成,与存储解决方案、消息传递系统、计算资源等进行交互。
- 大数据处理:使用 Apache Spark 等工具运行大数据处理任务,或与 Google BigQuery 等分析平台交互。
监控和通知:
- 随时了解情况:向 Slack 频道发送消息、电子邮件通知或在 PagerDuty 中触发警报,让您的团队随时了解工作流程状态。
Kestra 的插件生态系统正在不断扩展,使您可以根据自己的特定需求定制平台。无论您是编排复杂的数据管道、跨多个环境自动化脚本,还是与云服务集成,都可能有一个插件可以提供帮助。如果没有,您始终可以构建自己的插件来扩展 Kestra 的功能。
? 注意:这只是 Kestra 插件功能的一瞥。在我们的插件页面上探索完整列表。
关键概念
- 流程: Kestra 中的核心单元,代表由任务组成的工作流程。
- 任务:各个工作单元,例如运行脚本、移动数据或调用 API。
- 命名空间:用于组织和隔离的流的逻辑分组。
- 触发器:启动流程执行的计划或事件。
- 输入和变量:传递到流程和任务中的参数和动态数据。
?可视化构建工作流程
Kestra 提供直观的 UI,允许您交互式地构建和可视化您的工作流程:
- 拖放界面:从拓扑编辑器添加和重新排列任务。
- 实时验证:对工作流程的语法和结构进行即时反馈,以便及早发现错误。
- 自动完成:在您键入时提供智能建议,以便快速编写流程代码,而不会出现语法错误。
- 实时拓扑视图:将您的工作流程视为实时更新的有向无环图 (DAG)。
?可扩展且对开发人员友好
插件开发
创建自定义插件来扩展 Kestra 的功能。查看我们的插件开发人员指南以开始使用。
基础设施即代码
- 版本控制:将流程存储在 Git 存储库中。
- CI/CD 集成:使用 CI/CD 管道自动部署流程。
- Terraform 提供商:使用官方 Terraform 提供商管理 Kestra 资源。
加入社区
保持联系并获得支持:
- Slack:加入我们的 Slack 社区,提出问题并分享想法。
- LinkedIn:在 LinkedIn 上关注我们——仅次于 Slack 和 GitHub,这是我们分享更新和产品公告的主要渠道。
- YouTube:订阅我们的 YouTube 频道以获取教育视频内容。我们每周都会发布新视频!
- X:如果您仍然活跃,请在 X 上关注我们。
?贡献
我们欢迎各种贡献!
- 报告问题:发现错误或有功能请求?在 GitHub 上打开问题。
- 贡献代码:查看我们的贡献者指南以获取初始指南,并探索我们首先要解决的适合初学者的任务的好问题。
- 开发插件:使用我们的插件开发人员指南构建和共享插件。
- 为我们的文档做出贡献:贡献编辑或更新,以保持我们的文档一流。
?执照
Kestra 根据 Apache 2.0 许可证 © Kestra Technologies 获得许可。
️ 保持更新
给我们的存储库加一颗星,以随时了解最新的功能和更新!
感谢您考虑 Kestra 来满足您的工作流程编排需求。我们迫不及待地想看看您将构建什么!