從行業(yè)趨勢(shì)看,Serverless 是云計(jì)算必經(jīng)的一場(chǎng)革命 2019 年,Serverless 被 Gartner 稱為最有潛力的云計(jì)算技術(shù)發(fā)展方向,并被賦予是必然性的發(fā)展趨勢(shì)。Serverless 從底層開始變革計(jì)算資源的形態(tài),為軟件架構(gòu)設(shè)計(jì)與應(yīng)用服務(wù)部署帶來(lái)了新的設(shè)計(jì)思路。 為此,我們策劃了 Serverless 技術(shù)專欄,從基礎(chǔ)概念入門,到前后臺(tái)架構(gòu)設(shè)計(jì)、應(yīng)用拓展、最佳實(shí)踐等多維度,揭開 Serverless 的面紗,帶你走進(jìn)無(wú)服務(wù)器的世界。 什么是 Serverless?Serverless ,按中文翻譯,稱為「無(wú)服務(wù)器」。 這究竟是一種什么樣的形態(tài)或產(chǎn)品呢?無(wú)服務(wù)器,就是真的沒(méi)有服務(wù)器嗎? 其實(shí),在行業(yè)內(nèi),目前對(duì)于 Serverless 有幾種解讀方法:
在說(shuō)起 Serverless 架構(gòu)時(shí),Serverless 代表的是利用 Serverless 形態(tài)的產(chǎn)品實(shí)現(xiàn)的應(yīng)用架構(gòu),這種架構(gòu)完全依托于云廠商或云平臺(tái)提供產(chǎn)品完成系統(tǒng)的組織及構(gòu)建。在這種架構(gòu)中,用戶無(wú)需關(guān)注支撐應(yīng)用服務(wù)運(yùn)行的主機(jī),而將關(guān)注點(diǎn)投入在系統(tǒng)架構(gòu),業(yè)務(wù)開發(fā),業(yè)務(wù)支撐運(yùn)維上。 而說(shuō)起 Serverless 產(chǎn)品時(shí),代表的是無(wú)需理解、管理服務(wù)器,按需使用,按使用付費(fèi)的產(chǎn)品。Serverless 產(chǎn)品中,其實(shí)也可以包含存儲(chǔ)、計(jì)算等多種類型的產(chǎn)品。而典型的計(jì)算產(chǎn)品,就是云函數(shù)這種形態(tài)。 云函數(shù),或者稱為函數(shù)即服務(wù) (Function as a Service),它和后端即服務(wù) (Backend as a Service) 一起,都可以稱為 Serverless 產(chǎn)品。通過(guò)組合使用這些產(chǎn)品,開發(fā)者可以構(gòu)建自身的業(yè)務(wù) Serverless 架構(gòu)。 Serverless 的價(jià)值Serverless 技術(shù)為什么會(huì)獲得越來(lái)越多的關(guān)注?我們可以從幾個(gè)角度來(lái)看。 首先,從開發(fā)者使用的來(lái)說(shuō),不用更多地去考慮服務(wù)器的相關(guān)內(nèi)容,無(wú)需再去考慮服務(wù)器的規(guī)格大小、存儲(chǔ)類型、網(wǎng)絡(luò)帶寬、自動(dòng)擴(kuò)縮容問(wèn)題。同時(shí),也無(wú)需再對(duì)服務(wù)器進(jìn)行運(yùn)維,無(wú)需不斷打系統(tǒng)補(bǔ)丁、應(yīng)用補(bǔ)丁,無(wú)需進(jìn)行數(shù)據(jù)備份、軟件配置等工作。 其次,Serverless 產(chǎn)品是完全自動(dòng)化的彈性擴(kuò)縮容的。在業(yè)務(wù)高峰時(shí),產(chǎn)品的計(jì)算能力、容量自動(dòng)擴(kuò)容,承載更多的用戶請(qǐng)求,而在業(yè)務(wù)下降時(shí),所使用的資源也會(huì)同時(shí)收縮,避免資源浪費(fèi)。 再次,跟隨著完全自動(dòng)化的彈性所帶來(lái)的,是全新的計(jì)量計(jì)費(fèi)模式。開發(fā)者僅需根據(jù)使用量來(lái)付費(fèi),而在深夜無(wú)業(yè)務(wù)量的情況下,不會(huì)有空閑資源占用,因此也不會(huì)有費(fèi)用產(chǎn)生。 隨著如上提到的特性,Serverless 給開發(fā)者或用戶帶來(lái)了具體的商業(yè)價(jià)值: 1. 降低運(yùn)維需求
2. 降低運(yùn)營(yíng)成本
3. 縮短迭代周期、上線時(shí)間
4. 快速試錯(cuò)
Serverless 的技術(shù)特點(diǎn)這里提到的技術(shù)特點(diǎn)的對(duì)象,特指 Serverless 產(chǎn)品中的計(jì)算產(chǎn)品,也就是云函數(shù)。云函數(shù)包含了如下的技術(shù)特性: 1. 事件驅(qū)動(dòng)
2. 單事件處理
3. 自動(dòng)彈性伸縮
4. 無(wú)狀態(tài)開發(fā)
▎Serverless 的應(yīng)用場(chǎng)景Serverless 架構(gòu)或者技術(shù),可以用在什么樣的場(chǎng)景下,來(lái)充分發(fā)揮它的優(yōu)勢(shì)呢?如下的場(chǎng)景,都適合使用 Serverless 架構(gòu)或產(chǎn)品,來(lái)實(shí)現(xiàn)所需的業(yè)務(wù)邏輯。 1. WEB 及移動(dòng)后端通過(guò)結(jié)合使用云函數(shù)和 API 網(wǎng)關(guān)或 HTTP 觸發(fā)器,可以對(duì)外提供 URL 訪問(wèn)地址,成為 Web、小程序、或移動(dòng)應(yīng)用等的后端服務(wù)。Serverless 架構(gòu)既可以直接用于構(gòu)建后臺(tái)來(lái)服務(wù)應(yīng)用,也可以通過(guò)類似 BFF 模式,構(gòu)建中臺(tái)和應(yīng)用間的橋梁。 Serverless 架構(gòu)提供的強(qiáng)彈性能力,使得可以支撐業(yè)務(wù)或應(yīng)用的暴漲;而提供的低運(yùn)維需求,使得開發(fā)者可以專注于業(yè)務(wù)實(shí)現(xiàn)和優(yōu)化;同時(shí),按實(shí)際使用量的付費(fèi)方式,使得開發(fā)者無(wú)需預(yù)配置資源,無(wú)需擔(dān)心預(yù)配置資源的浪費(fèi)。 2. 消息處理Serverles 架構(gòu)的應(yīng)用本身是由事件觸發(fā)的,因此極其適合于進(jìn)行消息處理。無(wú)論是消息隊(duì)列中傳遞的業(yè)務(wù)消息,還是 Kafka 中采集應(yīng)用日志,均可以對(duì)接到云函數(shù)上,進(jìn)行實(shí)時(shí)的消息處理、分析。 3. 對(duì)象存儲(chǔ)文件處理在 Serverless 應(yīng)用場(chǎng)景中,由對(duì)象存儲(chǔ)中的文件上傳事件,來(lái)觸發(fā)云函數(shù)的運(yùn)行,也是一種常見場(chǎng)景。 針對(duì)圖片文件的上傳,可以借助云函數(shù)完成圖片的縮略圖生成、二維碼或水印標(biāo)記、圖片優(yōu)化處理;而針對(duì)數(shù)據(jù)文件的上傳,可以啟動(dòng)數(shù)據(jù)的自動(dòng)化分析 4. 物聯(lián)網(wǎng)物聯(lián)網(wǎng)意味著成千上萬(wàn)的設(shè)備會(huì)連入網(wǎng)絡(luò),時(shí)刻在不斷的產(chǎn)生數(shù)據(jù),這對(duì)數(shù)據(jù)的分析、處理的及時(shí)性提出了很高的挑戰(zhàn)。通過(guò)使用 Serverless 架構(gòu),物聯(lián)網(wǎng)設(shè)備所采集的數(shù)據(jù)將可以作為云函數(shù)的觸發(fā)事件,而實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)處理、分析和應(yīng)用。 隨著物聯(lián)網(wǎng)設(shè)備計(jì)算能力的進(jìn)一步提升,云函數(shù)作為最小粒度的計(jì)算單元,有機(jī)會(huì)被調(diào)度到設(shè)備端運(yùn)行,實(shí)現(xiàn)邊緣計(jì)算,達(dá)到「端 - 云」聯(lián)合的 Serverless 架構(gòu)。 5. 運(yùn)維及集成通過(guò)對(duì)接云函數(shù)以及云上的各個(gè)產(chǎn)品、日志服務(wù)、監(jiān)控告警系統(tǒng),云時(shí)代的運(yùn)維也都可以用云函數(shù)來(lái)構(gòu)建。定時(shí)觸發(fā)的云函數(shù),將可以方便地替代需要在主機(jī)上來(lái)運(yùn)行的定時(shí)任務(wù);而日志或告警觸發(fā)的云函數(shù),將可以對(duì)云中的事件作出立刻回應(yīng)及處理。 ▎Serverless — 云原生時(shí)代的應(yīng)用云計(jì)算已經(jīng)進(jìn)入了新的時(shí)期,目前上云已經(jīng)不是應(yīng)不應(yīng)該,而是如何上云的問(wèn)題。在這種情況下,云原生的概念也隨之而生。云原生的架構(gòu)或應(yīng)用,是基于云而設(shè)計(jì)的,充分利用現(xiàn)代云計(jì)算平臺(tái)所具備的彈性和分布式特性來(lái)實(shí)現(xiàn)應(yīng)用架構(gòu)。 而 Serverless 架構(gòu)、產(chǎn)品、以及應(yīng)用,均是完全依托于云而構(gòu)建的,是典型且完全的云原生的架構(gòu)、產(chǎn)品或應(yīng)用。Serverless 產(chǎn)品所具備的產(chǎn)品特性、技術(shù)、費(fèi)用等優(yōu)勢(shì),將成為新一代云產(chǎn)品的發(fā)展方向;而基于 Serverless 架構(gòu)推進(jìn)完成開發(fā)的應(yīng)用或架構(gòu),將充分享受到云時(shí)代帶來(lái)的強(qiáng)大助力,使得云計(jì)算能真正成為業(yè)務(wù)的助推器。 Serverless 的計(jì)算產(chǎn)品 —— 云函數(shù),作為云虛擬機(jī)、容器技術(shù)之后的下一代計(jì)算形態(tài),將引來(lái)云計(jì)算中新的熱潮。圍繞著云函數(shù)而建設(shè)的產(chǎn)品能力、工具、生態(tài)、以及應(yīng)用開發(fā),也將引來(lái)新的一輪發(fā)展。隨著無(wú)服務(wù)器的產(chǎn)品和生態(tài)走向成熟,將逐步承載起企業(yè)核心業(yè)務(wù)。在這個(gè)持續(xù)向前高速發(fā)展的過(guò)程中,騰訊云的云函數(shù),將作為騰訊云云原生的重點(diǎn)發(fā)力領(lǐng)域,跟隨客戶需求、行業(yè)發(fā)展、技術(shù)發(fā)展,為用戶提供完整的 Serverless 解決方案。
歡迎訪問(wèn):Serverless 中文網(wǎng),您可以在 最佳實(shí)踐 里體驗(yàn)更多關(guān)于 Serverless 應(yīng)用的開發(fā)! 推薦閱讀:《Serverless 架構(gòu):從原理、設(shè)計(jì)到項(xiàng)目實(shí)戰(zhàn)》 |
|
|