kestra自动化管理平台

Posted by eye on 03-27,2024

kestra

无限可扩展、事件驱动、与语言无关的编排和调度平台,可在代码中以声明方式管理数百万个工作流程。

Kestra 是一个通用的开源编排器,可以简化计划和事件驱动的工作流程。通过将基础架构即代码最佳实践引入数据、流程和微服务编排,您可以构建可靠的工作流程并充满信心地管理它们。

只需几行代码,您就可以直接从 UI创建流程。借助用于定义编排逻辑的声明式 YAML 接口,业务涉众可以参与工作流创建过程。

Kestra 提供了一套多功能的与语言无关的开发人员工具,同时提供了专为业务专业人士量身定制的直观用户界面。每当您从 UI 或通过 API 调用对工作流程进行更改时,YAML 定义都会自动调整。因此,编排逻辑始终在代码中以声明方式进行管理,即使某些工作流组件以其他方式(UI、CI/CD、Terraform、API 调用)进行修改。

关键概念

  • Flow是 Kestra 的主要组成部分。它是您的任务和编排逻辑的容器。
  • Namespace用于提供逻辑隔离,例如分离开发和生产环境。命名空间就像文件系统上的文件夹 - 它们将流组织成逻辑类别,并且可以嵌套以提供层次结构。
  • Tasks是流程中的原子操作。默认情况下,列表中的所有任务将按顺序执行,并可使用其他自定义选项并行运行任务或在需要时允许特定任务失败。
  • Triggers定义流程何时运行。在 Kestra 中,流是根据事件触发的。此类事件的示例包括:
    • 定期的时间表
    • API 调用 (Webhook 触发器)
    • 从UI临时执行
  • 流触发器-可以使用流触发器或子流从其他流触发流,从而实现高度模块化的工作流。
  • 自定义事件,包括新文件到达(文件检测事件)、消息总线中的新消息、查询完成等。
  • Inputs允许您将运行时特定的变量传递给流程。它们是强类型的,并允许附加验证规则。