Serverless國內發展的縱向觀察

雲計算正在各領域持續深化其影響力,同樣,各領域下日益變化的需求,也在倒逼雲計算不斷進行自我優化。

2008 年可以說是大家比較公認的雲計算元年,因爲在這一年中越來越多的行業巨頭和玩家注意到這塊市場並開始入局。近年來,隨着企業數字化轉型在全球範圍的普及,雲計算產業得到了快速的發展。雲正在重塑企業 IT 架構,外加上疫情的影響,數字化也被提上了許多企業的日程表,這更是加快了基於雲服務的企業數字化轉型。

但是力的作用是相互的,在改變行業的同時,行業也在改變着你。由於市場對於高效、快速、實時的需求越來越重,雲計算的發展卻逐漸“滯後”。原因在於過去十年來隨着雲計算的普及,許多應用和環境都已經變爲了服務,開發者可以直接使用其中所集成的某一能力,是“構建一個框架運行在一臺服務器上,對多個事件進行響應”的模式,但是這種模式對時下這種快速響應的需求已經感到了喫力。

2012 年,隨着 Serverless 這一理念的推出,這一理念在霎時間就風靡了全球。在那個雲計算還在努力擴張的時代,這種無服務器化的想法極大刺激了全球開發者的神經。Serverless 的出現更是將主機管理、操作系統管理、資源分配、擴容,甚至是應用邏輯的全部組件都集成爲服務,開發者可以更直接的把大部分後臺能力作爲一個能力接口來使用。將開發過程中的能力使用改爲服務使用,通過構建或使用一個微服務或微功能來響應事件。

那麼這些企業爲什麼要採用 Serverless 呢?在此前 InfoQ 報道的一篇《2019 年 Serverless 應用報告:三分之二的落地實踐都成功了?》的文章,其中提到了對於企業和開發者來說,促使他們使用 Serverless 最直接的因素有以下三點:

  • 首先,“減少運營成本”是大家採用 Serverless 的第一大原因,應用 Serverless 之後,就無需爲潛在的流量高峯購買大部分時間處於空閒狀態的服務器機架;
  • 第二,“自動按需擴展”,採用 Serverless 之後,可以隨時擴展到當前的使用量,消除了意外或者季節性流量高峯的困擾;
  • 第三是“無服務器維護”,由於企業中大部分開發人員都是軟件工程師,並不是系統管理員,所以對於軟件的修復、保護和管理並不擅長,而使用 Serverless 之後,這些工作都可以交給供應商,他們只需專注於軟件開發。

毫無疑問,這都是 Serverless 最具競爭力的優勢。而這些深入人心的能力,就是 Serverless 在短短几年的發展歷程中快速積累形成的。

Serverless,不只是一個單純的理念

Serverless 譯爲無服務器架構, 首次出現是在 2012 年;2014 年年底 AWS 推出了 Lambda 產品標誌着 Serverless 逐漸走向商業化;2016 年 Google Cloud Function 和微軟 Azure Function 的成功,使得 Serverless 理念開始成爲趨勢。

從理念空談到實踐落地,Serverless 開始走向繁榮。

提到 Serverless,很多人的第一印象就是 FaaS+BaaS,當然這是 Serverless 的一種實現形式,也是主流對 Serverless 的理解,但是對於 Serverless 的完整定義卻一直都是這個領域內的問題之一。由於沒有準確的定義,使得 Serverless 在前幾年的定位過於寬泛,各類技術炒作也層出不窮。不過在最近幾年的發展中,隨着落地實踐案例不斷增多,業內對於 Serverless 的認知在加深,對於 Serverless 的定義也逐漸變得清晰。

Serverless 架構由兩部分構成,分別是 FaaS 和 BasS。這種”XaaS“的名詞類型想必每個人都很熟悉了,是表明在雲計算時代下各種能力即服務的標準公式,而 FaaS+BaaS 就是函數即服務與後端即服務的結合。

後端好理解,函數即服務應該如何理解?開發者先將函數定義封裝在容器中,通過調用函數來實現調用後端存儲等服務,進而快速完成整個後端能力在整個產品中的效力的過程就是函數即服務(具體內容下文會提及)。不過需要強調的是,Serverless 雖然譯爲無服務器,但其並不是真的不需要服務器,而只是將服務器等基礎設施的管理“隱藏”起來,開發者無需擔心一切由平臺維護,開發者只需關注業務邏輯即可。

