事件驅動的聲明式編排平台
點擊圖片即可在 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 來滿足您的工作流程編排需求。我們迫不及待地想看看您將要建造什麼!