奇點已來,推進 All on Serverless 有哪些困難、如何破局?

奇點已來,推進 All on Serverless 有哪些困難、如何破局?

從 2012 年提出 Serverless 到今年 2022 年剛好十年。

過去十年,上雲是確定性趨勢,在這個階段企業一開始的關注點在於如何實現平滑上雲。隨著越來越多的企業上雲,甚至很多企業系統第一天就是在雲上構建,企業的核心關注點轉變為如何更好地利用雲的能力。

在新的階段中,雲服務的角色也從單純的提供資源,變成了企業構建應用的新平臺,幫助企業儘可能減小機器運維等低價值重複工作,聚焦於業務的創新。雲廠商的核心能力轉變為企業提供 Serverless 雲服務,消除用雲複雜度,用更簡單的方式提高資源利用率,幫助企業降低成本。

這幾年,不只是雲廠商,大量的開源商業產品也採用了 Serverless 模式,包括 Confluent Cloud、MongoDB Atlas、Snowflake、Databricks 等。隨著雲廠商在儲存、計算、中介軟體、大資料等領域推出越來越多的 Serverless 服務,雲產品體系逐漸 Serverless 化,也推動著 Serverless 架構從概念進入到大規模生產落地階段。2021 年 DataDog 釋出 Serverless 研究報告,資料表明,從雲原生初創公司到大型企業都在關注 Serverless,Serverless 生態已經超越了 FaaS,包含數十種服務,可以幫助開發人員構建更快、更動態的應用程式。

Serverless 奇點己來,所謂奇點,是由平穩發展轉向高速發展的轉折點,這也意味著 Serverless 在全行業的落地將全面爆發。

但與此同時,我們也看到,一方面是企業關注度不斷上升、行業開始落地,另一方面,企業和開發者也對 Serverless 存在一些困惑和顧慮。

阿里雲聯合 InfoQ 收集了一些企業和開發者對現階段 Serverless 的反饋,並於 12 月 16 日舉辦了雲原生 Serverless 開發者評測局線下沙龍,邀請了阿里巴巴研究員、阿里雲智慧雲原生應用平臺負責人丁宇、阿里雲 Serverless 研發團隊、上海慧遊文化 CEO 宋傑、德基網路科技有限公司大前端技術負責人劉曉偉以及南瓜電影、寶馬等企業技術負責人,一起探討 All on Serverless 過程中的挑戰和經驗,以期給更多落地 Serverless 的企業提供參考和借鑑。本文擷取沙龍上的精彩發言。

本文是

“2022 InfoQ 年度技術盤點與展望”系列文章

之一。

Serverless 到底是什麼

在談論 Serverless 之前,我們先了解下,Serverless 是什麼?

2012 年,Serverless 概念正式登上舞臺。2016 年,首屆 Serverless ConF 將這項技術的討論推向高峰。2017 年,阿里雲推出國內首個重磅 Serverless 產品服務 – 函式計算 FC(Function Compute),讓開發者只需要專注於業務邏輯開發,而不是把大量精力花在伺服器等基礎設施的管理上,從而快速兌現業務價值。

2018 年至 19 年,伯克利連續發表兩篇論文對 Serverless 做出定義,預測 Serverless 將會成為雲時代的最重要的計算正規化,Serverless 獲得了越來越多的關注。

Serverless 是一個非常廣義的概念,並不侷限於計算。一般同時滿足以下條件可稱為 Serverless 服務。

第一、全託管服務。意味著企業使用抽象的服務化介面,而不是直接面對底層資源,也就沒有安裝、配置、維護或者更新軟硬體的負擔。全託管服務通常也提供了內建的容錯、安全、可觀測能力,使用者通常不需要再重新構建這些能力。

第二、自適應彈性。意味著服務能夠根據負載大小自動彈性伸縮,不但讓系統能夠支撐快速發展的業務,也大大提升了資源使用效率。

第三、按實際用量付費。意味著只需根據實際的執行時間、流量或呼叫次數付費,降低了成本。因此 Serverless 服務核心價值在於儘可能消除客戶非功能性程式碼開發,簡化應用基礎設施管理的工作,從而實現研發效率的飛躍。

上海慧遊文化 CEO 宋傑親歷首屆 Serverless Conf 現場,在他看來:Serverless 是一項非常顛覆的技術和解決方案,它和之前出現的所有技術創新都有本質區別,因為它牽涉到的核心問題是商業模式的改變。“

類似於機器語言到高階語言的飛躍,一下子就簡化了做企業級應用的程式設計師要關心的問題,複雜度大大降低”

Serverless 引領下一代應用架構

Serverless 服務契合了研發模式演進的趨勢,過去十年,各大雲廠商都在不斷將產品體系 Serverless 化。

作為最早推進 Serverless 在中國落地的阿里雲,Serverless 演進的過程,也是雲計算的發展歷程。阿里巴巴研究員、阿里雲智慧雲原生應用平臺負責人丁宇在分享中提到,阿里雲是國內最早做雲計算的企業,從 2009 年成立開始,第一階段從資源和 IaaS 開始做起,在這個階段,很多技術被開源並開始大規模流行,包括大資料、AI、中介軟體等微服務和應用層的技術。

