Serverless Devs 進入 CNCF 沙箱,成首個入選的 Serverless 工具專案

語言: CN / TW / HK

近日,經過雲原生計算基金會(CNCF)TOC 例會上投票決議,Serverless Devs 正式成為 CNCF 官方沙箱專案。開源開放的 Serverless 開發者平臺 —— Serverless Devs 由阿里雲開源,致力於為開發者提供強大的工具鏈體系。通過該平臺,開發者不僅可以一鍵體驗多雲 Serverless 產品,極速部署 Serverless 專案,還可以在 Serverless 應用全生命週期進行專案的管理,並且非常簡單快速地將 Serverless Devs 與其他工具/平臺進行結合,進一步提升研發、運維效能。

sandbox.jpg

**Serverless Devs 是 CNCF 首個 Serverless Tool 專案。**未來,Serverless Devs 社群將與更多開發者和使用者共建,持續致力於打造無廠商鎖定的 Serverless 應用全生命週期管理工具,讓 Serverless 更簡單,更好用。

CNCF TOC 在會議上對 Serverless Devs 作出如下評價: Davanum Srinivas (CNCF TOC ) 表示如果你是一位普通的開發者,你有很多 Serverless 應用需要執行,你一定希望自主選擇去哪個平臺執行,這個平臺最好有基於不同語言的模版,你可以基於此快速開始。Serverless Devs 就是這樣一個平臺,它已經準備好了很多模版,幫助開發者在一個Serverless 執行時中進行部署。它讓開發者可以輕鬆開啟 Serverless 之旅。

Emily Fox (CNCF TOC ) 認為 Serverless Devs 非常關注開發者的體驗體驗,同時也非常關注 Serverless 應用在不同雲平臺的部署。

Serverless Devs 專案地址:http://github.com/serverless-devs/serverless-devs

Serverless Devs 的六個優勢

image.png

  • 無廠商鎖定:得益於功能的可插拔特性,可以非常簡單的支援不同雲廠商的專案部署,或者一鍵部署到不同雲平臺。目前 Serverless Devs 已經支援了阿里雲函式計算 、AWS Lambda 、百度智慧雲函式計算 、華為雲函式工作流 、騰訊云云函式 等多雲的 FaaS 產品;
  • 開源形式建設:專案通過開原始碼,開放生態進行建設的,開發者可以隨時檢視和參與 Serverless Devs 開發者工具的貢獻,也可以隨時隨地進行相關元件和應用的貢獻。當然,除了這種開源開放的形態,我們也鼓勵一些企業級團隊,通過 Serverless Registry Model 建設自己的私有 Registry 以定製化某些不便公開的自定義元件;
  • 功能靈活可插拔:Serverless Devs 開發者工具本身,不具備任何業務能力,所有的業務能力均是通過元件化的形式,進行可插拔式使用,並且每個元件可以根據需要,自定義相對應的命令和功能;開發者可以在一個應用中,選擇不同的元件完成對應的業務能力,以滿足對不同模組的訴求;
  • 簡單快速上手:通過開放 Serverless Registry 的模型/規範,該專案可以通過應用的模式,為開發者提供多種形式,多種領域以及多種場景的上手案例,幫助開發者快速瞭解、學習、深入、上手 Serverless 架構;
  • 應用全生命週期管理:通過元件化的支援,Serverless Devs 可以在應用的全生命週期發揮重要的作用,以 阿里雲函式計算的 FC 元件 為例,開發者可以在專案建立、專案的開發、除錯、可觀測性等多個層面進行專案的建設和管理;
  • 良好的整合與被整合性:專案具有非常好的整合性與被整合性,可以通過元件化的支援,非常簡單的與傳統的生態進行有機結合。同時,Serverless Devs 開發者工具也可以非常簡單的被整合到海量的自動化流程中;

設計哲學

Serverless Devs 是一個開源開放的 Serverless 領域的工具鏈專案,他不僅僅表示單純的某個命令列工具,在一定程度上指的是一個完整的工具鏈體系。 image.png 在 Serverless Devs 中,擁有兩個角色:

  • 開源貢獻者:開源貢獻者將按照 Serverless Package Model 進行元件/應用的開發 ,並將內容釋出到Serverless Regsitry 中,既可以被更多人所使用;
  • Serverless 開發者:通過開發者工具(包括命令列工具以及桌面端等工具),進行應用的初始化,以及元件的使用;通過開發者工具,將業務按照預期部署到線上;