IaaS 時代,基礎設施即服務,用戶不再需要購買實體硬件設施,預示着雲計算時代的開啓;SaaS 時代,軟件及服務,各種線上能力開始在雲端噴薄而出;BaaS 時代,僅提供應用依賴的第三方服務,只以 API 的方式提供應用依賴的後端服務;而在 FaaS 時代,用戶直接提交代碼包即可實現運行和部署,開發者不再關注底層,Serverless 必然將在這個階段開始繁榮。

從全球範圍來看,根據諮詢公司 O’Reill 2019 年 12 月發佈的 Serverless 使用調研報告顯示,已有 40% 的受訪者所在的組織採用了 Serverless,並且使用 Serverless 技術的行業也十分廣泛。更值得關注的是,有超過 50% 的受訪者在一至三年內採用 Serverless,而 15% 的受訪者在三年前就已經開始使用 Serverless,其落地效率可見一斑。

接下來再將視野落腳在國內,Serverless 也迎來了其黃金髮展階段。

Serverless 在騰訊雲逐步實現縱深發展

從空談理念到技術選型的 C 位,Serverless 在國內逐漸成爲實踐核心。

雖然 Serverless 進入國內的時間相對較晚,但其發展速度卻是最快的,國內企業對於 Serverless 的接受程度也越來越高。近幾年國內的騰訊雲、阿里雲、華爲雲三大公有云廠商均開始提供基於 Serverless 框架的能力服務,其中騰訊雲作爲 Serverless 的先行者,近幾年頻頻有大動作發聲:

  • 騰訊云云函數 SCF,作爲一款 FaaS(Function as a Service,函數即服務) 產品,其提供了各類觸發器來控制函數的執行條件,代碼完全由事件觸發,平臺根據請求自動平行調整服務資源,通過對一段數據執行函數計算然後進行輸出;
  • 全球最流行的 Serverless 開發平臺 Serverless.com 達成戰略合作,其面向國內開發者的 Serverless Framework,其具有資源編排、自動伸縮、事件驅動等能力,覆蓋編碼、調試、測試、部署等全生命週期,幫助開發者通過聯動雲資源迅速構建 Serverless 應用。

除此之外,騰訊雲在 Serverless 的落地過程中也在長期保持務實的風格,而這種專注於實踐能力的優化,也得到了全球諮詢與服務機構 Forrester 認可。在 Forrester 最新發布的《The Forrester New WaveTM: Function-As-A- Service Platforms, Q1 2020》報告中,騰訊雲 FaaS 能力憑藉在產品體驗、安全性、戰略願景等方面的絕對優勢脫穎而出,綜合評分位居全球前三,也是中國唯一進入全球 Top3 的雲廠商,並被 Forrester 官方贊爲“強勁表現者”,原因主要有以下幾點:

  • 開發、運維、調試、部署:針對開發者關心的 Serverless 架構下開發、運維、調試、部署等痛點,騰訊雲提供了全雲端閉環體驗。不少企業級 Serverless 項目上雲的成功案例,讓大家更有信心:“上雲”,真的變得越來越容易。
  • 開發者工具集方面:騰訊雲提供了本地命令行工具、IDE 插件和 Web IDE 等支持,同時,還提供了健壯的功能隔離、租戶權限管理和支持虛擬網絡等功能。豐富的開發工具集,讓開發者工作時如虎添翼。
  • 安全方面:騰訊 Serverless 在租戶權限隔離、網關鑑權、公網防火牆、MicroVM 級別隔離等維度付諸巨大努力。守護每一行代碼的安全,是騰訊雲的職責所在。
  • 計費粒度:騰訊雲 Serverless 首發的 1ms 的計費粒度,如此精打細算,全球也是“罕見”。要知道,目前行業普遍的時長計量粒度爲 100ms(當實際運行時長小於 100ms 時,按 100ms 計費)。
  • 全球部署:目前,騰訊雲 SCF(Serverless Cloud Function)已經在北美和亞太地區多個地區上線,而在南美、澳大利亞和歐洲等地區,騰訊雲也正在加速部署,推動 SCF 在全球的部署。

