天天看點

Serverless:雲計算的下一個10年

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

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

我們總是對未來充滿好奇,對新舊事物的交替感到興奮。

2015年 AWS 推出了 Lambda 服務,Serverless 這個詞首次出現在公衆面前,随後,2017 年阿裡雲推出了函數計算 FC,2019年推出了 Serverless 應用引擎 SAE 和 Serverless 容器服務 ASK。伯克利再次預測 Serverless 将取代 Serverful 計算,由此,Serverless 引發業内的廣泛關注。

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

那麼有人會問,技術總存在兩面性,Serverless 聽上去那麼完美,她是否存在應用場景上的限制呢?螞蟻集團資深技術專家趙鵬在雲栖大會的一場圓桌讨論上,把這個問題抛給了 Forrester 首席分析師 Charlie 和 ZStack 的創始人張鑫。

Serverless:雲計算的下一個10年

Charlie:"Forrester 對 Serverless 領域有着比較長的深入研究, Serverless 的應用場景總結來看,有3大類。一是超規模,金融、教育、醫療、制造等企業,基于雲平台來建構業務時,一些業務工作負載高的,适合通過 Serverless 技術來支撐;二是超動态,消費者通過數字的觸點或者實體的觸點,來和企業提供的産品和服務進行互動,他們的互動方式和互動頻次會考驗平台的動态支撐能力,适合使用 Serverless 技術;三是超高效支援,即開發者能夠以更高效的方式來實作超規模、超動态的業務需求。"

Serverless:雲計算的下一個10年

張鑫:“要去了解 Serverless 的應用場景,我們需要有一個共識,即 Serverless 并不是一個完整的技術棧,不是解決所有問題的銀子彈。Serverless 是雲原生技術體系的重要補充,是一種粘合劑,Serverless 是事件驅動的架構,通過以代碼片段形式的事件對資源進行觸發,來實作雲原生體系中業務的解耦和降低雲的使用成本。”

除了應用場景上有所限制外,不同于擁有統一事實标準和豐富生态的容器技術,Serverless 仍處于早期的技術探索階段,但被問及 Serverless 是否存在廠商鎖定,以及其發展和容器技術有哪些關聯時。

Serverless:雲計算的下一個10年

Harbor 項目創始人 Henry 認為:

“Serverless 就像一個極簡版本的 PaaS,隻需要寫少量的代碼或者業務的核心邏輯,其他都交給平台去提供,就能實作一套業務,無論是代碼的運作和服務的調用,Serverless 應用注定是離不開他所依賴的平台,這就意味着針對某個 Serverless 平台編寫的代碼是無法跑在另一個平台上。當然,通過 CloudEvents 這類用于制作統一事件格式的開源項目,可以提升不同平台之間的服務互操作能力,來促進 Serverless 平台的标準化。

由于容器和 K8s 已經成為雲原生應用的主流技術和運作平台,把 Serverless 負載跑在 K8s 上,實作快速啟動和彈性伸縮的能力,兩者會相輔相成,共同發展。總結來說,Serverless 在容器技術發展的過程中占有越來越重要的地位,而容器技術在其發展過程中也會越來越考慮 Serverless 的需求。”

Serverless:雲計算的下一個10年

阿裡雲 Serverless 負責人楊皓然對“如何看待 Serverless 的廠商鎖定問題”時,給出了自己的答案:“我們認為 Serverless 應該是無廠商鎖定的,阿裡雲函數計算深度融合開源容器生态,發揮雙方各自的優勢,同時阿裡雲 EventBridge 支援 CloudEvents,統一雲的事件标準,同時我們也将推出更開放的開發者工具鍊,幫助使用者更低成本的使用各類平台的函數服務,并希望以社群的方式推動 Serverless 在國内的落地。”

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

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

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

閑魚就是其中的積極探索者。

Serverless:雲計算的下一個10年

閑魚的架構負責人王樹彬分享道:“閑魚從業務特點上看,既有點像小淘寶,有着相似的電商屬性,同時閑魚又是獨立 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 産品和紮實的底層技術。

Serverless:雲計算的下一個10年

阿裡雲智能研究員丁宇在雲栖大會上分享道:“阿裡雲提供的豐富的 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。”

Serverless:雲計算的下一個10年