工業級 Serverless 平臺,需要具備這些能力

Serverless(無服務器運算) 是雲計算的一種模型,也被稱爲雲計算未來的方向。因其降低開發成本、按需自動擴縮容、免運維等諸多優勢,被越來越多的公司用來構建雲上應用。國內外此類型產品,有諸如 騰訊云云開發、AWS Lambda、Microsoft Azure Functions 等。

Serverless 相關技術的普及影響前端開發者的現有能力和定位,同時前後端架構和工程體系也隨其發展而產生變化,那麼 Serverless 如何走工程化道路?在 GMTC 北京 2020,我們邀請到了騰訊高級工程師周俊鵬老師來分享《面向全棧的工業級 Serverless 平臺成型之路》。我們有幸在會前採訪了騰訊云云開發團隊的周老師,聊聊 Serverless 給前端帶來的挑戰和機遇,以及面向全棧的 Serverless 平臺應該具備哪些能力。

InfoQ:請介紹下你自己。

周俊鵬: 我的從業經歷比較複雜,最初的工作以 CSS 和動畫爲主,隨後一段時間專注於前端工程效率即所謂的前端工程化,然後有兩年半時間專攻圖形編程(Canvas/SVG/WebGL)。目前就職於騰訊云云開發 Cloudbase 團隊,負責雲開發 Cloudbase 相關研發和生態建設工作。團隊的主要產品雲開發是支持多端開發(一雲多端)的 Serverless 應用開發平臺,小程序·雲開發就是我們團隊的主要產品,現在我們已佈局小程序、 Web 和移動應用開發領域。

InfoQ:你是怎麼看待 Severless 發展的?

周俊鵬: 其實在參加工作至今的六年時間裏,之所以每份工作的技術側重點有很大差異,是想盡量摸清前端開發技術的廣度和深度,以便確定最終的從業方向。所以有宏觀到全棧的工程化,也有微觀到像素的 WebGL 編程。

在充分熟悉了這些技術之後,我個人認爲前端在未來的核心發展方向主要有兩個:數據可視化和全棧開發數據可視化 對數學和算法的要求很高,同時可以與多線程、WebAssembly 等新技術結合,充分壓榨瀏覽器的性能,考驗的是技術深度,其價值體現在疑難問題的攻堅上。全棧開發 指的是從底層到應用層的全鏈路閉環開發,當然事無鉅細不現實,所以要依託一些技術、工具或平臺,而目前來看,Serverless 是最有可能支撐全棧開發落地的指導思想之一。

InfoQ:團隊是在什麼契機下,引入 Serverless 的?

周俊鵬: 團隊的主要產品雲開發 Cloudbase 是一個基於 Serverless 架構(FaaS+BaaS) 構建的一站式後端雲服務平臺,作爲一款 ToB 產品,它以生產工具角色爲開發者提供價值。2018 年在微信小程序落地“小程序·雲開發”之後得到了不錯的反饋和增長,而 Serverless 理念的亮點之一便是並沒有限定應用場景,所以我們團隊目前在微信小程序之後繼續佈局多端平臺,目的是儘量幫助開發者解決業務邏輯之外的瑣碎事,提高生產力。

InfoQ:現在團隊內部的 Serverless 平臺發展現狀怎麼樣?

周俊鵬:Serverless 思想是貫徹在我們產品全局設計和功能設計上的。

在產品矩陣方面,雲開發 Cloudbase 除了提供函數、文件存儲、數據庫等基礎服務以外,還融合微信生態的雲調用能力,開發者可以免鑑權快速調用微信開放能力。同時,場景化需求,提供靜態託管、擴展能力等綜合解決方案。

在功能細節上,不僅在計算服務上我們提供函數服務,在數據庫上我們更是聯合微信團隊共同打造了業界真正的 “Serverless for NoSQL”,Serverless 模式下的數據庫服務,開發者在雲 + 端上可以原生地使用微信 SDK 操作數據;特別是端上的數據操作,這種 Serverless 模式下的數據庫可以更有效地利用端的計算能力,從而節省用戶的底層資源成本。此外,微信內部的數據通路讓整個鏈路也更安全穩定可靠。

在多端佈局方面,雲開發 Cloudbase 與多端和跨端開發技術相結合,在微信小程序、QQ 小程序、Web、移動應用 (Flutter) 均已落地。

在開發者量級方面,已經有超過 50 多萬開發者在使用,API 日均調用量超過 7 億次。

InfoQ:你認爲工業級 Serverless 平臺應該具備哪些能力?

