管理7k+工作流,月運行超10000萬次,Lyft開源的Flyte平臺意味著什麼?

作者 | Allyson Gale

譯者 | 劉暢

出品 | AI科技大本營(ID:rgznai100)

【導讀】Flyte 平臺可以更容易的創建併發,可伸縮和可維護的工作流,從而進行機器學習和數據處理。Flyte 已有三年多的訓練模型和數據處理經驗,成為定價,定位,ETA,自動駕駛等團隊可實用的平臺。實際上,Lyft 內部使用 Flyte 管理著 7000 多個獨特的工作流,每月總計運行超過 100000 次,執行 100 萬個任務,處理 1000 萬個容器。

由於數據現在已成為公司的主要資產,因此執行大規模計算作業對業務至關重要,但從操作角度來看卻存在一些問題。擴展,監管計算集群成為每個產品團隊的負擔,從而減慢了迭代速度,進而減慢了產品創新的速度。

Flyte 的任務是通過抽象這些開銷來提高機器學習和數據處理的開發速度。Lyft 團隊通過可靠,可擴展,精心設計的計算解決了諸多問題,使團隊可以專注於業務邏輯。此外,Flyte 可支持跨租戶共享和重用,因此問題只需解決一次。隨著數據和機器學習之間的界線越來越不明顯,包括從事這些工作的人員,這一點變得越來越重要。

管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?

為了讓大家更好地瞭解 Flyte 是如何解決這一切問題,以下是該平臺一些主要功能的概述:

1、Hosted、multi-tenant、and serverless

Flyte 可以擺脫麻煩的基礎架構,使開發者可以專注於業務問題。作為一個支持多租戶的服務,可以自己隔離 repo,並在不影響平臺其餘部分的情況下進行部署和擴展。平臺會對代碼進行版本控制,並對其依賴進行容器化,並且每次代碼執行都是可重複的。

為了提供這種級別的隔離,研發團隊直接將其建立在 Kubernetes 上,獲得了容器化提供的所有優點:可移植性,可伸縮性,可靠性等等

2、Elastic Scale

Flyte 的主要目的就是擴展。有了完全分佈式的容錯控制平面,就不會出現單點故障,並且可以擴展到多個集群,數千個節點和數千個併發工作流。

Lyft 證明了該平臺的擴展性,Flyte 已有三年多的訓練模型和數據處理經驗,成為定價,定位,ETA,自動駕駛等團隊可實用的平臺。實際上,Lyft 內部使用 Flyte 管理著 7000 多個獨特的工作流,每月總計運行超過 100000 次,執行 100 萬個任務,處理 1000 萬個容器。

3、Parameters、Data Lineage、and Caching

所有 Flyte 的任務和工作流均具有強類型的輸入和輸出。這樣就使參數化工作流程,擁有豐富的數據流,以及使用預先計算的緩存版本成為可能。例如,如果要進行超參數調優,則可以在每次運行時輕鬆調用不同的參數。此外,如果想調用之前已經計算過的任務,無論執行該任務的是誰,Flyte 都會巧妙地使用緩存輸出,從而節省時間和金錢。

管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?
管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?

4、Versioned, Reproducible, and Shareable

Flyte 中的每個實體都是不可變的,每個更改都會明確地歸為新版本。這讓使用者可以輕鬆高效地迭代,測驗和回滾工作流。此外,Flyte 支持在工作流之間共享這些版本化的任務,從而避免個人和團隊之間的重複工作,加快開發週期。

管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?

5、Dynamic and extensible

Flyte 與框架無關,並且有不斷增加的插件集合來滿足所有工作流需求,包括 K8s 上的 Spark,AWS Batch,陣列作業,Hive Qubole,容器,Pods 等。而且也很容易貢獻一個插件!用多種語言編寫工作流任務也可能是有利的,因此Flyte 的 SDK 可以擴展到 Python 之外,允許進行真正的多語言編程。

附參考文章:

https://flyte.org/

https://lyft.github.io/flyte/contributor/index.html

(*本文為AI科技大本營翻譯文章,轉載請微信聯繫 1092722531)


分享到:


相關文章: