Serverless:雲端計算的下一個10年

阿里雲技術發表於2020-09-24

10年前, UC 伯克利就曾預測雲端計算將會得到蓬勃發展,客戶無需自建機房,按需為雲端的資源進行付費,就像租賃模式,降低了企業在IT 方面的一次性投入,同時,藉助雲端豐富的產品支援,加快了業務的上線和迭代速度,加碼企業核心競爭力,值得稱讚的是,基於雲來構建的業務,其穩定性和安全性獲得了更專業的保障。

這就是常說的雲端計算帶來的技術紅利:更經濟、更高效、更開放。因此,在各類市場分析報告中都能看到,雲正在逐步替代傳統 IDC 市場,呈現此消彼長的發展態勢。

我們總是對未來充滿好奇,對新舊事物的交替感到興奮。
image.png
2015年 AWS 推出了 Lambda 服務,Serverless 這個詞首次出現在公眾面前,隨後,2017 年阿里雲推出了函式計算 FC,2019年推出了 Serverless 應用引擎 SAE 和 Serverless 容器服務 ASK。伯克利再次預測 Serverless 將取代 Serverful 計算,由此,Serverless 引發業內的廣泛關注。

Serverless 將雲端計算的紅利 - 更經濟、更高效、更開放,發揮到了極致,通過事件觸發的機制,將閒置資源降低到0,就像一盞訊號燈,人出現的時候才會消耗電能,沒人的時候就會自動熄滅,做到了真正意義上的彈性;同時,無需關心 IaaS 層的運維,將 Server(伺服器)的運維工作 less(遮蔽)掉了。

那麼有人會問,技術總存在兩面性,Serverless 聽上去那麼完美,她是否存在應用場景上的限制呢?螞蟻集團資深技術專家趙鵬在雲棲大會的一場圓桌討論上,把這個問題拋給了 Forrester 首席分析師 Charlie 和 ZStack 的創始人張鑫。
image.png
Charlie:"Forrester 對 Serverless 領域有著比較長的深入研究, Serverless 的應用場景總結來看,有3大類。一是超規模,金融、教育、醫療、製造等企業,基於雲平臺來構建業務時,一些業務工作負載高的,適合通過 Serverless 技術來支撐;二是超動態,消費者通過數字的觸點或者物理的觸點,來和企業提供的產品和服務進行互動,他們的互動方式和互動頻次會考驗平臺的動態支撐能力,適合使用 Serverless 技術;三是超高效支援,即開發者能夠以更高效的方式來實現超規模、超動態的業務需求。"
image.png
張鑫:“要去理解 Serverless 的應用場景,我們需要有一個共識,即 Serverless 並不是一個完整的技術棧,不是解決所有問題的銀子彈。Serverless 是雲原生技術體系的重要補充,是一種粘合劑,Serverless 是事件驅動的架構,通過以程式碼片段形式的事件對資源進行觸發,來實現雲原生體系中業務的解耦和降低雲的使用成本。”

除了應用場景上有所限制外,不同於擁有統一事實標準和豐富生態的容器技術,Serverless 仍處於早期的技術探索階段,但被問及 Serverless 是否存在廠商鎖定,以及其發展和容器技術有哪些關聯時。
image.png
Harbor 專案創始人 Henry 認為:

“Serverless 就像一個極簡版本的 PaaS,只需要寫少量的程式碼或者業務的核心邏輯,其他都交給平臺去提供,就能實現一套業務,無論是程式碼的執行和服務的呼叫,Serverless 應用註定是離不開他所依賴的平臺,這就意味著針對某個 Serverless 平臺編寫的程式碼是無法跑在另一個平臺上。當然,通過 CloudEvents 這類用於製作統一事件格式的開源專案,可以提升不同平臺之間的服務互操作能力,來促進 Serverless 平臺的標準化。

由於容器和 K8s 已經成為雲原生應用的主流技術和執行平臺,把 Serverless 負載跑在 K8s 上,實現快速啟動和彈性伸縮的能力,兩者會相輔相成,共同發展。總結來說,Serverless 在容器技術發展的過程中佔有越來越重要的地位,而容器技術在其發展過程中也會越來越考慮 Serverless 的需求。”
image.png
阿里雲 Serverless 負責人楊皓然對“如何看待 Serverless 的廠商鎖定問題”時,給出了自己的答案:“我們認為 Serverless 應該是無廠商鎖定的,阿里雲函式計算深度融合開源容器生態,發揮雙方各自的優勢,同時阿里雲 EventBridge 支援 CloudEvents,統一雲的事件標準,同時我們也將推出更開放的開發者工具鏈,幫助使用者更低成本的使用各類平臺的函式服務,並希望以社群的方式推動 Serverless 在國內的落地。”

顯然,只有開源社群、廠家共同推動的 Serverless 生態的發展,才能讓技術變得更經濟、更高效的同時,更加開放。

技術的商用總要先經歷自用,是為了保證商用技術的成熟和穩定,走在技術前沿的科技公司總會率先去實踐,並將實踐收穫積極的分享出來。

十年前,阿里將微服務技術運用在電商場景下,並不斷打磨和迭代,後來有了Apache Dubbo / Apache RocketMQ / Nacos / Sentinel / Seata / Spring Cloud Alibaba / ChaosBlade 等微服務框架/元件的開源,極大的豐富了Java 生態,加速了微服務的落地。如今,阿里整個經濟體都在實踐 Serverless,包括淘寶、天貓、支付寶、釘釘、飛豬、閒魚、語雀等,將 Serverless 的應用場景擴充套件到前端全棧、小程式、微服務、新零售、遊戲互娛等領域。