從雲的角度來看,這時候雲廠商和開源具有非常好的協同關係,於是在雲上出現了很多全託管的雲產品。從企業客戶角度來看,要確保應用在雲上可靠、高效的執行,上雲後的複雜度是非常高的,這時企業進入到想要更好用雲的階段,對於雲的進化來講,也開始向服務化的方式演進,也就是說,雲開始從提供資源逐漸轉變成提供服務。在這樣的背景下,阿里雲逐漸走向 Serverless 服務形態,包括誕生諸如計算類、儲存類、資料類、資料庫類、大資料類甚至音影片類等 Serverless 的產品。

阿里雲 Serverless 演進和實踐

2017 年,阿里雲推出 FaaS 產品函式計算 FC,這是一種以事件驅動為核心的全託管計算服務,使用者只需編寫程式碼並上傳,函式計算就會自動準備好計算資源,以彈性、可靠的方式執行程式碼,並提供完整的可觀測能力,大幅簡化開發運維過程。第二年阿里雲又推出了 Serverless 應用引擎 SAE,SAE 是業內首款面向應用的 Serverless PaaS 平臺,遮蔽底層 IaaS 和 Kubernetes 的複雜度,提供了零程式碼改造、成本更優、效率更高的應用託管方案,幫使用者實現單體 Web 應用、微服務應用以及定時任務的 Serverless 化。

同年領先業界推出 Serverless 容器服務 ASK,基於彈性容器例項 ECI(Elastic Container Instance),實現 1min 擴容 2000 個 pod,降低了 Kubernetes 使用門檻,讓使用者更專注應用程式,而非管理底層基礎設施。

2020 年阿里雲開源 Serverless Devs,成為業內首個支援主流 Serverless 服務 / 框架的雲原生全生命週期管理的平臺。2022 年 9 月該專案正式進入 CNCF Sandbox,也成為業內首個入選的 Serverless 工具專案。

Serverless 將雲計算的粒度變得很細,企業選擇是否採用 Serverless 產品不是單純的軟體問題,Serverless 背後需要有足夠大的計算機叢集和產品體系能力,才能保證其彈性滿足企業複雜的業務需求 。阿里雲提供了從容器到應用等各個層次的 Serverless 產品組合,並且堅定的推進產品體系的全面 Serverless 化。

目前阿里雲已有 20 餘款核心產品實現了 Serverless 化,阿里雲函式計算 FC 日呼叫次數超過 200 億次,有效支撐歷年雙 11 百萬 QPS 洪峰,業務增速超過 300%,整體規模位居國內首位,經歷超複雜場景的錘鍊。Serverless 計算產品凝聚了阿里雲在雲原生領域的技術沉澱和最佳實踐經驗。

除了產品形態的改變之外, Serverless 同樣帶來了軟體研發正規化的改變。Serverless 雲產品是模組化、可組合、高可用的,他們是構建應用的要素。透過 Serverless 計算組合多個雲產品就可以快速構建應用。

Serverless 為基礎,研發方式升級到組裝式研發。組裝式研發徹底顛覆了原有的軟體研發方式,大幅提升研發效率,靈活應對業務挑戰。根據權威機構調研統計,組裝式研發相比傳統模式,可為研發提效 50% 以上。

德基網路科技有限公司大前端技術負責人劉曉偉

對 Serverless 的降本提效效果表示肯定。他說:“過去一年我們在做前端的 Serverless 升級改造。從支出成本角度來講降低很多;從服務角度來看的話,需要分為幾個方面,單一應用切成 Serverless 改造成本有適當增加,但一旦改造完成,後續開發效率就會高很多。“

這就是 Serverless 帶來的價值:真正讓開發者迴歸業務本身,讓企業做得更少而收穫更多。

Serverless 推進中的困境和破局

對於目前的 Serverless 來說,價值已經不言自明,當然,在規模化落地的道路上,Serverless 也會遇到一些阻力。企業開發者在是否採用這一問題上仍有猶豫和顧慮,認同技術趨勢與實際應用落地之間存在一道無形的鴻溝。

丁宇認為:這就是一個技術發展過程中常見的現象,是符合技術發展規律的。Serverless 規模化落地需要一個契機。而這個契機已經到來。當前企業及開發者擁抱雲計算更加積極,雲已經成了一個創新平臺。同時,更多產品具備了雲特性,如自適應彈性、免運維等。從 Serverless 本身來講,因為它足夠先進,不是簡單地替代網際網路分散式架構,而是對網際網路分散式架構的升級,從而形成了自己的一套體系,能夠為企業帶來很多顯而易見的變化。

由於處在不同的時期,企業會有自己不同的選擇,隨著 Serverless 技術發展得更成熟,相信會有更多的企業願意擁抱 Serverless,也許像網際網路分散式架構一樣成為主流架構還需要 5-10 年的時間,但是先行者往往是會拿到第一波紅利的,這會讓企業更具有競爭力。

