簡介:Serverless 適合哪些業務場景?它可以對業務產生何種價值呢?
講師 | 洛浩(阿里云云原生高級架構師)
Serverless 的發展軌跡
2012 年,Serverless 這個單詞第一次出現,由 Iron 公司提出,字面意思就是不需要服務器。但是真正被大家所熟知,是在 2014 年 AWS 推出 Lambda 的時候。Lambda 產品的推出開啓了雲計算的新時代,之後所有的大廠都在跟進,比如微軟、谷歌、IBM 都先後推出自己的 Serverless 產品。
國內是在 2017 年的時候,阿里雲和騰訊雲先後推出了自己的 Serverless 平臺。但這個時候,都是指 FaaS(Function as a Service)。接着到 2018 年,大家開始漸漸接觸到 Serverless,更多還是支付寶小程序和微信小程序的雲開發平臺。隨後到 2019 年,國內其他廠商如百度、華爲、字節也都開始做 Serverless,現在 Serverless 已經成了各大雲廠商的標配。
Serverless 是雲計算的 2.0
爲什麼大家都要做 Serverless 呢?因爲大家都認爲 Serverless 是雲計算 2.0。隨着雲計算的發展,Serverless 已經成爲一個技術趨勢、一個理念、一個雲的發展方向。
雲計算領域有兩篇非常著名的論文,是伯克利大學分別在 2009 年和 2019 年發表的。伯克利大學在 2009 年發表的一篇關於雲計算的論文,預測了雲計算的發展,比如計算資源可以按需索取、支持彈性、簡化運維等,這些預測目前都已經實現。
而伯克利在 2019 年 2 月發表的第二篇論文中,預測 Serverless 是雲計算下一個十年的發展方向。論文裏也給出了關於 Serverless 的定義,簡單講就是Serverless Computing,由 FaaS + BaaS(Backend as a Service)構成一個 Serverless 軟件架構。特點就是能夠按需彈性、按需付費,這與 CNCF 的定義是相似的,應用以微服務或者函數的形式,拆解並部署到雲上,能夠按需去做彈性伸縮,按需付費,不用關心底層資源。
Serverless 是雲原生髮展的高級階段
Serverless 跟雲原生有什麼關係呢?Serverless 的出現,就像人類的演進過程,代表着生產力的解放,極大提升了客戶用雲的效率。Serverless 在其之上封裝了容器技術,是雲原生的高級階段。
Serverless 是對用戶強調 No Server,本質並不是不需要服務器,而是將服務器全權託管給了雲廠商,用戶不用去關心,不用去管理,只用把業務部署到平臺上來,只需聚焦業務邏輯代碼,能夠根據實際請求進行彈性伸縮,不用再去關心資源夠不夠。
Serverless 的核心價值
從物理機到 Serverless,就像我們買車一樣,如果要買一輛私家車,這個車的車況保險全部要自己關心,然後你要自己開;到了虛擬機之後,我們把業務 host 到雲上,就像汽車租賃;然後再到網約車,我不用買車,不用關心車況,我們要從 A 點到 B 點,只需要打個車,完全按需付費,按需彈性。
抽象出來其實就是有 3 個核心價值:
- 第一個是彈性伸縮,它比較省事。比如說我們剛纔有電商場景,需要彈性、扛大流量,Serverless 能夠及時把資源彈出來。
- 第二個特點,按需付費,我們用多少資源就花多少錢,不用爲閒置資源來買單。
- 第三個就是簡化運維,能夠幫用戶省去資源管理的煩惱。
Serverless 的軟件架構
作爲開發者,我們可以直接把鏡像或者代碼包部署到 Serverless 計算平臺上來,省去了整個資源的購買和環境部署這個過程。部署上來之後呢,後端可以跟存儲、數據庫進行交互,構成完整的 Serverless 架構。之後通過像 LB 或者 HTT 的方式,直接去訪問到業務代碼,平臺會根據用戶的請求去做調度和彈性伸縮。Serverless 平臺支持負載均衡,應對各種突發流量,用戶不用去關心後臺資源。
Serverless 的落地實踐
Serverless 已有多個落地場景,在各個行業,無論是後臺服務,還是 REST API 都可以部署到 Serverless 平臺上。尤其是 Serverless 音視頻處理、輕量 ETL(低門檻數據分析/處理)、事件驅動、任務跑批、應用託管、微服務容器化等場景。
在 Serverless 平臺上有非常多的應用 case,比如,如果想要做微服務或者容器化轉型,期望降低運維複雜度的同時,也能具備彈性伸縮、便捷發佈的能力,就可以直接把服務部署到 Serverless 應用引擎。
對於愛奇藝體育團隊來講,最大的痛點之一是資源的彈性。因爲體育賽事的直播流量有非常大的不確定性,面對流量激增,需要及時能夠對後臺服務進行擴容,如果按照峯值對資源進行保有,又會造成流量預估不準確的風險,以及一定程度上的資源浪費。
所以,Serverless 應用引擎非常好地匹配了客戶痛點問題,不僅解決了彈性擴縮的問題,也提升了資源利用率,同時配套的應用監控,也極大程度上提升了定位問題的效率。
Serverless 的未來暢想
- 大面積取代 Serverful,變爲默認的計算範式:雖然 Serverful 不會完全消失,但隨着 Serverless 存在的不足被逐個攻克,Serverlsss 在雲計算中所佔的比重將會逐漸提升,變成雲時代默認的計算範式。
- 擁抱整個容器生態:未來,Serverless 會更多的去擁抱整個容器生態,當下容器是整個業界的一個主流的趨勢,Serverless 會和容器做更多的集成,比如鏡像部署、鏡像加速、以及集成 K8S 很多的能力。
- 加速運維關係的變化:Serverless 將會加速運維關係的轉變,運維同學會從資源運維,逐步走向業務運維。
- 複雜任務編排、工具鏈及可觀測等能力提升:Serverless 會加強複雜任務編排、工具鏈和可觀測等方面的能力。因爲 Serverless 平臺對底層資源做了高度封裝,所以一定要把很多的監控指標去透露給用戶,通過這些指標來做業務級的管理和管控。
本文爲阿里雲原創內容,未經允許不得轉載。