你不會真的以為,自己還沒有Serverless化了吧。
過去五年,同程藝龍機(jī)票事業(yè)部CTO王曉波經(jīng)歷的“挖坑”與“填坑”過程,至今讓他回味。
在近日舉辦的Techo TVP 開發(fā)者峰會 ServerlessDays China 2021上,他這樣描述了一個(gè)身為互聯(lián)網(wǎng)公司研發(fā)負(fù)責(zé)人的“苦惱”:
很多業(yè)務(wù)同學(xué)對產(chǎn)品功能部署的要求有多快?或許就是上午坐公交車被門夾了一下,想出來一個(gè)idea。然后他就希望下午的時(shí)候看到這個(gè)功能已經(jīng)上線了。
通常而言,研發(fā)人員上線新功能,往往需要架構(gòu)設(shè)計(jì)、服務(wù)器部署,不是想象中寫幾行代碼就能夠完事兒。項(xiàng)目緊任務(wù)重,該上線的還得加油干。
于是,團(tuán)隊(duì)開始嘗試Serverless服務(wù),盡量減少在服務(wù)器、框架、部署,甚至開發(fā)過程等環(huán)節(jié)上的精力消耗。不同的是,當(dāng)時(shí)嘗試Serverless更多屬于企業(yè)內(nèi)部的項(xiàng)目,不需要服務(wù)對外,這也意味著很多技術(shù)解決不了的問題通過一道行政命令就執(zhí)行落地了。
凝結(jié)五年經(jīng)驗(yàn)與教訓(xùn),他總結(jié)出三個(gè)靈魂發(fā)問:
“為什么要用Serverless?難道我們要追星嗎?”
“究竟解決了什么問題?比如彈性計(jì)算省下來的錢,真得能換來一個(gè)業(yè)務(wù)嗎?”
“對業(yè)務(wù)的幫助有多大呢?比如對IT架構(gòu)設(shè)計(jì)的要求,從單體發(fā)展到微服務(wù),再到ServiceMesh,再到Serverless,最后繞了一圈突然又覺得單體架構(gòu)可能會比較好。這究竟是不是時(shí)代的局限性?”
王曉波將這種痛苦的經(jīng)歷總結(jié)為:缺少一個(gè)真正的方法論和工具進(jìn)行管控。
對于更多的企業(yè)開發(fā)團(tuán)隊(duì)而言,又該避免嘗試上手Serverless后繼續(xù)變成原來所討厭的事情?如何All in Serverless?
1、從All in Serverless到落地
2021年3月,市場調(diào)研機(jī)構(gòu)Forrester公布的最新一項(xiàng)調(diào)研中,清晰地展示了國內(nèi)各大云服務(wù)商在云函數(shù)服務(wù)能力的矩陣圖。
在Serverless實(shí)踐與推廣方面,我們最早熟知的亞馬遜云的Lambda就是一款相對成熟的函數(shù)計(jì)算產(chǎn)品,但這次不同的是,國內(nèi)廠商似乎在追齊國際主流廠商的各項(xiàng)能力。
登入市場性報(bào)告的魔力象限或許并不能完全說明各自服務(wù)商的優(yōu)劣勢,實(shí)際上,他們各自在函數(shù)計(jì)算的實(shí)踐和突破路徑上其實(shí)都各有所長。但這至少說明一點(diǎn),云函數(shù)已經(jīng)得到云巨頭的廣泛性關(guān)注,而云函數(shù)背后襯托出的是以Serverless技術(shù)為核心的計(jì)算、存儲體系架構(gòu)的演進(jìn)。
Serverless,簡而言之,是應(yīng)用服務(wù)層或函數(shù)計(jì)算來動(dòng)態(tài)配置和部署云環(huán)境的計(jì)算負(fù)載。
基于Serverless形成了函數(shù)計(jì)算產(chǎn)品體系,大致可分為兩類:一類是計(jì)算,即FaaS(Function as a Service);一類是BaaS(Backend as a Service),如消息中間件、對象存儲。
種種跡象表明,Serverless這項(xiàng)被認(rèn)為是繼虛擬機(jī)、容器之后的第三代通用計(jì)算平臺,已經(jīng)在很多互聯(lián)網(wǎng)業(yè)態(tài)環(huán)境中得以應(yīng)用。
據(jù)雷鋒網(wǎng)觀察,多數(shù)企業(yè)選擇使用函數(shù)計(jì)算產(chǎn)品,主要源自其對彈性資源和成本的考慮,能夠以更加細(xì)顆粒度地按量付費(fèi)。Serverless本身是可以幫助客戶用非常低的成本實(shí)現(xiàn)彈性高可用的能力,并且滿足安全性的要求。其目的是為了簡化開發(fā)工作中的運(yùn)維任務(wù),讓開發(fā)者聚焦在應(yīng)用上。
從用戶側(cè)的實(shí)際反饋來看,相比于幾年前,大家的一個(gè)普遍感受是Serverless的實(shí)踐路徑及對問題的解決相對清晰了。這也讓Serverless在更多企業(yè)、場景中的落地難題變得共性化。
Serverless使得開發(fā)人員對云基礎(chǔ)設(shè)施的調(diào)用從原來的以資源為中心,轉(zhuǎn)變成了以服務(wù)/應(yīng)用為中心。其優(yōu)勢點(diǎn)在于可以為企業(yè)提供直接的運(yùn)行環(huán)境,開發(fā)者無需感知底層復(fù)雜的計(jì)算資源,即可通過調(diào)用上層的函數(shù)產(chǎn)品完成每一次的計(jì)算調(diào)用。
例如,Serverless本身跟以往的計(jì)算形態(tài)差異比較大,整個(gè)研發(fā)和運(yùn)維的體系跟傳統(tǒng)應(yīng)用是割裂的。這讓不少人開玩笑,“DevOps做了什么多年,怎么說服Dev去做Ops呢?一個(gè)最簡單的辦法,就是把Dev變成Ops,然后把Ops開掉。”
問題在需求側(cè)或許可以簡單粗暴地解決,但這個(gè)過程中底層資源的邏輯和狀態(tài)由云服務(wù)商來管理,難題自然也留給了供給側(cè)。
今年2月,云原生基金會CNCF公布了2020年年度調(diào)查報(bào)告顯示,使用無服務(wù)托管平臺排名前三的分別是亞馬遜的Lambda(57%)、Google云函數(shù)(27%)和Azure函數(shù)(24%);可安裝軟件應(yīng)用排名前三的分別是Knative(27%)、Open FaaS(10%)和Kubeless(5%)。
性能的優(yōu)勢不足以彌補(bǔ)市場占有率或市場教育不足的問題。無論是云上環(huán)境還是安裝套件下的函數(shù)計(jì)算,國內(nèi)品牌還需要找到更多撬動(dòng)的支點(diǎn),深入了解客戶所需。
那么,客戶在關(guān)心什么?
在前不久與騰訊云 Serverless 副總經(jīng)理羅茂政、騰訊云 Serverless 產(chǎn)品總監(jiān)張浩的對話中,雷鋒網(wǎng)獲得了三個(gè)信息:
一些企業(yè)IT開始思考:跟隨市場最先進(jìn)架構(gòu)的遷移成本、掌握新工具的使用成本,跟解決一個(gè)業(yè)務(wù)業(yè)務(wù)所需消耗的人力成本之間,存在一定的矛盾。
Serverless向下屏蔽了底層資源的復(fù)雜性,但同時(shí)也會帶來很多技術(shù)的黑盒問題。
Serverless可以理解為一套云的計(jì)算架構(gòu),能夠在大數(shù)據(jù)、AI、物聯(lián)網(wǎng)、音視頻等領(lǐng)域融合落地。比如需要實(shí)時(shí)處理數(shù)據(jù)的在線場景,就存在Serverless應(yīng)用的空間。
2、解鎖Serverless技術(shù)黑盒
一個(gè)關(guān)鍵點(diǎn)在于,Serverless會涉及很多的技術(shù)黑盒,這與其本身屏蔽了底層復(fù)雜技術(shù)相關(guān)。類似于深度神經(jīng)網(wǎng)絡(luò)本身存在的不可解釋性造成了很多技術(shù)黑盒的問題,同樣,Serverless領(lǐng)域也需要解決“不可觀測性”問題。
舉個(gè)最簡單的例子,開發(fā)者往往不需要關(guān)心底層的計(jì)算資源,或者依靠何種性能的虛擬機(jī)或容器。但這反過來就也就意味著一旦遇到異常問題,開發(fā)者也是根本不清楚Serverless應(yīng)用究竟是因?yàn)檎{(diào)度環(huán)境出現(xiàn)異常,還是某個(gè)產(chǎn)品模塊出了問題。
因此,Serverless產(chǎn)品團(tuán)隊(duì)既需要做到盡量不讓客戶感知底層的資源環(huán)境,只關(guān)注向上的業(yè)務(wù)發(fā)展;同時(shí),也需要給出可觀測性的工具或解決方案幫助開發(fā)者實(shí)時(shí)評估風(fēng)險(xiǎn),快速定位診斷出問題所在。
應(yīng)用性能管理平臺(TAPM)是騰訊云針對可觀測性領(lǐng)域開發(fā)的一款產(chǎn)品平臺,能夠幫助客戶對整個(gè)鏈路中的應(yīng)用性能健康狀況進(jìn)行觀測。
然而,有一個(gè)好的平臺只是第一步。正如上述同程藝龍的王曉波遇到的情況,很多客戶都往往存在遺留資產(chǎn)的包袱,發(fā)展至如今變成了從單體到微服務(wù)再到Serverless等多種架構(gòu)并存的現(xiàn)象。
張浩告訴雷鋒網(wǎng),“現(xiàn)在其實(shí)有更多的客戶會比較冷靜地看待這個(gè)事情。在兼顧業(yè)務(wù)穩(wěn)定發(fā)展的同時(shí)在一些新的業(yè)務(wù)領(lǐng)域嘗試,這時(shí),客戶就需要利用Serverless的架構(gòu)快速支持某些創(chuàng)新業(yè)務(wù)。”
比如在線教育市場的競爭性相對殘酷,這種對企業(yè)業(yè)務(wù)和技術(shù)負(fù)責(zé)人帶來的雙重壓力,會使得他們主動(dòng)要求基于Serverless技術(shù)進(jìn)行服務(wù)的調(diào)用、存儲的遷移等等。
在他看來,“只有客戶認(rèn)可這個(gè)價(jià)值,客戶才會主動(dòng)愿意進(jìn)行Serverless架構(gòu)的遷移。其次才是服務(wù)商通過相應(yīng)的手段和技術(shù)能力幫助梳理和過渡。”
此外,還有很多客戶會非常擔(dān)心供應(yīng)商鎖定的問題,不太希望自身的技術(shù)棧跟某個(gè)供應(yīng)商綁定。這可能也并非任何一家服務(wù)商的本意。
張浩指出,騰訊云的思路仍讓是希望留給客戶足夠的透明度和靈活遷移的能力,通過將服務(wù)和開發(fā)者體驗(yàn)做到最好來留住客戶。
3、Serverless的未來與機(jī)遇
根據(jù)公開信息,微信小程序作為騰訊云開發(fā)的一個(gè)重要端應(yīng)用,已經(jīng)成為業(yè)界成績最好的Serverless開發(fā)平臺:云開發(fā)注冊用戶數(shù)達(dá)56萬,服務(wù)超過100萬次開發(fā)者,日調(diào)用次數(shù)超過7億。
在小程序云開發(fā)最初上線的幾年,盡管這個(gè)產(chǎn)品得到了很多開發(fā)者尤其是大前端在使用體驗(yàn)上的“吐槽”,但這種微服務(wù)的能力正伴隨產(chǎn)品迭代升級越來越受到開發(fā)者的關(guān)注和認(rèn)可。
目前來看,微信小程序可能是比較突出的一個(gè)應(yīng)用,但并不意味著Serverless只有這一個(gè)應(yīng)用場景。同樣在音視頻、大數(shù)據(jù)、AI、物聯(lián)網(wǎng)等領(lǐng)域,Serverless的應(yīng)用場景十分廣泛。
例如,在音視頻領(lǐng)域,在騰訊多媒體實(shí)驗(yàn)室與敦煌研究院合作利用AI為壁畫“診病”的項(xiàng)目中,騰訊云Serverless技術(shù)實(shí)際也得到了運(yùn)用。
騰訊云通過為客戶提供Serverless化的GPU調(diào)度能力,將多媒體實(shí)驗(yàn)室提供的AI算法能力構(gòu)建在這套GPU集群上,使得最終提供給敦煌研究院壁畫拍攝資料,已經(jīng)通過AI圖像識別算法能力進(jìn)行了非常好的識別。
“Serverless可能只是你看到的一方面,另一方面它向下依賴是整套底層計(jì)算資源,包括虛擬機(jī)、容器、存儲、網(wǎng)絡(luò)等軟硬件相關(guān)的產(chǎn)品,”羅茂政指出。這意味著Serverless自身計(jì)算架構(gòu)的升級同樣也需要依賴軟硬件的結(jié)合,才能讓上層的客戶擁有一個(gè)非常順滑的體驗(yàn)。
而接下來,除了像云函數(shù)外,團(tuán)隊(duì)將在應(yīng)用層進(jìn)行一些深度的探索,希望能夠推出更多開箱即用的服務(wù)提供給客戶。
4、小結(jié)
當(dāng)前,數(shù)字化轉(zhuǎn)型成為一件必然發(fā)生的事情。而Serverless的崛起將成為數(shù)字化轉(zhuǎn)型浪潮中企業(yè)IT變革的一個(gè)關(guān)鍵支撐力量。作為一項(xiàng)新興技術(shù),Serverless不可避免存在其落地應(yīng)用的諸多困難,但不可否認(rèn)的是,Serverless為企業(yè)治理帶來了顯著成效。
據(jù)今年CNCF公布的數(shù)據(jù)還顯示,30%的受訪者在生產(chǎn)中應(yīng)用了Serverless架構(gòu),這一數(shù)字相比上一年仍有所提高。在這場Serverless的風(fēng)波背后,各大云廠商乃至更多生態(tài)同盟,正暗暗鼓勁搶灘下一階段數(shù)字化浪潮紅利。