目前,Java 語言仍佔據國內後端開發主導地位,而 Java 語言的冷啟動特性在函式計算上的並不友好。冷啟動時長使得使用者很難享受到 FC 毫秒計費,秒級擴容等特性帶來的技術紅利。

不久前 AWS 釋出了消除冷啟動的產品 SnapStart,使得冷啟動再次成為熱議話題。

冷啟動包含了系統冷啟動和應用冷啟動兩個部分。對於系統冷啟動,阿里雲在硬體、MicroVM、作業系統、語言執行時等進行了全棧最佳化。阿里雲函式計算 FC 在系統冷啟動階段的效能指標業界領先。而應用冷啟動和使用者選擇的語言以及程式邏輯本身有關係。比如 Java 類應用,啟動時間通常遠遠高於 Node。js、Python、Go 等語言,阿里雲內部一直在打磨這類技術,但實際應用會比較謹慎。因為 SnapStart 這類技術需要客戶的應用程式對 SnapStart 進行適配,否則會出現程式正確性問題。今天 AWS 支援了這個技術,做了大量基礎庫、三方庫的適配,雖然簡化了客戶的複雜度,但最終仍然需要客戶自己保證正確性。因此阿里雲提供了一些保證相容性的方案,希望透過持續最佳化儘可能減少使用者的適配負擔。

目前,阿里雲主要透過預留和閒置處理冷啟動問題,另外,今年雲棲大會函式計算 FC 釋出了 vCPU 和記憶體解綁的策略,客戶可以更精細化管理資源配比,資源利用率再一次得到最佳化,成本會進一步降低。

除此之外,廠商鎖定(vendor lockin)也是阻礙 Serverless 規模化的一大困擾。對此,阿里雲也有解法。

首先,阿里雲已開源了 Serverless Devs,Serverless Devs 是一個開源開放的 Serverless 開發者平臺,致力於為開發者提供強大的工具鏈體系。得益於功能的可插拔特性,Serverless Devs 可以非常簡單的支援不同雲廠商的專案部署,或者一鍵部署到不同雲平臺。

其次, Serverless 架構的理念本身是重塑應用的研發模式,雲平臺提供完整的 Serverless 產品體系,雲平臺提供一整套 Serverless 化的 BaaS 以及提供更為標準化、流程化的橋接。而 FaaS 更細粒度的業務處理拆分可以讓業務程式碼開發更加簡單,進而讓企業多雲方式的構建更加簡單。

最後,企業採用多雲方式,也不代表所有的業務都要進行多雲,平均地分佈在各朵雲上,很多時候是在差異化的能力上選擇最好的雲,只有選擇最合適的雲、深度用雲才能真正發揮雲廠商的優勢,獲得更好的雲資源。綜上所述,如何做無鎖定,廠商開放規範,不做限制,海納百川,在一定程度上就是無廠商鎖定。

Serverless 未來的暢想和規劃

除了技術需要通關,思維的轉變也是橫亙在開發者面前的一道鴻溝。

Serverless 從技術創新走到應用再走到普及,對開發者而言最大挑戰是系統設計模式和編碼習慣的改變。

不少開發者對 Serverless 架構的學習都有疑問,到底是用原有開發正規化還是需要學習新的正規化?對於這個擔憂,慧遊文化 CEO 宋傑認為:“Serverless 會對傳統開發模式和邏輯實現顛覆,對成熟的開發人員而言挑戰可能更大,學習成本方面,對於經驗豐富的程式設計師來說,進入雲原生世界,最大的障礙不是‘學習’,而是‘遺忘’。“

雲原生技術打破了原有的限制,CPU、硬碟、記憶體沒有大小限制。對於越是經驗豐富的程式設計師來說,思維的轉換就越是困難。“程式設計師要需要不斷學習 Serverless,才能夠克服固有的思維模式。希望阿里雲能夠提供更多的培訓幫助大家實現思維定式的轉換。”宋傑表示,這也是他對阿里雲的期待。

除了提供更加全面豐富的 Serverless 產品與方案,作為 Serverless 中國的先行者,阿里雲將持續擁抱開源,為 Serverless 使用者提供多樣化、可選擇、更靈活的方式,提升開發者的幸福感。

“未來阿里雲整個產品體系都將 Serverless 化,產品和產品之間的整合更加細膩,由點及面,將整個鏈路串聯起來,普惠更多的企業和開發者。”丁宇表示。

如果你對本文感興趣,歡迎在文末留言,或加入 InfoQ 寫作平臺話題討論:

https://xie。infoq。cn/

【2022年度技術盤點與展望】專題

已上線,新增進收藏夾,精彩不錯過。

同時,InfoQ 年度展望直播周將於 2023 年 1 月 3 日首場開播,並持續輸出精彩內容,關注 InfoQ 影片號,與行業技術大牛連麥~