周俊鵬: 一門新興技術或理念如果想令開發者擺脫玩一玩的心態,轉變爲真正接受它的工業價值,有很長的路要走,ToB 平臺的路程則更加艱辛。而云開發 Cloudbase 作爲一個結合新技術理念的 ToB 平臺,這條路的艱辛程度更甚。以我個人的理解,工業級 Serverless 平臺有一個非常重要的基調需要在確定迭代方向之前完成,即明確用戶羣體。

以雲開發 Cloudbase 爲例,用戶的基本訴求雖然大體上均是在保證服務穩定性的前提下追求高生產效率,但是對平臺能力的具體需求上,按照顆粒度可以大致分爲兩類:一類用戶偏重完整、閉環,對平臺能力的需求以高度封裝的 API 爲主;另一類用戶偏重定製化、可組合甚至二次開發,對平臺能力的需求以細粒度的 API 爲主。所以我個人認爲工業級的 Serverless 平臺既要有高度封裝的全能型能力,也要具備細粒度可組合的定製能力。以此爲基調,我們團隊在制定雲開發 Cloudbase 迭代路線時,即提供函數、存儲、數據庫這類細粒度能力,又提供擴展能力、應用服務託管這類高度封裝的解決方案。

InfoQ:全棧架構如何升級?

周俊鵬: 我們講全棧開發並非是令一個開發者負責技術架構的所有環節和細節,而是令開發者只關注業務邏輯本身,而不必關心業務邏輯之外的繁雜事。比如 Web 服務器支持業務邏輯正常運行的背後是硬件、網絡、操作系統等與業務無關的事,我所期待的全棧開發理想形態是將這些工作從開發者的關注清單中刪除,只剩業務邏輯本身。以目前的技術發展狀況看,Serverless 是最有可能實現這種全棧架構的技術模式之一。

InfoQ:如何打造適合自身發展的工程模型?

周俊鵬: 打造工程模型的基本前提是緊密結合團隊自身的技術架構和組織架構,其中技術架構又往往取決於組織架構。以前端工程化爲例,前後端分工模式決定前端架構的定型,進而才能建立工程體系。回顧前端技術的發展歷程,從最初的靜態網頁到如今的大前端,技術的演進推動技術架構和組織架構的調整,工程模型也隨之改變。Serverless 提供了全棧開發的可能性,前端技術架構進化爲全棧架構後,工程模型從以前只覆蓋前端範疇進化爲全鏈路閉環體系是必然的趨勢。

InfoQ:你認爲 Serverless 應當如何與端應用開發技術相結合?

周俊鵬:Serverless 相關的技術本身隸屬雲計算領域,與應用端開發其實並沒有太深的聯繫,而跟雲計算之前的技術(比如:IaaS、PaaS、SaaS)相比,Serverless 之所以在前端領域大熱,根本原因在於:它比 IaaS、PaaS 更加接近應用層。回顧雲計算技術的發展,其實是自底向上一步步解放生產力的過程,而 Serverless 是目前雲計算領域最接近應用層的技術模式。但是這並不意味這沒有溝壑,Serverless 距離端的“最後一公里”至今仍沒有絕對統一的解決方案,雲開發 Cloudbase 也只是率先提出了一種相對合理且接受度較高的方案而已。

我們解決 Serverless 對端問題上堅持一雲多端的理念,服務本身是平臺無關的,在應用端的支持上有兩種可選方案:一是提供封裝能力的端 SDK;二是提供平臺無關的 HTTP API。用戶可以根據自身的需求選擇任意一種。SDK 的優點是高度封裝,並且我們有一些跨端的 SDK,比如:JavaScript SDK、Flutter SDK、React Native SDK 等等;HTTP API 的優點是粒度更細,可組合性和可定製性更高,但是對開發者的技術能力要求相對高一點。

嘉賓介紹

周俊鵬,騰訊高級工程師,就職於騰訊云云開發 CloudBase 團隊,負責雲開發 Cloudbase 相關技術研發工作。QCon 2017 講師,GMTC 2018/2019 出品人,主要研究方向是前端圖形編程、工程化和 Web 應用層架構。著有《前端工程化:體系設計與實踐》《前端技術架構與工程》。

活動推薦

Serverless 呼聲越來越高,也有人稱其是雲計算未來的發展方向,如何將其落地,如何走工程化道路,將架構持續升級?GMTC 北京2020設置“大前端工程化”及“Serverless 實戰專場”,一線大廠技術專家將深度解析,詳情請點擊GMTC北京2020官網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章