騰訊云李嘯川:Serverless 化云原生釋放云計算效率紅利
分享嘉賓
李嘯川,騰訊云 Serverless 技術(shù)產(chǎn)品專家,目前負責(zé)騰訊云 Serverless 產(chǎn)品及企業(yè)解決方案的設(shè)計工作,致力于推動云原生技術(shù)架構(gòu)演進及落地,為技術(shù)工作者提供高效的云服務(wù)產(chǎn)品。十余年技術(shù)研發(fā)經(jīng)驗,曾就職于 Oracle、IBM,從事于企業(yè)級商業(yè)套件及云服務(wù)引擎研發(fā)工作,后切換到消費互聯(lián)網(wǎng),孵化小米 MIOT、創(chuàng)立小米有品電商等業(yè)務(wù),加入騰訊云之前擔(dān)任愛奇藝技術(shù)總監(jiān),業(yè)務(wù)線技術(shù)負責(zé)人。
01.面向業(yè)務(wù)的技術(shù)體系關(guān)注哪些方面?
首先,通過業(yè)務(wù)視角來看為什么需要關(guān)注 Serverless。這里的業(yè)務(wù)視角是廣義的業(yè)務(wù),即滿足需求,解決痛點,輸出價值。技術(shù)對業(yè)務(wù)的助力可以簡單歸納為三個階段:
1. 迭代原型,驗證業(yè)務(wù)
從零到一,通過技術(shù)手段提升業(yè)務(wù)原型的迭代和驗證效率;
2. 持續(xù)優(yōu)化,強化業(yè)務(wù)
在運行效率和工程效率方面不斷優(yōu)化,增強業(yè)務(wù)的競爭力;
3. 構(gòu)建壁壘,賦能業(yè)務(wù)
在技術(shù)深度方面形成護城河,持續(xù)保持業(yè)務(wù)的差異化優(yōu)勢;
為了更好的支撐業(yè)務(wù),在技術(shù)體系中我們會關(guān)注哪些問題?
- 穩(wěn)定性和質(zhì)量,是業(yè)務(wù)正常推進的基石;
- 開發(fā)效率,幫助業(yè)務(wù)爭取寶貴的時間,決定了業(yè)務(wù)能否在賽道中勝出,比如有了新的想法能否快速得到驗證;
- 運行效率,是研發(fā)同學(xué)亙古不變的執(zhí)著追求,更優(yōu)化的算法,更優(yōu)雅的架構(gòu),同時也將決定深度和難度;
- 成本,這里的成本,一方面是資源成本,例如運行服務(wù)或系統(tǒng),需要占用的計算、網(wǎng)絡(luò)、存儲等基礎(chǔ)資源的成本。另一方面是時間和人力成本,對于企業(yè)來說,尤其是互聯(lián)網(wǎng)或業(yè)務(wù)導(dǎo)向的公司,人力成本占企業(yè)整體比重較大;
02.Serverless 能夠釋放哪些紅利?
從工業(yè)界的角度來看,包含四個維度:
- 模塊化程度
- 自動化運維程度
- 彈性效率
- 故障恢復(fù)能力
從這幾個方面可以看出對基礎(chǔ)設(shè)施層,進行了趨勢演進的判斷,目前 Serverless 在可以預(yù)見的階段內(nèi),是計算平臺的一個必然的演進方向,也是目前可預(yù)見的最終方向。
Serverless 分成兩個階段:第一個階段是 容器化的 Serverless,再下一個階段是 fPaaS Serverless 的平臺。
關(guān)于學(xué)術(shù)界對 Serverless 定義,加州大學(xué)伯克利分校于 2009 年曾發(fā)表過一篇論文,精準預(yù)測了未來 10 年云計算演進的方向,2019 年又發(fā)表了一篇論文,預(yù)測 Serverless 將會成為未來云計算最終的產(chǎn)品形態(tài)或服務(wù)平臺。
騰訊云連續(xù)兩年舉辦 ServerlessDays China 交流峰會,2020 年邀請了文章主要作者之一 Johann Schleier-Smith ,給我留下印象最深的觀點是,他把云計算分成兩個階段,第一個階段:簡化系統(tǒng)管理,包括虛擬機、容器等,提供可編程的、簡化的管理方式,由云平臺托管基礎(chǔ)設(shè)施;下一個階段:簡化開發(fā),開發(fā)者只關(guān)注核心代碼,云平臺負責(zé)系統(tǒng)管理、運維、架構(gòu)等等,為開發(fā)提供更好的體驗,讓開發(fā)效率得到更大的提升。
在講解了工業(yè)界和學(xué)術(shù)界的定義之后,我們來對比 Serverless 與傳統(tǒng) Server 的服務(wù)方式。
在傳統(tǒng)的 Server 金字塔圖中,從底層系統(tǒng)的安全、系統(tǒng)資源的調(diào)度,到中層的日志、監(jiān)控、運維,再到上一層的數(shù)據(jù)、存儲,最后金字塔尖的業(yè)務(wù)邏輯。對于業(yè)務(wù)開發(fā)來說,真正產(chǎn)生價值的就是上金字塔尖這部分業(yè)務(wù)邏輯的編寫,服務(wù)于客戶,為客戶帶來價值。下面的部分更多是基礎(chǔ)的支撐,從這個角度來說,Serverless 就是解決下面的部分基礎(chǔ)設(shè)施維護,平臺側(cè)承擔(dān)底層基礎(chǔ)部分,給到開發(fā)者更少的運維成本和工作量,Less is more,讓企業(yè)把有效的人力、資源去放到更多產(chǎn)生業(yè)務(wù)價值的方面。
以業(yè)務(wù)開發(fā)舉例,在規(guī)劃一個項目時,大概有 50% 左右的時間設(shè)計整個架構(gòu),比如高可用、高并發(fā)、可拓展,如何設(shè)計架構(gòu)才能支撐這樣的規(guī)模,若平臺側(cè)來承接這部分工作,能夠解放大量的人力和精力。
對于商業(yè)模式的改變,在一些典型場景:比如「電商秒殺」、「春晚搶紅包」,都有瞬時的流量峰值,為了能承接這樣瞬時的峰值,需儲備巨大的資源,但這部分資源在很長的一段時間內(nèi)是閑置的狀態(tài)。
如何解決資源冗余的問題呢?
這種商業(yè)模式在以往衣食住行各行業(yè)早已經(jīng)落地,只是在計算領(lǐng)域?qū)⑵鋸?fù)用。早期是自建機房,接著開始租用云主機,最終通過 Serverless 形成按需付費。類比交通,購買汽車,自己負擔(dān)維護、折舊成本并占用自有時間駕駛;租用汽車,租用期間占用自有時間駕駛且開不開都需要付租金;出租車,按需啟動,里程計費。
云廠商提供的計算資源,在租用期間擁有使用權(quán),但在租用過程中,會有一部分計算資源的冗余,而通過 Serverless 按需付費,根據(jù)實際需求量來申請使用計算服務(wù),達成業(yè)務(wù)目標(biāo)后即可終止計算服務(wù),停止計費。
從這個角度來看,Serverless 核心價值可以歸納到三點:
- 簡化運維,能夠提供穩(wěn)定運行環(huán)境,支持多場景、彈性伸縮的服務(wù);
- 更低成本,按需付費,減少冗余資源的計費;
- 時間效率,通過 Serverless 這種面向事件的編程模式,極大地簡化架構(gòu)設(shè)計,簡化不同規(guī)范、不同標(biāo)準的團隊協(xié)作??焖俚貙I(yè)務(wù)落地,快速投放到市場做驗證。
03.Serverless 落地方式
1. 騰訊云 Serverless 產(chǎn)品矩陣
Serverless HTTP
目前支撐微信小程序開發(fā)平臺,比較典型還有 Web 應(yīng)用、API 服務(wù)等等。云函數(shù)已經(jīng)支撐微信開發(fā)平臺超過 100 萬的開發(fā)者,每天超過 150 億次調(diào)用。
Serverless Trigger
即觸發(fā)器,由云上各組件定義"事件",通過事件驅(qū)動模型觸發(fā)對函數(shù)的調(diào)用。
以上兩點是輕量的調(diào)用和服務(wù),音視頻處理和數(shù)據(jù)處理 ETL 屬于重計算場景,進一步細分,可以理解為音視頻處理是對于非結(jié)構(gòu)化數(shù)據(jù)的處理,包括轉(zhuǎn)碼、理解,數(shù)據(jù)處理,ETL 是對結(jié)構(gòu)化數(shù)據(jù)的處理,包括數(shù)據(jù)的分析、匯總、 計算。
上面更多的是從應(yīng)用的視角去看 Serverless 的產(chǎn)品能力,Serverless Framework 和云函數(shù) SCF 是基礎(chǔ)產(chǎn)品支撐,云函數(shù)是作為新一代計算平臺,支撐上一層應(yīng)用所有的計算需求。Serverless Framework 是騰訊云和北美「Serverless.com」這家企業(yè)合作的產(chǎn)品,是北美最流行的 Serverless 開發(fā)工具。
2. 騰訊云 Serverless 產(chǎn)品能力使用場景
Serverless HTTP 產(chǎn)品能力
在傳統(tǒng)業(yè)務(wù)模式中,Web 應(yīng)用和 API Server,首先需要創(chuàng)建計算實例,在計算實例上部署應(yīng)用服務(wù)器,再部署發(fā)布代碼,完成后通過綁定公網(wǎng)入口連接到服務(wù),形成服務(wù)閉環(huán)。如果通過 Serverless 來實現(xiàn),API 網(wǎng)關(guān)和云函數(shù)天然的集成,只需在函數(shù)中編寫業(yè)務(wù)邏輯,如果邏輯較為清晰,幾分鐘即可完成開發(fā)、調(diào)試、發(fā)布上線,極大地提升了業(yè)務(wù)迭代效率。
Serverless 觸發(fā)器
基于云原生的架構(gòu),云上的各種組件,例如 COS 對象存儲、Ckafka 消息隊列中間件、CLS 日志服務(wù)等等,當(dāng)定義的事件被觸發(fā)后,組件內(nèi)置觸發(fā)器將調(diào)用云函數(shù)來處理對應(yīng)的業(yè)務(wù)邏輯。COS 對象存儲觸發(fā)器與函數(shù)的長時運行、大規(guī)格實例等產(chǎn)品能力就構(gòu)成了了 Serverless 多媒體解決方案的基礎(chǔ)。
Serverless 音視頻處理
面向開發(fā)者,打造中臺服務(wù),主要提供 3 點差異化能力:
- 算力可配置,通過函數(shù)規(guī)格顯式的選擇計算實例大小;
- 框架 / 編碼器可配置,支持部署自研的或者開源的編碼器,實現(xiàn)原有轉(zhuǎn)碼或音視頻處理服務(wù)的平滑遷移。
- 工作流可配置,上下游的產(chǎn)業(yè)鏈、業(yè)務(wù)流程串聯(lián),實現(xiàn)整個業(yè)務(wù)鏈條閉環(huán)。
在轉(zhuǎn)碼基礎(chǔ)上,Serverless 云函數(shù)提供了更多深度的能力,和騰訊云內(nèi)部有深度積累的各實驗室聯(lián)合探索了很多解決方案,包括 智能審核、畫質(zhì)增強、視頻理解、視頻編輯等。
針對音視頻實時互動,Serverless 云函數(shù)也提供了包括 一鍵式觸發(fā)直播推、直播流旁路錄制的后處理、內(nèi)容的審核、對原內(nèi)容的增強(實時字幕、實時翻譯)等能力的封裝。
Serverless 數(shù)據(jù) ETL
除了對非結(jié)構(gòu)化數(shù)據(jù)的一些處理,同樣支持對結(jié)構(gòu)化數(shù)據(jù) ETL 的處理,通過對公網(wǎng) API、DB、文件存儲等多數(shù)據(jù)源的拉取、大量數(shù)據(jù)的批處理、加載至目標(biāo)存儲,覆蓋到電商、搜索、內(nèi)容、監(jiān)測、分析等多個場景。
最后與大家分享下已有企業(yè)級的解決方案,助力更多企業(yè)高效達成業(yè)務(wù)目標(biāo):
- Serverless 多媒體處理
- Serverless 數(shù)據(jù)處理
- Serveless AI 推理
- Serverless HTTP
以上就是我的分享,謝謝。