Serverless 是由云基礎設施服務提供商 Iron.io 副總裁 Ken 在 2012 年提出的概念,為云中運行的應用程序描述了一種全新的系統(tǒng)體系架構。此后,眾多云服務廠商將 Serverless 概念逐步落地,陸續(xù)推出了基于 Serverless 的 FaaS(函數(shù)即服務)產品。經過 8 年的發(fā)展,Gartner 報告顯示 2020 年全球已有 20% 的企業(yè)采用 Serverless技術部署業(yè)務。Serverless 架構已被業(yè)內認為是引領云原生下一個十年的發(fā)展潮流。
傳統(tǒng)的業(yè)務如網(wǎng)站、后端服務等,通過現(xiàn)代化的 Serverless 技術能夠讓開發(fā)者無須關心服務器搭建和管理,只需編寫業(yè)務代碼和調用云平臺原生提供的云能力,就可以快速搭建完整的業(yè)務應用,降低開發(fā)成本,提升開發(fā)效率,同時在服務器和系統(tǒng)管理方面節(jié)省資源。
國內的 Serverless 生態(tài)建設起步較晚,隨著微信和騰訊云共同開發(fā)的小程序云開發(fā)的推出,帶來了超過100萬開發(fā)者使用,大力普及了對Serverless的認識。然而市面上相關的工具鏈并不完善,這導致用戶在遷移至 Serverless 架構的過程中面臨開發(fā)和部署難度大、成本高等問題。
云開發(fā)CloudBase Framework 就是為了解決這些問題而生。
據(jù)介紹,云開發(fā)CloudBase Framework 是一款由騰訊開源的云原生一體化部署工具,支持前后端應用一鍵部署,能夠幫助開發(fā)者快速將應用無縫部署在 Serverless 架構的云開發(fā)(FaaS + CaaS + BaaS)平臺上,享受免運維、高性能、高可靠性、可彈性擴縮容的的應用體驗。目前該項目已支持一鍵部署網(wǎng)站、Next SSR、Node、Dart、Deno 等應用。
Github開源地址:https://github.com/Tencent/cloudbase-framework
云開發(fā)CloudBase Framework 的主要特性是其首創(chuàng)的前后端一體化一鍵部署功能。傳統(tǒng)業(yè)務如網(wǎng)站、服務端等在遷移至云平臺的過程中存在不小的改造成本,同時一個完整業(yè)務應用的前后端往往因為語言技術棧不同,在應用交付方式上也存在諸多限制。
而云開發(fā) CloudBase Framework 支持 web/小程序/移動端/服務端的一體化部署,可一鍵托管的技術棧涵蓋幾乎整個大前端領域,包括前端框架 Vue、React,SSR 框架 Nuxt,基于 Node 的 Express、Koa ,基于 Deno 的應用等;借助底層 Serverless 云應用的能力,還可以部署基于 PHP、Java、Go 等語言技術棧的后端應用。值得一提的是,CloudBase Framework 還配合 Flutter 實現(xiàn)了 Dart 語言的云端一體化,這也是國內云廠商對 Dart 語言和生態(tài)的一大補充。
在降低用戶使用門檻方面,云開發(fā)CloudBase Framework 實現(xiàn)了自動檢測的功能,即針對常見前端框架,用戶無需自己編寫配置,使用該工具可以實現(xiàn)自動識別項目的構建和發(fā)布默認配置。使用過程中,開發(fā)者不需要學習復雜的服務器配置和更改代碼,只需要輸入業(yè)務參數(shù)即可實現(xiàn)項目部署。
在持續(xù)集成/持續(xù)部署方面,云開發(fā)CloudBase Framework 還可搭配 CI/CD 工具實現(xiàn)持續(xù)部署,例如只需要幾行代碼就可以實現(xiàn) Github 自動推送部署應用前后端,同時開發(fā)者也可以在 CI/CD 過程中增加手動確認步驟來 Review 發(fā)布過程。
值得一提的是,項目團隊還圍繞云開發(fā)CloudBase Framework 構建了一套完善的開發(fā)者生態(tài),提供了應用中心和插件體系。
應用中心擁有各類熱門應用,以及大量的生產級項目模板,案例模板,開發(fā)者可以自由選擇,并將項目一鍵部署到云開發(fā)。另一方面,開發(fā)者也可以自己開發(fā)并提交應用和模板到應用中心,只要為應用編寫描述文件,支持使用云開發(fā) CloudBase Framework 部署,通過審核后就可以上架應用中心,供其他用戶使用。
云開發(fā)CloudBase Framework 的插件體系則是完全開放的。目前生態(tài)內已經有十幾種不同的插件,自下而上分別實現(xiàn)了包括云資源插件、語言開發(fā)插件、應用框架插件,以及第三方應用插件。開發(fā)者可以按照插件規(guī)范自由組合,通過使用插件和復用插件來實現(xiàn)不同功能的插件。例如 Node 插件復用了云函數(shù)插件和云托管插件;低代碼開發(fā)插件復用了小程序插件、靜態(tài)網(wǎng)站插件、云函數(shù)插件、鑒權插件、數(shù)據(jù)庫插件等。
據(jù)悉,云開發(fā)CloudBase Framework 云原生一體化部署工具已經在騰訊內外超過 1000 個應用中落地,包括企業(yè)微信、騰訊直播、騰訊健康碼、云開發(fā)平臺、心悅俱樂部等用戶規(guī)模龐大的主流業(yè)務,實用性與穩(wěn)定性得到了充分的驗證。
云開發(fā)CloudBase Framework 團隊表示,現(xiàn)在項目已經實現(xiàn)了一體化的部署工具,下一步的規(guī)劃是繼續(xù)完善插件體系、運行時庫,完善生態(tài),實現(xiàn)更加高效的開發(fā)部署工作流。同時,團隊也歡迎廣大開源技術愛好者參與進來,貢獻代碼、文檔或是測試 Demo,共同完善國內的云原生技術生態(tài),共建美好開源社區(qū)。