Serverless是繼虛擬機(jī)、容器之后,第三代的通用計算技術(shù),也是騰訊云戰(zhàn)略級投入的技術(shù)賽道。Serverless并不是一個新概念,在后疫情時代,我們看到Serverless技術(shù)正在加速落地,越來越多的企業(yè)希望通過新技術(shù)降本增效。本文由騰訊云Serverless產(chǎn)品總監(jiān)張浩在Techo TVP開發(fā)者峰會ServerlessDays China 2021上的演講《Let's Dive Into Serverless World》整理而成,向大家分享Serverless的業(yè)界發(fā)展情況和最新趨勢。
在開始演講之前,我先簡單講講對Serverless的理解。Serverless是一種繼虛擬機(jī)、容器之后第三代通用的彈性計算的技術(shù),怎么理解?它可以讓開發(fā)者更加聚焦業(yè)務(wù)的開發(fā),只需要編寫、上傳業(yè)務(wù)代碼,就可以運(yùn)行你的應(yīng)用程序,不需要關(guān)注的基礎(chǔ)設(shè)施的運(yùn)維和容災(zāi),所有團(tuán)隊精力都可以用在應(yīng)用交付上,極大提升業(yè)務(wù)和團(tuán)隊迭代的效率,這是我所認(rèn)為的Serverless的價值。
今天的分享分為四個部分,首先我會先跟大家講講,騰訊看到的Serverless技術(shù)發(fā)展的快速趨勢,以及在國內(nèi)Serverless發(fā)展的整體情況。
01.
Serverless國內(nèi)發(fā)展現(xiàn)狀
首先,第一頁P(yáng)PT有三個數(shù)字,這三個數(shù)字相當(dāng)激動人心,為什么?我早上看了運(yùn)營日報,截止到今天,我們已經(jīng)在騰訊云平臺上服務(wù)了超過一百萬開發(fā)者。全國寫代碼的人有多少?之前CSDN有一個統(tǒng)計:全國從業(yè)者加學(xué)生實際寫代碼的人有五百萬,而騰訊云Serverless服務(wù)了一百萬的開發(fā)者。在資源調(diào)用量上,我們現(xiàn)在是一個億的級別,整個Serverless服務(wù)的日調(diào)用量也超過了百億,是相當(dāng)大的規(guī)模。這里我也代表團(tuán)隊做一個表示,騰訊作為國內(nèi)最大的Serverless技術(shù)提供商,我們會持續(xù)地在Serverless技術(shù)發(fā)展上全力以赴投入,給開發(fā)者帶來更好的體驗。
之前有一些開發(fā)者或同行會問我,說“張浩你覺得Serverless技術(shù)是不是比較適合做一些外部服務(wù)、小程序,做一些H5頁面、邏輯比較輕的產(chǎn)品?”確實我要承認(rèn)騰訊在C to B連接生態(tài)的整合方面做得相當(dāng)好,我們有小程序在Serverless領(lǐng)域的落地,有大量中長尾的開發(fā)者快速使用Serverless技術(shù)構(gòu)建他們的應(yīng)用。從最新的后臺行業(yè)數(shù)據(jù)和業(yè)務(wù)的分布來看,現(xiàn)在有大量的、越來越多的后臺業(yè)務(wù),會有重計算的數(shù)據(jù)處理業(yè)務(wù),包括金融政府、工業(yè)、零售產(chǎn)業(yè)和互聯(lián)網(wǎng)的一些偏傳統(tǒng)行業(yè)的一些應(yīng)用大量進(jìn)入Serverless技術(shù)領(lǐng)域落地。這一頁的數(shù)字可以看到,我們整個Serverless應(yīng)用的生態(tài)正處于蓬勃發(fā)展的過程中。
今天騰訊云Serverless服務(wù)了超過一萬家企業(yè)客戶,里面不乏一些世界五百強(qiáng)的頭部公司、大型互聯(lián)網(wǎng)頭部廠商,包括金融領(lǐng)域的一些金融科技企業(yè)正全力在用Serverless技術(shù)構(gòu)建IT架構(gòu)。
插一個小的case跟大家展開講講,這是一個IOT的案例。這家公司是國內(nèi)智能家居的頭部廠商,現(xiàn)在全國有百萬級別的活躍的終端用戶在家里使用他們的產(chǎn)品,每個月在京東和天貓銷售渠道新增的出貨量有幾十萬,我們Serverless的技術(shù),為他們帶來什么價值呢?引用他們CTO的原話,我們Serverless架構(gòu)給他們帶來一個近似于無人值守的體驗,怎么理解?首先由于IOT的特性,它通過終端的出發(fā),終端信號的上傳,到達(dá)了后端的云端引擎,再到云端Serverless處理,整個業(yè)務(wù)規(guī)模的波動性和彈性的幅度非常大,上下經(jīng)常有十倍的差距,而且在一些峰值KPS的時候會達(dá)到十萬的KPS,量非常龐大,每天調(diào)用量超過一百億次,非常驚人;還有更大的壓力,整套IOT系統(tǒng)在不斷運(yùn)行的過程中,每個月還會有海量新增的設(shè)備進(jìn)入用戶的家庭,還有新增的active的設(shè)備商到線上,所以每個月增速也是非常驚人。通過Serverless技術(shù)彈性,免運(yùn)維整體的體驗,讓這家公司整個團(tuán)隊IOT服務(wù)、智能家居服務(wù)迭代,而不需要關(guān)注一些基礎(chǔ)設(shè)施的運(yùn)維和開發(fā),所以極大提升了他們團(tuán)隊的效率,所以這位CTO評價這是一個「無人值守的彈性系統(tǒng)」,體驗極佳。
接下來我們會看到更多企業(yè)級的應(yīng)用、海量的服務(wù)在Serverless架構(gòu)里落地。2017年騰訊推出第一款Serverless服務(wù)云函數(shù),在這之后,我們上線了彈性容器、云開發(fā)、微搭等各種各樣的開發(fā)者工具,包括很多企業(yè)的應(yīng)用調(diào)優(yōu)工具,還有Serverless數(shù)據(jù)庫。騰訊相信,我們通過完整的產(chǎn)品矩陣和基礎(chǔ)能力,有信心去承接各種各樣的服務(wù)的負(fù)載,去將開發(fā)者業(yè)務(wù)更好地通過Serverless技術(shù)落地。
02.
Serverless x視頻云
第一部分我講得比較泛,第二部分我想講講今年Serverless技術(shù)在一個行業(yè)和技術(shù)領(lǐng)域最新的場景——視頻領(lǐng)域。在疫情的大背景下,視頻技術(shù)發(fā)展非常迅猛,在在線教育板塊,很多原來傳統(tǒng)線下的教育機(jī)構(gòu)改到線上,用線上教育的方式連接學(xué)生和教師;在一些娛樂板塊我們可以看到直播帶貨、游戲直播等等,給大家的娛樂生活帶來非常大的補(bǔ)充;在企業(yè)板塊,我們可以看到騰訊會議,一些線上展會,像廣交會搬到線上舉辦,還有金融的在線開戶等場景。它們都印證了視頻技術(shù)改變了人和人之間的交流、人和企業(yè)之間的連接。視頻的技術(shù)和Serverless可以有什么樣的結(jié)合呢?今天我想分享三點(diǎn)Serverless視頻在技術(shù)和場景上的落地。
首先的一個case,是我們在華南地區(qū)K12的大教育機(jī)構(gòu),他們有非常多的像數(shù)學(xué)、英語等不同的課程,老師和學(xué)生會進(jìn)行一個交互,通過音視頻技術(shù)直播低時延的方式傳輸,涉及到彈性,需要把老師講課視頻內(nèi)容進(jìn)行不同格式、不同編碼、不同分辨率推送到不同終端,去適配類似于安卓、iOS、iPad場景,我跟研發(fā)團(tuán)隊深入交流下來有一個很大的感觸,原來版本周期是一個月一個迭代的版本,這一個月一個版本咱們IT圈的人聽起來會覺得是不是效率跟不上?一個月一個版本確實會比較慢,他們精力主要花費(fèi)在哪里?首先他們只有三分之一的時間來寫代碼,剩下的時間可能要為了這種音視頻處理的數(shù)據(jù)轉(zhuǎn)碼等一些計算準(zhǔn)備還量服務(wù)器,進(jìn)行一些調(diào)度容災(zāi)、彈性擴(kuò)容的相關(guān)事情,通過Serverless的技術(shù),很好地解決了他們的音視頻轉(zhuǎn)碼問題,整個研發(fā)周期從原來一個月降到一周,而且整個計算設(shè)備的成本下降,他們下掉了幾千臺包括16G、32G和64G的服務(wù)器,讓整個團(tuán)隊的效率從人到機(jī)器生產(chǎn)都得到了極大提升,這是我看到今年第一個大的在視頻領(lǐng)域的落地。
第二塊是騰訊的TRTC服務(wù),它是低時延的,協(xié)助開發(fā)者和企業(yè)可以實時構(gòu)建一個端到端管道的服務(wù)。這么講有點(diǎn)抽象,年初的時候特斯拉創(chuàng)始人馬斯克他們在推的,我相信很多人聽過,通過TRTC就可以構(gòu)建這個能力。TRTC跟Serverless技術(shù)又能產(chǎn)生什么樣的火花?我再舉個日常應(yīng)用場景的例子,大家都聽說過“千人千面”—你去淘寶買東西,每個人每個用戶根據(jù)大數(shù)據(jù)分析,AI分析會推薦不一樣的購物體驗和場景,帶來多元化體驗的效果。在在線教育領(lǐng)域,千人千面正在逐步上線,怎么理解?教育這個領(lǐng)域現(xiàn)在最寶貴的資源是老師,好的名師非常少,一個老師同一個時間最多接受3–5個學(xué)生實時授課,如果你放一個錄制視頻效果又不大好,怎么解決?
通過Serverless計算和工作流彈性編排能力,結(jié)合TRTC,我們最新的做法是可以先把老師今天要授課的內(nèi)容錄下來,對于不同終端學(xué)生,以及每個學(xué)生學(xué)習(xí)進(jìn)度的不一致,以及學(xué)生學(xué)習(xí)反饋程度的不一樣,最后內(nèi)容不一樣??赡苡?個學(xué)生,上課時候我可能會進(jìn)行錄播推流方案讓學(xué)生感覺到老師在跟TA講課,但是每個人看到的內(nèi)容其實都是不一樣的,這樣可以讓老師有更多的精力聚焦在解答學(xué)生的問題上面,最后給企業(yè)帶來的效果是什么?原來可能一個老師能對5個學(xué)生,上線之后做到一個老師可以對10–15個學(xué)生,而且整個學(xué)生反饋和好評率是直線上升的,Serverless技術(shù)將我們工作流的編排結(jié)合TRTC這樣一個快速應(yīng)用創(chuàng)新給企業(yè)帶來巨大的價值。
剛剛在視頻這塊的Serverless講了兩點(diǎn):彈性計算和實時音視頻結(jié)合。接下來講一點(diǎn),我們Serverless在視頻內(nèi)容的理解這一塊的沉淀。這是我們在敦煌的一個案例,Serverless跟敦煌實驗室產(chǎn)生了什么樣的化學(xué)反應(yīng)呢?大家都知道敦煌莫高窟有上千年的珍貴的國家瑰寶級別的壁畫,由于時間關(guān)系風(fēng)化得很嚴(yán)重,敦煌研究院就針對怎么修復(fù)敦煌壁畫,在做一個全國專家會診的項目,騰訊Serverless加上騰訊多媒體實驗室,我們是首家擁有Serverless GPU計算資源調(diào)度能力的,這在業(yè)界也是首創(chuàng),先于亞馬遜、阿里云,我們首先在Serverless這塊支持GPU的識別,通過視頻算法的處理,通過我們多媒體實驗室對于這種壁畫視頻內(nèi)容進(jìn)行實時的分析和對里面的一些受損部位的識別,在全國專家會診的過程中提高了大家對壁畫判斷效率。這樣的case是Serverless結(jié)合GPU,結(jié)合視頻識別理解的很好的技術(shù)理解。
再總結(jié)一下,我們騰訊云在視頻云的落地還有一些場景,這背后還有一些我們細(xì)致的產(chǎn)品能力和技術(shù)提升。首先大家都知道云函數(shù),騰訊云提供了創(chuàng)新的模式,我們可以讓長的計算任務(wù)運(yùn)行24小時甚至更長時間,很穩(wěn)定,而且?guī)г敿?xì)追蹤的運(yùn)行能力,去解決長運(yùn)算的彈性計算的問題。同時我們提供像ASW工作流的服務(wù),可以協(xié)助開發(fā)者對數(shù)據(jù)處理的場景,技術(shù)邏輯編排,構(gòu)建復(fù)雜業(yè)務(wù)架構(gòu)。同時我們在4月份發(fā)布了標(biāo)準(zhǔn)的容器鏡像,當(dāng)前大家都知道像云函數(shù),對于大型的應(yīng)用,包括對于環(huán)境依賴復(fù)雜的應(yīng)用,我們通過支持這種標(biāo)準(zhǔn)容器鏡像的方式進(jìn)一步加快企業(yè)應(yīng)用的遷移,以上我提到這些細(xì)節(jié)點(diǎn)都很好地支持了Serverless技術(shù)在視頻領(lǐng)域的落地。我認(rèn)為今年這個方向是非常大的發(fā)展點(diǎn)。
03.
Serverless鏈接萬物
前面我講了兩部分,一個概況和視頻落地,第三部分我分享一下Serverless連接萬物。首先跟大家講一個概念,如果熟悉云函數(shù)的話,大家都知道,它是一種以事件觸發(fā)方式去調(diào)用云函數(shù)進(jìn)行計算的模型,講個典型的案例,有個存儲的筒我往上丟一個照片,照片上傳就是一個事件,我可以通過這樣一個事件去觸發(fā)Serverless的計算做非常多事情——我可以做圖象的壓縮、圖象的處理,以及根據(jù)這樣的通知做一些回調(diào)的處理,可以做非常多有創(chuàng)意的事情。今年騰訊Serverless平臺上線了事件總線的平臺,我們已經(jīng)連接了云上超過十款PaaS服務(wù),通過這樣連接以及跟十家PaaS服務(wù)的打通,創(chuàng)造和找到了非常多新的企業(yè)級有趣的場景。
對象存儲和Serverless的創(chuàng)新,對象存儲近期提了一個新概念叫「數(shù)據(jù)湖」。在云上會產(chǎn)生大量數(shù)據(jù),結(jié)構(gòu)化的,非結(jié)構(gòu)化的,各式各樣的,生產(chǎn)還有日志流,所有都可以在對方的存儲里生成小的數(shù)據(jù)分析結(jié)果,供業(yè)務(wù)分析參考,這是一個大的數(shù)據(jù)湖的價值,作用有前置條件,把數(shù)據(jù)搬到數(shù)據(jù)湖里面,一般公有云平臺,開發(fā)者數(shù)據(jù)包括企業(yè)數(shù)據(jù)是分散在個各個PaaS服務(wù)里面,Serverless這樣一個技術(shù)的連接能力,讓數(shù)據(jù)處理變得非常簡單,我們在各個產(chǎn)品入口打一個勾,或者簡單勾選一下就可以把數(shù)據(jù)進(jìn)行深度的數(shù)據(jù)處理,中間連接的能力和數(shù)據(jù)ETL,數(shù)據(jù)傳存、處理、寫入能力都是通過Serverless處理的,高效又簡單,這是我提到連接的一個點(diǎn)。
連接還有哪些大的方向呢?Serverless在連接萬物這塊找到了新的藍(lán)海,那就是跟SaaS的合作。騰訊千帆是騰訊云企業(yè)級SaaS連接器,它解決一個企業(yè)購買SaaS應(yīng)用落地過程中會遇到賬戶系統(tǒng)的打通,業(yè)務(wù)接口的連接,數(shù)據(jù)的互通等等問題,怎么把所有的數(shù)據(jù)孤島,業(yè)務(wù)孤島串聯(lián)在一起,騰訊非常擅長。
Serverless我們是怎么做結(jié)合的?騰訊子公司辦公系統(tǒng)一體化的case。它的痛點(diǎn)是什么?騰訊在深圳,我們騰訊在產(chǎn)業(yè)互聯(lián)網(wǎng)時代也有非常多的全資子公司,包括投資合作子公司,這里面涉及到比較大的痛點(diǎn),首先子公司會采購非常多的擴(kuò)展的SaaS服務(wù),像金蝶財務(wù)、用友HR系統(tǒng),一些擴(kuò)展的辦公軟件,這些所有的SaaS服務(wù)能不能很好地跟當(dāng)前騰訊自己的辦公軟件進(jìn)行很好的整合和落地?我提到一個體驗,大家肯定會感觸比較深,能不能做到在一個地方登錄,每個平臺都能登錄,單點(diǎn)登錄問題能不能解決?不同管理員,不同職級、角色到系統(tǒng)里面賬戶的權(quán)限和操作范圍是不是可以進(jìn)行統(tǒng)一的管理?所有的問題都是我們整個騰訊子公司辦公一體化里面要解決的難題,通過千帆技術(shù)加上Serverless開箱即用的編程能力,將SaaS問題集成到一起落地,開發(fā)周期公司內(nèi)部投入兩個工程師,兩周左右的開發(fā)周期就落地了,這是我看到在Serverless,除了連接云上的通用的PaaS服務(wù),SaaS這塊會有非常大的新嘗試,也是我認(rèn)為的未來的風(fēng)口。
04.
Serverless開發(fā)者體驗提升
前面已經(jīng)講了挺多內(nèi)容,關(guān)于概況、Serverless視頻的結(jié)合,以及關(guān)于Serverless和SaaS連接其他PaaS服務(wù)的場景,最后還要講講開發(fā)者體驗,雖然放到最后,我認(rèn)為這也是最重要的事情,Serverless技術(shù)遠(yuǎn)遠(yuǎn)沒有到非常完備和徹底成熟的階段,我們也經(jīng)過了開發(fā)者調(diào)研、工單和投訴,密集的吐槽點(diǎn)是什么呢?Serverless太黑盒了,難以調(diào)試,我不知道發(fā)生了什么難以定位的問題,又比如說我是全新開發(fā)者或者大學(xué)學(xué)生第一次用這個技術(shù)感覺上手門檻很高,不知道怎么用,不知道怎么遷移等等問題都阻礙了開發(fā)者使用Serverless技術(shù)或者享受新的技術(shù)帶來的紅利。我再講講騰訊的思考和落地。
1.遷移
6月份,我們會發(fā)布騰訊云新的云函數(shù)服務(wù)模式「Web Function」,它解決什么問題?我們回想一下寫第一行代碼是怎么學(xué)的,一般老師教你本地的電腦,開一個監(jiān)聽部署起來,這是所有人都能理解的服務(wù)方式學(xué)習(xí)的過程。那現(xiàn)在Serverless服務(wù)有什么問題呢?不管亞馬遜或者阿里還是我們,作為一個新用戶或者小白用戶第一次用云函數(shù)的時候,很難把本地的體驗、簡單的服務(wù),一行代碼配置不改就能部署到Serverless上,云函數(shù)有一個獨(dú)特的機(jī)制,某種意義上是私有協(xié)議,不是原生的HTV,構(gòu)建服務(wù)過程中,還需要配置負(fù)載均衡器,所有這些操作,我們認(rèn)為對于開發(fā)者來說是一個極大的上手門檻。我們馬上可以做到各種語言開發(fā)者能夠零代碼改造遷移到Serverless平臺上來。
2.調(diào)試
接下來講開發(fā)者體驗的另一個痛點(diǎn),關(guān)于調(diào)試。很多開發(fā)者會有這樣的規(guī)律,Serverless看不見摸不著,只能通過函數(shù)代碼,而且現(xiàn)在各個團(tuán)隊提供這種調(diào)試能力相當(dāng)差,甚至說工具也不全,很難找到問題,騰訊云提到我們服務(wù)一百萬開發(fā)者,相關(guān)投訴和反饋,我們收到非常多。有的廠商會想一些方式:你們在本地構(gòu)建一個全套環(huán)境,我把鏡像給你去調(diào)試體驗。在本地構(gòu)建全套體系是非常大的成本,我們相當(dāng)多開發(fā)者沒有做到這一步就已經(jīng)流失了。騰訊云怎么思考這個事情?我們會把調(diào)試過程做得更簡單,分為三步去做。首先我們提供一套非常好的Serverless的CLI,讓你各種開發(fā)語言在本地直接調(diào)試,我們會起一個模擬器,不需要任何學(xué)習(xí)和做復(fù)雜的環(huán)境配置,就能解決寫第一行代碼,簡單的單元測試時能復(fù)現(xiàn)相關(guān)的問題。
剛剛提到的本地調(diào)試不足以覆蓋所有問題,我們在本地調(diào)試基礎(chǔ)上提供了模擬云端一模一樣環(huán)境的云端調(diào)試能力,我們可以在同樣的工具里面連接到云端運(yùn)行的容器,可以讓你開發(fā)過程的代碼在測試過程中運(yùn)行的生產(chǎn)環(huán)境一模一樣,解決調(diào)試痛點(diǎn)。對于大型項目我們會上線云端全容器微服務(wù)構(gòu)建的方式,有整套大型微服務(wù)系統(tǒng),有依賴的后臺邏輯,包括需要做一些調(diào)試的邏輯,我們允許開發(fā)者在線上構(gòu)建全套對比在線發(fā)布后的環(huán)境去做所有的Serverless調(diào)試。我提到結(jié)合第一第二第三步,可以讓開發(fā)者在Serverless開發(fā)過程中降低黑盒感,更快更好拿到計算容器的反饋,調(diào)整代碼,上線運(yùn)行,這是我們的思考。
最后講講自己的感受,我在云領(lǐng)域工作很久,從畢業(yè)開始做云計算、私有化、混合云,現(xiàn)在在Serverless領(lǐng)域,我認(rèn)為當(dāng)前包括云函數(shù),我們微信的云開發(fā)平臺,還有其他彈性容器的服務(wù),以及包括ServerlessDB服務(wù),都在層出不窮地滿足開發(fā)者的需求,但這遠(yuǎn)不是Serverless技術(shù)的終點(diǎn),Serverless技術(shù)發(fā)展趨勢以及核心價值觀不需要關(guān)注基礎(chǔ)設(shè)施,這種理念是云計算精神最好的詮釋,3–5年之后甚至更長遠(yuǎn),Serverless理念產(chǎn)品會成為云計算主流,服務(wù)所有開發(fā)者和企業(yè),讓中國產(chǎn)業(yè)互聯(lián)網(wǎng)發(fā)展效率提升更高,謝謝大家。
分享嘉賓
張浩,騰訊云Serverless產(chǎn)品總監(jiān),負(fù)責(zé)騰訊云Serverless Computing平臺的產(chǎn)品規(guī)劃、產(chǎn)品功能設(shè)計、商業(yè)化落地。有多年的云計算從業(yè)經(jīng)驗,曾負(fù)責(zé)CDN、分布式存儲、公網(wǎng)網(wǎng)關(guān)、消息隊列、中間件、微服務(wù)等多個領(lǐng)域的云產(chǎn)品。