閒魚就是其中的積極探索者。
image.png
閒魚的架構負責人王樹彬分享道:“閒魚從業務特點上看,既有點像小淘寶,有著相似的電商屬性,同時閒魚又是獨立 APP,有自己的業務流量閉環,也有自己的使用者特點。所以,技術架構上,一方面因為相似的電商屬性,閒魚絕大部分基礎能力是依託在阿里雲和淘寶的電商業務系統之上的,在上圖中最下面這層。這些基礎能力,是支撐閒魚快速迭代和發展的基石。而另一方面,因為閒魚的業務獨特性,我們需要有快速的創新的研發能力。所以,上面的業務層是我們快速研發架構的關鍵。”

在端上依託 Flutter 和 H5 跨端框架釋放出生產力後,我們發現很多場景下,可以讓端的同學向服務端側走一走,基於 Serverless 直接在服務端側開發 BFF 層,形成雲端一體化研發模式。這樣可以極大減少端和雲的協同,因為協同是影響研發效率的最大因素之一。

什麼樣的場景合適呢?第一種場景是重互動的頁面,例如我們的下單頁面,在使用者變化下單地址、交易方式、優惠方式時,價格都需要重新計算,存在很重的雲、端邏輯協同成本,使用一體化使互動邏輯、資料邏輯歸一。第二種場景是類似活動、搭建類的頁面,這類頁面上線快,服務端的邏輯輕,以資料拼裝為主,這類業務通常可以由端側同學主導,也很適合一體化程式設計。這兩類是目前最適用的場景。隨著端的同學對函式計算能力的提升,還會有更多輕量場景適用。

除了一體化的服務外,還有更大一部分膠水層服務,是由服務端同學直接提供的,這些服務在傳統應用上開發的,傳統大應用有著非常嚴重的臃腫、衝突、耦合的問題。我們用 Serverless 架構去拆分傳統應用,可以讓開發者極大的聚焦業務,做到極速交付,很好的提升這部分研發效率。

下面這段視訊能夠幫助我們進一步認識 Serverless 所帶來的極致彈性和快速交付能力。

正在探索 Serverless 技術的除了閒魚的王樹彬,還有石墨文件的 Serverless 技術負責人萬明、Timing 微服務架構負責人鄭超和聯華華商資訊中心部門主任王建中。

萬明:“我們將 Serverless 技術應用於表格的改動和合並,以及表格渲染結果的計算,這兩類非常消耗 CPU 和記憶體的場景中,提高開發效率,降低計算成本。”

鄭超:“我們沒有專門的運維團隊,通過 SAE 的秒級自動彈性,我們可以輕鬆的動態擴容應對峰值大考,峰谷時按需自動縮容,不僅保障了系統的 SLA,在成本上,比以往 ECS 保有方式節省了35%左右的硬體成本。”

王建中:“我們將線上核心業務改造為全 Serverless 架構的中臺模式,採用『函式計算 + API 閘道器 + OTS』作為計算網路儲存核心,彈性支撐日常和大促峰谷所需資源,專案週期從 6 個月減少為 3 個月,資源升級成本下降約100%。”

石墨文件、Timing、聯華華商等企業客戶之所以能快速藉助 Serverless 技術應用在業務上,得益於阿里雲豐富的 Serverless 產品和紮實的底層技術。

image.png
阿里雲智慧研究員丁宇在雲棲大會上分享道:“阿里雲提供的豐富的 Serverless 產品,包括面向函式的 Function Compute、面向應用的 SAE、面向容器編排的 Serverless K8s、以及面向容器例項的 ECI,構成當前所有云廠商中最完整的 Serverless 產品矩陣。而這些 Serverless 產品的背後,是阿里雲基礎設施的四大核心技術——神龍架構、沙箱容器、盤古儲存、洛神網路,它們為 Serverless 提供了穩固的基石與強大的核心競爭力。

完善的 Serverless 產品還需要配備完備的後端雲服務和豐富的開發者工具,例如我們這次新發布的事件匯流排 Event Bridge 可以輕鬆連線雲服務、雲應用和 SaaS 應用,進一步加速阿里雲 Serverless 產品端到端的整合,而 Serverless Workflow 通過視覺化的函式編排模型,即可輕鬆構建媒體處理流程、機器學習流水線、自動化運維流程等複雜的工作。

此外,全新推出的 Serverless-tools 與 Serverless 應用中心,用於打造更加開放、標準、無廠商繫結的 Serverless 社群。與此同時,容器映象與效能例項的加持更是融合了容器生態,打破函式最小執行單位,讓開發者使用起來更簡單。開發者一步上雲、一鍵 Severless 或將成為現實。”

回到文章開始部分的那張圖,軟體技術的發展,經歷了物理機、虛擬機器、雲端計算、容器技術的階段,真正解放雙手的 Serverless 正在向我們走來,當被問到下一個十年的 Serverless 將會是什麼趨勢時,阿里雲資深技術專家司徒放給出了這樣的一個答案:

“下一個十年的 Serverless 將會是標準開放、無廠商鎖定的 Serverless,和雲原生生態緊密結合的 Serverless,整合雲邊端應用更簡單的 Serverless,能用更低成本支撐更多複雜業務的 Serverless。”

 

原文連結

本文為阿里雲原創內容,未經允許不得轉載。

相關文章