天天看點

一文讀懂 Serverless 的起源、發展和落地實踐

​簡介:Serverless 适合哪些業務場景?它可以對業務産生何種價值呢?

一文讀懂 Serverless 的起源、發展和落地實踐

講師 | 洛浩(阿裡雲雲原生進階架構師)

Serverless 的發展軌迹

2012 年,Serverless 這個單詞第一次出現,由 Iron 公司提出,字面意思就是不需要伺服器。但是真正被大家所熟知,是在 2014 年 AWS 推出 Lambda 的時候。Lambda 産品的推出開啟了雲計算的新時代,之後所有的大廠都在跟進,比如微軟、谷歌、IBM 都先後推出自己的 Serverless 産品。

國内是在 2017 年的時候,阿裡雲和騰訊雲先後推出了自己的 Serverless 平台。但這個時候,都是指 FaaS(Function as a Service)。接着到 2018 年,大家開始漸漸接觸到 Serverless,更多還是支付寶小程式和微信小程式的雲開發平台。随後到 2019 年,國内其他廠商如百度、華為、位元組也都開始做 Serverless,現在 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 在其之上封裝了容器技術,是雲原生的進階階段。

Serverless 是對使用者強調 No Server,本質并不是不需要伺服器,而是将伺服器全權托管給了雲廠商,使用者不用去關心,不用去管理,隻用把業務部署到平台上來,隻需聚焦業務邏輯代碼,能夠根據實際請求進行彈性伸縮,不用再去關心資源夠不夠。

一文讀懂 Serverless 的起源、發展和落地實踐

Serverless 的核心價值

從實體機到 Serverless,就像我們買車一樣,如果要買一輛私家車,這個車的車況保險全部要自己關心,然後你要自己開;到了虛拟機之後,我們把業務 host 到雲上,就像汽車租賃;然後再到網約車,我不用買車,不用關心車況,我們要從 A 點到 B 點,隻需要打個車,完全按需付費,按需彈性。

抽象出來其實就是有 3 個核心價值:

  • 第一個是彈性伸縮,它比較省事。比如說我們剛才有電商場景,需要彈性、扛大流量,Serverless 能夠及時把資源彈出來。
  • 第二個特點,按需付費,我們用多少資源就花多少錢,不用為閑置資源來買單。
  • 第三個就是簡化運維,能夠幫使用者省去資源管理的煩惱。
一文讀懂 Serverless 的起源、發展和落地實踐

我們可以更直覺來看 Serverless 的價值:首先最上層是業務邏輯,其次是對接的資料庫、存儲、微服務架構等,往下要建立監控系統、日志系統,以及容災和高可用等,再到底層還要維護各種各樣的 IaaS 資源,如虛拟機叢集。而 Serverless 幫使用者省掉的是資源層和可觀測層,平台負責底層彈性資源,包括所有的日志監控等,使用者就隻需要關心業務邏輯。

Serverless 的軟體架構

作為開發者,我們可以直接把鏡像或者代碼包部署到 Serverless 計算平台上來,省去了整個資源的購買和環境部署這個過程。部署上來之後呢,後端可以跟存儲、資料庫進行互動,構成完整的 Serverless 架構。之後通過像 LB 或者 HTT 的方式,直接去通路到業務代碼,平台會根據使用者的請求去做排程和彈性伸縮。Serverless 平台支援負載均衡,應對各種突發流量,使用者不用去關心背景資源。

一文讀懂 Serverless 的起源、發展和落地實踐

元件架構有點複雜,本次不展開來講。對于開發者,需要關注的是綠色部分,即業務代碼和服務架構等,以及用什麼樣的工具和後端 BaaS。Serverless 平台會納管所有基礎設施,會做好消息緩存、流量排程、容災、高可用等。

一文讀懂 Serverless 的起源、發展和落地實踐

另一個非常重要的元件架構是 Serverless 應用引擎,它的本質是把 K8S 做了封裝。如果企業有微服務業務,并且需要部署到 K8S 叢集,而維護挑戰比較大的話,就可以用這種形态。把開發好的微服務,或者單體應用直接托管到這個平台上來,就能夠享受 Serverless 所帶來的彈性伸縮和按需付費的價值。

一文讀懂 Serverless 的起源、發展和落地實踐

Serverless 的落地實踐

Serverless 已有多個落地場景,在各個行業,無論是背景服務,還是 REST API 都可以部署到 Serverless 平台上。尤其是 Serverless 音視訊處理、輕量 ETL(低門檻資料分析/處理)、事件驅動、任務跑批、應用托管、微服務容器化等場景。

在 Serverless 平台上有非常多的應用 case,比如,如果想要做微服務或者容器化轉型,期望降低運維複雜度的同時,也能具備彈性伸縮、便捷釋出的能力,就可以直接把服務部署到 Serverless 應用引擎。

一文讀懂 Serverless 的起源、發展和落地實踐

再分享一個案例,想必很多人都有看過歐洲杯,國内是愛奇藝體育在做這個賽事直播,其背後的業務就是部署在 Serverless 應用引擎平台上。

對于愛奇藝體育團隊來講,最大的痛點之一是資源的彈性。因為體育賽事的直播流量有非常大的不确定性,面對流量激增,需要及時能夠對背景服務進行擴容,如果按照峰值對資源進行保有,又會造成流量預估不準确的風險,以及一定程度上的資源浪費。

是以,Serverless 應用引擎非常好地比對了客戶痛點問題,不僅解決了彈性擴縮的問題,也提升了資源使用率,同時配套的應用監控,也極大程度上提升了定位問題的效率。

一文讀懂 Serverless 的起源、發展和落地實踐

Serverless 的未來暢想

  • 大面積取代 Serverful,變為預設的計算範式:雖然 Serverful 不會完全消失,但随着 Serverless 存在的不足被逐個攻克,Serverlsss 在雲計算中所占的比重将會逐漸提升,變成雲時代預設的計算範式。
  • 擁抱整個容器生态:未來,Serverless 會更多的去擁抱整個容器生态,當下容器是整個業界的一個主流的趨勢,Serverless 會和容器做更多的內建,比如鏡像部署、鏡像加速、以及內建 K8S 很多的能力。
  • 加速運維關系的變化:Serverless 将會加速運維關系的轉變,運維同學會從資源運維,逐漸走向業務運維。
  • 複雜任務編排、工具鍊及可觀測等能力提升:Serverless 會加強複雜任務編排、工具鍊和可觀測等方面的能力。因為 Serverless 平台對底層資源做了高度封裝,是以一定要把很多的監控名額去透露給使用者,通過這些名額來做業務級的管理和管控。
一文讀懂 Serverless 的起源、發展和落地實踐

我們希望 Serverless 能夠真正給大家減負,讓業務開發和維護變的更加簡單,給業務帶來更大的價值。

原文連結

本文為阿裡雲原創内容,未經允許不得轉載。 

繼續閱讀