2021年5月,美國(guó)計(jì)算機(jī)協(xié)會(huì)(ACM)通訊雜志發(fā)表了一篇具有歷史意義的文章:《什么是無(wú)服務(wù)器計(jì)算(Serverless Computing),以及為什么它會(huì)成為云計(jì)算的下一個(gè)形態(tài)》。在這篇由9名美國(guó)業(yè)界專(zhuān)家和學(xué)者聯(lián)合撰寫(xiě)的文章中,將自2010年開(kāi)始的十年定義為云計(jì)算第一個(gè)形態(tài),該形態(tài)變革了系統(tǒng)管理員的工作;而自2021年開(kāi)始的下一個(gè)十年即將進(jìn)入云計(jì)算的下一個(gè)形態(tài),即將變革開(kāi)發(fā)者的工作。
在云計(jì)算的第一個(gè)十年,通過(guò)興建的大型多租戶(hù)數(shù)據(jù)中心以及位于其中的虛擬服務(wù)器和虛擬網(wǎng)絡(luò)等,大幅簡(jiǎn)化了系統(tǒng)管理員的工作;而在云計(jì)算的下一個(gè)十年,則將向云軟件的開(kāi)發(fā)者隱藏這些服務(wù)器、虛擬服務(wù)器等硬件基礎(chǔ)設(shè)施,通過(guò)代碼抽象進(jìn)一步簡(jiǎn)化云開(kāi)發(fā),讓開(kāi)發(fā)者更易于編寫(xiě)云軟件。在云計(jì)算的下一個(gè)形態(tài),關(guān)注點(diǎn)從服務(wù)器轉(zhuǎn)換到應(yīng)用軟件,開(kāi)發(fā)者不再關(guān)注底層云基礎(chǔ)設(shè)施的復(fù)雜的配置、管理與運(yùn)維,而只需要關(guān)注業(yè)務(wù)邏輯即可。相比之下,學(xué)者們將第一種形態(tài)的云計(jì)算稱(chēng)為“有服務(wù)器計(jì)算(Serverful Computing)”。
ACM的學(xué)者們認(rèn)為,Serverless的時(shí)代才剛剛開(kāi)始,正如2010年的云計(jì)算才剛剛開(kāi)始一樣——未來(lái)的Serverless計(jì)算將顯著不同于今天的Serverless應(yīng)用(FaaS函數(shù)即服務(wù)),未來(lái)的Serverless將成為公有云數(shù)據(jù)中心基礎(chǔ)設(shè)施的統(tǒng)一管理與服務(wù)交付模式。
(騰訊云Serverless中心副總經(jīng)理羅茂政)
而騰訊云則是Serverless的積極推動(dòng)者,在2021年6月5日的Techo TVP開(kāi)發(fā)者峰會(huì)Serverless Days大會(huì)中國(guó)站2021上,騰訊云Serverless中心副總經(jīng)理羅茂政強(qiáng)調(diào),騰訊云非常認(rèn)同Serverless的方向,Serverless不僅是FaaS+BaaS,更是一種技術(shù)架構(gòu)理念。當(dāng)前,Serverless仍面臨很多挑戰(zhàn),但路徑已經(jīng)十分明確,騰訊云將持續(xù)投入Serverless Computing。騰訊云Serverless產(chǎn)品總監(jiān)張浩宣布截止當(dāng)天的騰訊云Serverless開(kāi)發(fā)者已達(dá)百萬(wàn)+、日均資源調(diào)用量達(dá)億+GB、日均調(diào)用量達(dá)百億+次。
Serverless:云計(jì)算的下一個(gè)形態(tài)
早在2014年,AWS推出業(yè)界首個(gè)云函數(shù)產(chǎn)品Lambda的時(shí)候,就引起了轟動(dòng)。AWS Lambda是第一種Serverless無(wú)服務(wù)器計(jì)算的代表,這就是FaaS函數(shù)即服務(wù)。AWS Lambda服務(wù)對(duì)觸發(fā)事件作出響應(yīng),運(yùn)行相關(guān)代碼并自動(dòng)管理底層計(jì)算資源。AWS Lambda體現(xiàn)Serverless計(jì)算的主要優(yōu)勢(shì),包括大幅簡(jiǎn)化云開(kāi)發(fā)、真正的Pay-as-you-go、更強(qiáng)的彈性計(jì)算。所謂函數(shù)即服務(wù),即像使用電子表格中的公式一樣簡(jiǎn)單,F(xiàn)aaS適合于物聯(lián)網(wǎng)等事件觸發(fā)型應(yīng)用。
(Serverless與Serverful的對(duì)比。來(lái)源:ACM)
隨著FaaS的流行,出現(xiàn)不少同樣可以運(yùn)行任何代碼且具備Serverless計(jì)算特點(diǎn)的云服務(wù),諸如Google Cloud Dataflow、AWS Glue等,每一個(gè)云服務(wù)都針對(duì)特定的應(yīng)用場(chǎng)景。隨著Serverless計(jì)算理念被廣泛接受,CNCF云原生計(jì)算基金會(huì)在2018年成立了Serverless計(jì)算工作組。CNCF認(rèn)為Serverless遠(yuǎn)不止于FaaS,也就是隨需在一段短時(shí)間內(nèi)運(yùn)行一小段代碼,AWS Lambda是這個(gè)1.0階段的代表但在執(zhí)行時(shí)間、協(xié)議和本地開(kāi)發(fā)體驗(yàn)等方面有其局限性。在2.0階段,一些解決方案實(shí)現(xiàn)了對(duì)Kubernetes的抽象,代表為Knative,即對(duì)容器技術(shù)的Serverless化,這樣就可以沒(méi)有函數(shù)運(yùn)行時(shí)間的限制,也可以使用任何語(yǔ)言。
接下來(lái),CNCF認(rèn)為,真正的Serverless愿景,是處理更多的復(fù)雜編排和集成模式,以及結(jié)合有狀態(tài)的管理。之前的Serverless應(yīng)用都是無(wú)狀態(tài)應(yīng)用,但現(xiàn)在越來(lái)越多被創(chuàng)建的解決方案,其目的是以Serverless模式實(shí)現(xiàn)已有的帶有編排的集成模式,也就是對(duì)PaaS通用云服務(wù)的Serverless化,CNCF稱(chēng)之為2.0階段。今天的PaaS層,無(wú)論是微服務(wù)、單體應(yīng)用還是函數(shù),都以容器化方式運(yùn)行,而在這一層實(shí)現(xiàn)Serverless方案,企業(yè)就可以同時(shí)運(yùn)行Serverless和Non-Serverless兩種計(jì)算任務(wù)。
簡(jiǎn)單理解,Serverless的真正愿景就是面向云開(kāi)發(fā)者,隱藏云底層的系統(tǒng)管理與運(yùn)維工作。正如同傳統(tǒng)高級(jí)編程隱藏了CPU的工作方式,Serverless編程將隱藏云中服務(wù)器的工作方式——也就是如何構(gòu)建可靠、可擴(kuò)展、安全的分布式系統(tǒng)。一旦實(shí)現(xiàn)了對(duì)PaaS層的Serverless方案,云開(kāi)發(fā)者就再也不用關(guān)心底層分布式云系統(tǒng)的配置和管理細(xì)節(jié)。實(shí)際上,對(duì)今天的云開(kāi)發(fā)來(lái)說(shuō),開(kāi)發(fā)者仍然要與系統(tǒng)管理員一起,配置所需的云中虛擬機(jī)、容器、災(zāi)備等底層云基礎(chǔ)設(shè)施細(xì)節(jié),這對(duì)于開(kāi)發(fā)者來(lái)說(shuō)還是有一定的門(mén)檻。而且當(dāng)前的所謂云服務(wù)自動(dòng)伸縮也是需要提前預(yù)留虛機(jī)實(shí)例,而這些預(yù)留實(shí)例無(wú)論使用與否都要付費(fèi)。
在過(guò)去十年,云計(jì)算IaaS層的大規(guī)模興起和流行,特別是Kubernetes對(duì)云IaaS層的統(tǒng)一,極大簡(jiǎn)化了系統(tǒng)管理員的工作——從本地服務(wù)器到云中服務(wù)器,系統(tǒng)管理員可以通過(guò)瀏覽器就輕松管理海量的服務(wù)器和完成分布式系統(tǒng)架構(gòu)與運(yùn)維。未來(lái)十年,Serverless計(jì)算將向云開(kāi)發(fā)者進(jìn)一步隱藏底層云及分布式系統(tǒng)的工作——大幅簡(jiǎn)化云開(kāi)發(fā)、真正的Pay-as-you-go以及更強(qiáng)的彈性計(jì)算,沒(méi)有云系統(tǒng)管理知識(shí)與技能的普通開(kāi)發(fā)者也可以通過(guò)拖拉拽方式的低代碼和無(wú)代碼方式,輕松完成業(yè)務(wù)邏輯的編排和業(yè)務(wù)軟件的開(kāi)發(fā)。
Serverless計(jì)算的前沿
ACM的專(zhuān)家和學(xué)者認(rèn)為,無(wú)服務(wù)器Serverless計(jì)算將主導(dǎo)下一個(gè)階段的云計(jì)算形態(tài),釋放云計(jì)算的強(qiáng)大能力并交到所有應(yīng)用開(kāi)發(fā)者的手中。當(dāng)前的Serverless編程抽象分為兩種:面向特定應(yīng)用和面向通用PaaS領(lǐng)域,其中面向特定應(yīng)用的即FaaS,而面向通用PaaS服務(wù)的Serverless方案則是Serverless研究的前沿。
(兩種Serverless抽象。來(lái)源:ACM)
前沿方向之一,Serverless數(shù)據(jù)庫(kù)與存儲(chǔ)。SQL與NoSQL數(shù)據(jù)庫(kù)和存儲(chǔ)(特別是對(duì)象存儲(chǔ))是數(shù)據(jù)服務(wù)的基礎(chǔ),數(shù)據(jù)服務(wù)是PaaS通用核心技術(shù)之一。如何實(shí)現(xiàn)Serverless化的數(shù)據(jù)庫(kù)與存儲(chǔ)方案,是PaaS Serverless的前沿研究之一。其中涉及到從傳統(tǒng)的給定容量、連接與查詢(xún)限制的實(shí)例供應(yīng),轉(zhuǎn)向可按需實(shí)現(xiàn)計(jì)算基礎(chǔ)設(shè)施和成本的線(xiàn)性擴(kuò)展模式。2020年4月,騰訊云正式發(fā)布了國(guó)內(nèi)首個(gè)Serverless數(shù)據(jù)庫(kù)產(chǎn)品——PostgreSQL for Serverless,該數(shù)據(jù)庫(kù)不需要用戶(hù)創(chuàng)建實(shí)例,完全基于Serverless架構(gòu),最快能夠1秒鐘內(nèi)完成部署,用戶(hù)使用該數(shù)據(jù)庫(kù)完全按照實(shí)際使用量付費(fèi),成本降低70%。2020年底,騰訊云進(jìn)一步發(fā)布了國(guó)內(nèi)首款Serverless MySQL數(shù)據(jù)庫(kù)。
前沿方向之二,復(fù)雜微服務(wù)場(chǎng)景編排。今天最常用的Serverless場(chǎng)景,當(dāng)屬支持微服務(wù)架構(gòu)。微服務(wù)作為云原生技術(shù)的“三駕馬車(chē)”之一,主要提供執(zhí)行單一任務(wù)的小型服務(wù)、小型服務(wù)之間通過(guò)API方式調(diào)用、小型服務(wù)可以橫向擴(kuò)展,微服務(wù)可以由各種PaaS或容器技術(shù)實(shí)現(xiàn),而Serverless也被視為微服務(wù)的一種實(shí)現(xiàn)方式。Serverless計(jì)算以執(zhí)行小型代碼、自動(dòng)伸縮、真正的按使用量付費(fèi)等為特點(diǎn),非常適合微服務(wù)架構(gòu)。騰訊云應(yīng)用與服務(wù)編排工作流ASW是一個(gè)用來(lái)協(xié)調(diào)分布式任務(wù)執(zhí)行的編排產(chǎn)品,可以將多個(gè)騰訊云服務(wù)按步驟進(jìn)行調(diào)度,完成各種業(yè)務(wù)應(yīng)用場(chǎng)景。ASW支持所有騰訊云服務(wù)的編排調(diào)度,包括云函數(shù)、Serverless服務(wù),例如在音視頻處理中ASW通過(guò)云函數(shù),可以將轉(zhuǎn)碼任務(wù)進(jìn)行切片并行處理,大幅提高任務(wù)處理的吞吐量,滿(mǎn)足高實(shí)時(shí)性、高并發(fā)能力的視頻應(yīng)用、社交應(yīng)用場(chǎng)景。
前沿方向之三,本地及遠(yuǎn)程Serverless調(diào)試。云上的各種服務(wù),在本地?zé)o法完全模擬,程序員大都遇到過(guò)本地和遠(yuǎn)程環(huán)境運(yùn)行結(jié)果不一致的情形,追查起來(lái)費(fèi)時(shí)費(fèi)力,不僅效率低下,也造成很差的開(kāi)發(fā)體驗(yàn)。而對(duì)于Serverless應(yīng)用的調(diào)試,要在本地構(gòu)建一個(gè)容器環(huán)境,成本也不低。騰訊云首發(fā)了云函數(shù)的在線(xiàn)遠(yuǎn)程調(diào)試功能,采用Node10及以上版本的runtime,使用Chrome瀏覽器打開(kāi)云函數(shù)控制臺(tái),在函數(shù)代碼頁(yè)便可看到在線(xiàn)調(diào)試的入口,這樣開(kāi)發(fā)者就能連入云端容器,代碼在云端生產(chǎn)環(huán)境和調(diào)試環(huán)境是一樣的。此外,騰訊云Serverless本地開(kāi)發(fā)工具(SCF CLI)以開(kāi)源項(xiàng)目的形式維護(hù),讓開(kāi)發(fā)者可以方便的實(shí)現(xiàn)函數(shù)打包、部署、本地調(diào)試,也可以方便生成云函數(shù)的項(xiàng)目并基于demo項(xiàng)目進(jìn)一步開(kāi)發(fā)。而騰訊云Serverless VS Code插件,則支持用VS Code原生的調(diào)試入口調(diào)試云函數(shù)。
在其它的Serverless性能、擴(kuò)展連接更多服務(wù)等前沿方向上,騰訊云也一直在探索相關(guān)的實(shí)踐。面向異構(gòu)芯片的抽象,騰訊云推出了Serverless GPU調(diào)度能力,這樣就能同時(shí)調(diào)度CPU通用計(jì)算芯片以及GPU面向特定計(jì)算的芯片;面向Kubernetes抽象,騰訊云推出了Serverless Kubernetes;面向Serverless性能方面,騰訊云云函數(shù)SCF首創(chuàng)提供了函數(shù)異步執(zhí)行模式,可以讓Serverless任務(wù)實(shí)現(xiàn)24小時(shí)超長(zhǎng)時(shí)間穩(wěn)定運(yùn)行、單實(shí)例更多算力等,滿(mǎn)足音視頻處理、ETL數(shù)據(jù)批處理、機(jī)器學(xué)習(xí)及AI推理等;在連接更多SaaS和PaaS服務(wù)方面,騰訊云Serverless今年上線(xiàn)了事件總線(xiàn),可連接超過(guò)十款PaaS服務(wù),而通過(guò)騰訊千帆SaaS計(jì)劃還能連接更多的SaaS服務(wù)……
國(guó)內(nèi)最大的Serverless服務(wù)商
騰訊云Serverless副總經(jīng)理羅茂政在Techo TVP開(kāi)發(fā)者峰會(huì)Serverless Days大會(huì)中國(guó)站2021上強(qiáng)調(diào),騰訊云已經(jīng)成為國(guó)內(nèi)服務(wù)規(guī)模最大的Serverless廠(chǎng)商。2021年3月,F(xiàn)orrester發(fā)布《The Forrester Wave:Function-As-A-Service Platforms,Q1 2021》報(bào)告,騰訊云Serverless綜合評(píng)分再次躍居全球頂級(jí)序列,被Forrester評(píng)為“強(qiáng)勁表現(xiàn)者”,其中在產(chǎn)品服務(wù)矩陣、合作伙伴生態(tài),以及客戶(hù)規(guī)模維度上得分國(guó)內(nèi)第一。去年,在Forrester另一份云函數(shù)服務(wù)能力研究報(bào)告上,騰訊云憑借在產(chǎn)品體驗(yàn)、安全性、戰(zhàn)略愿景等方面的絕對(duì)優(yōu)勢(shì),成為中國(guó)唯一進(jìn)入全球Top3的云廠(chǎng)商。
騰訊云對(duì)Serverless高度重視,可以說(shuō)在云原生領(lǐng)域“All on Serverless”。騰訊云積極推動(dòng)國(guó)內(nèi)Serverless生態(tài)和國(guó)際接軌,將全球流行的Serverless Framework平臺(tái)引入中國(guó),推動(dòng)了中國(guó)的Serverless技術(shù)盡快與國(guó)際對(duì)齊,讓Serverless客戶(hù)快速享受到技術(shù)全球化優(yōu)勢(shì)。騰訊云將ServerlessDays引入中國(guó),ServerlessDays是面向開(kāi)發(fā)人員的全球技術(shù)會(huì)議,已經(jīng)在全球40多個(gè)城市舉辦,成為Serverless技術(shù)發(fā)展風(fēng)向標(biāo),2020年在騰訊云的推動(dòng)下首次來(lái)到中國(guó)。此外,騰訊云還運(yùn)營(yíng)了中國(guó)首個(gè)以Serverless為主題的技術(shù)社區(qū)。
目前,騰訊云已經(jīng)推出了國(guó)內(nèi)最大、最完整的Serverless產(chǎn)品矩陣和開(kāi)發(fā)平臺(tái)。騰訊云Serverless不僅僅是云函數(shù),而是將Serverless理念擴(kuò)展到更多的PaaS和IaaS層。在基礎(chǔ)設(shè)施層,騰訊云Serverless支持MySQL和PostgreSQL兩種主流開(kāi)源數(shù)據(jù)庫(kù),還支持存儲(chǔ)、網(wǎng)絡(luò)等基礎(chǔ)IaaS服務(wù);在Serverless計(jì)算方面,騰訊云提供了云函數(shù)SCF、彈性容器服務(wù)EKS、工作流ASW、事件管理EventBridge;在Serverless開(kāi)發(fā)者工具方面,騰訊云提供了Serverless Framework、VS Code插件、Cloud Studio Web IDE等多種工具;在Serverless應(yīng)用生態(tài)方面,騰訊云推出了CloudBase云開(kāi)發(fā)和微搭低代碼WeDa等小程度開(kāi)發(fā)平臺(tái),支持Spring Cloud、Service Mesh和分布式事務(wù)DTF等微服務(wù)場(chǎng)景,提供了HTTP服務(wù)、音視頻轉(zhuǎn)碼、ETL數(shù)據(jù)處理等企業(yè)級(jí)方案;在監(jiān)控排障工具方面,騰訊云提供了微服務(wù)觀(guān)測(cè)平臺(tái)TSW、應(yīng)用性能監(jiān)控TAPM;在云服務(wù)集成方面,騰訊云提供了騰訊千帆SaaS應(yīng)用連接器、實(shí)時(shí)音視頻TRTC、數(shù)據(jù)湖計(jì)算DLC、多媒體實(shí)驗(yàn)室等工具與資源。
針對(duì)Serverless應(yīng)用面臨的缺少基于業(yè)務(wù)場(chǎng)景的解決方案、開(kāi)發(fā)工具不完善導(dǎo)致開(kāi)發(fā)體驗(yàn)欠佳以及成本費(fèi)用過(guò)高等挑戰(zhàn),騰訊云Serverless從產(chǎn)品化角度幫助開(kāi)發(fā)者盡快上手Serverless。例如:在計(jì)費(fèi)方面,騰訊云在全球率先發(fā)布了1毫秒計(jì)費(fèi)粒度,目前行業(yè)內(nèi)Serverless服務(wù)的計(jì)費(fèi)粒度普遍為100毫秒,而1毫秒計(jì)費(fèi)粒度則極大幫助用戶(hù)降低成本;在開(kāi)發(fā)體驗(yàn)方面,騰訊云從開(kāi)發(fā)者的視角出發(fā),重點(diǎn)解決整個(gè)生命周期的挑戰(zhàn),使Serverless的項(xiàng)目開(kāi)發(fā)更貼近用戶(hù)習(xí)慣,提高開(kāi)發(fā)效率;在業(yè)務(wù)場(chǎng)景方面,騰訊云針對(duì)音視頻轉(zhuǎn)碼、IOT事件響應(yīng)、小程序開(kāi)發(fā)等各種業(yè)務(wù)需求提供對(duì)應(yīng)的Serverless方案。
騰訊云Serverless也結(jié)合了騰訊自身使用Serverless的實(shí)戰(zhàn)經(jīng)驗(yàn),包括多業(yè)務(wù)場(chǎng)景多租戶(hù)的安全隔離、高并發(fā)的函數(shù)實(shí)例擴(kuò)縮容、百萬(wàn)級(jí)別函數(shù)實(shí)例的集群管理,以及幾十毫秒級(jí)別的冷啟動(dòng)延時(shí)等。其結(jié)果是:使用騰訊云自研的輕量級(jí)虛擬化技術(shù),MicroVm啟動(dòng)時(shí)間縮短至90毫秒,函數(shù)冷啟動(dòng)減低至200毫秒,并且支持上萬(wàn)臺(tái)計(jì)算節(jié)點(diǎn)同時(shí)擴(kuò)容;在函數(shù)與VPC網(wǎng)絡(luò)打通中,依托于新的隧道方案,時(shí)間也由原來(lái)的秒級(jí)降低至毫秒級(jí)等等。
今天,金融、政府、工業(yè)、零售等傳統(tǒng)行業(yè)都在進(jìn)入Serverless領(lǐng)域,Serverless生態(tài)正處于蓬勃發(fā)展的階段。目前,騰訊云Serverless已經(jīng)服務(wù)了超過(guò)1萬(wàn)家企業(yè),包括互聯(lián)網(wǎng)頭部廠(chǎng)商、大型金融科技企業(yè)等在使用Serverless構(gòu)建IT系統(tǒng)。例如某國(guó)內(nèi)頭部智能家居廠(chǎng)商,就采用了騰訊云Serverless產(chǎn)品、服務(wù)和架構(gòu),實(shí)現(xiàn)了近乎無(wú)人值守的彈性免運(yùn)維體驗(yàn),讓這家公司IT團(tuán)隊(duì)能夠聚焦于智能家居服務(wù),而不用關(guān)注基礎(chǔ)設(shè)施管理。
【全文總結(jié)】Serverless是繼虛擬機(jī)和容器之后的新一代通用計(jì)算平臺(tái),是云計(jì)算特別是公有云的下一個(gè)形態(tài),將主導(dǎo)下一個(gè)階段的公有云。騰訊云作為國(guó)內(nèi)最大的Serverless開(kāi)發(fā)平臺(tái)和支持者,已經(jīng)走在Serverless全球的前沿,大幅降低Serverless門(mén)檻,全力釋放云計(jì)算紅利,推動(dòng)云開(kāi)發(fā)的全面變革。人人都是開(kāi)發(fā)者的時(shí)代,在Serverless的推動(dòng)下,即將到來(lái)。(文/寧川)