除此之外,在 Serverless Registry 中,有兩種形態的 Package(元件和應用):Component 和 Application:

  • Component:指的是元件;是由 Package developer 開發併發布的符合 Serverless Package Model 規範的一段程式碼,通常這段程式碼會在應用中被引用,並在 Serverless Devs 開發者工具 中被載入,並按照預定的規則進行執行某些動作。例如,將使用者的程式碼部署到 Serverless 平臺;將 Serverless 應用進行構建和打包;對 Serverless 應用進行除錯等;
  • Application:指的是應用;可以由 Package developer 公開發布到 Registry,以供更多人學習和使用,例如某位貢獻者貢獻了一個貓狗識別的案例到Registry;也可以由 Serverless developer 開發,例如某人開發了一個 人臉識別的應用;通常情況下一個應用可以引用一個或者多個元件,並通過 Serverless Devs 開發者工具 工具部署到 Serverless 平臺,例如我開發了一個貓狗識別的應用,在這個應用中引用了 Lambda 元件幫助我將部分業務邏輯部署到 FaaS 平臺,同時我也引用了 Website 元件幫助我把前端業務程式碼部署到物件儲存中;

Serverless Devs 的模型設計原則,是希望可以通過更加簡單、科學、規範的 Serverless 工具鏈體系,讓開發者更專注於業務邏輯,提升 Serverless 應用開發、部署、運維效率,通過該模型。開發者可以通過一種更靈活、更通用的方法使用不同雲廠商以及開源的 Serverless 產品,進而更高效、更簡潔、更便利的實現 Serverless 應用管理。

成長曆史

image.png 如果說 Serverless 提升了傳統應用的開發效能,那麼 Serverless Devs 開發者工具就是提升了 Serverless 應用開發的效能。隨著時間的發展,Serverless Devs 更是從簡單的單純的效能提升,變成了更加規範、更加科學的效能提升。我們真切希望可以通過 Serverless Devs 的工具鏈模式和思路,為應用的開發,傳統專案上 Serverless 架構提供巨大的便利和更科學的管理:

  • 2020年 10月23日,Serverless 開發者平臺 Serverless Devs 正式開源;
  • 2020 年11月,Serverless Devs 被 CNCF Landsacpe 收錄, 成為國內首個進駐的 Serverless 工具;
  • 2020 年11月,Serverless Developer Meetup 首召開,成 Serverless 開發者技術新渠道;
  • 2020 年 11月,入圍 InfoQ 評選 2020 年度十大開源新銳專案;
  • 2021年4月,Serverless Developer Meetup 在上海召開,並正式釋出 Serverless Devs 2.0;
  • 2021年7月,Serverless Developer Meetup 在杭州召開,阿里雲函式計算團隊在會上正式釋出端雲聯調、桌面客戶端等功能;
  • 2021年10月,在 2021 OpenInfra Days China 會議上,Serverless Devs 帶來了《Serverless Devs:Serverless全生命週期的工具鏈建設》的主題演講;
  • 2021年12月,Serverless Developer Meetup 在深圳召開,並嘗試性的對外展示了Serverless Devs Model;
  • 2022年5月,Serverless Devs Model 作為 Serverless 工具鏈模型最佳實踐,亮相信通院雲原生產業大會;
  • 2022年9月,Serverless Developer Meetup 在杭州召開;Serverless Devs 在雲原生計算基金會(CNCF)的 TOC 例會上投票決議通過,正式成為 CNCF 官方沙箱專案;

未來展望

Serverless Devs 將會在未來支援:

  • 支援更多的雲廠商,雲產品;
    • Hosted:Azure,Google Cloud Platform
    • Installable:Knative,OpenWhisk,Kubeless,Laf
  • 功能支援:
    • Serverless Devs K8s Controller
    • 編輯器外掛(VScode Plugin)
    • Logs能力完善(Serverless Devs Logs)
    • 雲執行環境(Serverless Devs Cloud)
    • 全域性行為能力(Global Actions)
  • 其他規劃:
    • 更多形式的 Serverless 服務支援,如 Serverless Application Hosting 模型;
    • 支援更多 BaaS 產品;
    • 探索 IaC 方向;
    • 與 Terraform 結合;

長圖

歡迎參與貢獻

更多內容關注 Serverless 微信公眾號(ID:serverlessdevs),彙集 Serverless 技術最全內容,定期舉辦 Serverless 活動、直播,使用者最佳實踐。