很明顯可以看出,騰訊雲 Serverless 的技術體系和能力逐漸豐滿並走向成熟。

Serverless Framework-- 開發者的體驗縱深

從 2017 年至今,經過三年的沉澱,騰訊雲 Serverless 的用戶規模以及產品下載、調用等次數每年都在急速增長。在這三年中,騰訊雲積極吸收用戶反饋,結合時下行業遇到的通用性問題,不斷豐富和完善 Serverless 的架構和能力。

而在底層基礎設施方面,騰訊雲 Serverless 採用了輕量化虛擬機技術,現階段的 Serverless 架構能夠輕鬆實現業務進程的毫秒級啓動。並且騰訊雲在最底層做了雙活,加固了對底層資源的安全保護;在資源管理層,騰訊雲採用了集羣監控,如果一個集羣出現故障,系統會自動切換到另一可用集羣,儘可能將對用戶的影響降到最低。此外隨着用戶量的增加,騰訊雲也設置了專門的自動擴縮容算法,以應對用戶的需求變化。

這裏的用戶當然是指使用 Serverless 的開發者羣體,他們只需關注上圖綠色部分以及和業務代碼相關的的部分,其它底層設施完全交由騰訊雲託管,極大縮短了整個研發週期,也不用因爲服務器的維護而造成額外的支出。

Serverless 從來不是一款產品,也不是一個工具,而是一整套能力的合集。

如果要利用 Serverless 能力實現業務的落地,開發者需要依靠雲函數 SCF、儲存服務、開發者平臺、開發者工具、應用服務等一系列能力的支持。而騰訊雲則將這部分能力整合到了一起,推出了一站式 Serverless 應用開發平臺 – 騰訊雲 Serverless Framework。

這套框架是騰訊雲選擇了業內主流的 Serverless Framework 無服務器應用框架,結合國內開發者的習慣於業內痛點,爲國內開發者打造的一站式 Serverless 應用開發平臺,具有資源編排、自動伸縮、事件驅動等能力,覆蓋編碼、調試、測試、部署等全生命週期管理能力,幫助開發者通過聯動雲資源來迅速構建 Serverless 應用,爲開發者提供了全面的 Serverless 應用開發環境。

Serverless Framework 作爲一款標準化、組件化的 Serverless 應用開發平臺,具體優勢主要有以下幾方面原因:

  • 應用級框架:Serverless Framework 提供貼合應用場景的框架,開發者根據實際需求選擇對應框架後,只需專注於業務邏輯的開發,無需關注底層資源;
  • 便捷部署:開發者部署應用時,Serverless Framework 會根據應用特性,自動完成雲函數、API 網關、COS 等基礎資源的部署和配置,無需再手動部署配置每一項基礎資源;
  • 一站式體驗:通過 Serverless Framework,開發者可以快速創建 Serverless 應用,並完成應用的調試和部署,監控已發佈應用運行狀態並快速排障;
  • 雲資源能力的高度封裝,靈活的組裝方式。
  • 全面的應用開發平臺背後則是安全穩定、易用高效的無服務器函數計算平臺支撐。騰訊云云函數 SCF 爲企業和開發者們提供的 Serverless 執行環境,使用者無需購買和管理服務器,只需使用 SCF 平臺支持的語言編寫代碼即可運行,幫助開發者脫離繁雜的配置工作,不再受到後臺架構和運維的干擾,是實時文件處理和數據處理等場景下理想的計算平臺。

去服務器化是大勢所趨

可以說,Serverless 架構的興起,使得去服務器化真正解放了開發者,讓基礎設施管理有了新方式。隨着技術上對去中心化、輕量虛擬化、細粒度計算的需求愈發強烈,這種“全雲化”的開發模式也預示着真正的雲計算時代正在到來。

但是在未來,如何更好地踐行去服務器化,如何利用 Serverless 來幫助每一名開發者實現更低成本、更高效、更穩定的業務部署,這不僅僅是騰訊雲在思考的問題,更是全球 Serverless 踐行者一直在尋找的方向。

6月19日,ServerlessDays 將首次進入中國,更多詳細內容可點擊此鏈接訪問大會官網查看。

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