溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Serverless的價值該怎么理解

發(fā)布時間:2021-12-16 11:56:00 來源:億速云 閱讀:199 作者:柒染 欄目:云計算

今天就跟大家聊聊有關(guān)Serverless的價值該怎么理解,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

雖然說是 Serverless,但 Server(服務(wù)器)是不可能真正消失的,Serverless 里這個 less 更確切地說,應(yīng)該是開發(fā)者不用關(guān)心服務(wù)器的意思。這就好比現(xiàn)代編程語言 Java 和 Python,開發(fā)不用手工分配和釋放內(nèi)存,但內(nèi)存依然在哪里,只不過交給垃圾收集器管理了。稱一個能幫助你管理服務(wù)器的平臺為 Serverless 平臺,就好比稱呼 Java 和 Python 為 Memoryless 語言一樣。

但是,如果我們把目光放到今天這個云的時代,那么就不能狹義地把 Serverless 僅僅理解為不用關(guān)心服務(wù)器。云上的資源除了服務(wù)器所包含的基礎(chǔ)計算、網(wǎng)絡(luò)、存儲資源之外,還包括各種類別的更上層的資源,例如數(shù)據(jù)庫、緩存、消息等。

Serverless 的愿景

2019 年 2 月,UC 伯克利大學(xué)發(fā)表了一篇標(biāo)題為《Cloud Programming Simplified: A Berkeley View on Serverless Computing》的論文,論文中也有一個非常清晰形象的比喻,文中這樣描述:

在云的上下文中,Serverful 的計算就像使用低級的匯編語言編程,而 Serverless 的計算就像使用 Python 這樣的高級語言進(jìn)行編程。例如 c = a + b 這樣簡單的表達(dá)式,如果用匯編描述,就必須先選擇幾個寄存器,把值加載到寄存器,進(jìn)行數(shù)學(xué)計算,再存儲結(jié)果。這就好比今天在云環(huán)境下 Serverful 的計算,開發(fā)首先需要分配或找到可用的資源,然后加載代碼和數(shù)據(jù),再執(zhí)行計算,將計算的結(jié)果存儲起來,最后還需要管理資源的釋放。

論文中所謂的 Serverful 計算,是我們今天主流的使用云的方式,但不應(yīng)該是未來我們使用云的方式。我認(rèn)為 Serverless 的愿景應(yīng)該是 Write locally, compile to the cloud,即代碼只關(guān)心業(yè)務(wù)邏輯,由工具和云去管理資源。

Serverless 的價值

在對 Serverless 有一個總體的抽象概念之后,也需要具體了解 Serverless 平臺的主要特點,同時這些特點也是 Serverless 核心優(yōu)勢的體現(xiàn)。

1. 不用關(guān)心服務(wù)器

管理一兩臺服務(wù)器可能不是什么麻煩的事情,管理數(shù)千甚至數(shù)萬臺服務(wù)器就沒那么簡單了。任何一臺服務(wù)器都可能出現(xiàn)故障,如何自動識別故障,摘除有問題的實例,這是 Serverless 平臺必須具備的能力;此外,操作系統(tǒng)的安全補丁升級,需要做到不影響業(yè)務(wù),自動完成;日志和監(jiān)控系統(tǒng)需要默認(rèn)打通;系統(tǒng)的安全策略需要自動配置好以避免風(fēng)險;當(dāng)資源不夠時,需要能夠自動分配資源并安裝相關(guān)的代碼和配置,等等。

2. 自動彈性

今天的互聯(lián)網(wǎng)應(yīng)用都被設(shè)計成可伸縮架構(gòu),當(dāng)業(yè)務(wù)有比較明顯的高峰和低谷時,或者業(yè)務(wù)有臨時的容量需求時(比如營銷活動),Serverless 平臺都能夠及時且穩(wěn)定地實現(xiàn)自動彈性。為了實現(xiàn)這個能力,平臺需要有非常強大的資源調(diào)度能力,以及對應(yīng)用各項指標(biāo)(如 load、并發(fā))非常敏銳的感知能力。

3. 按實際資源使用計費

Serverful 的方式使用云資源,是按占用而非使用計費的,例如用戶在云上購買了三臺 ECS,那么不管用戶實際使用了這三臺 ECS 多少的 CPU 和內(nèi)存,他都需要支付這三臺 ECS 整體的費用。而在 Serverless 模式下,用戶是按實際使用的資源付費的,例如一個請求實際使用了一臺 1core2g 規(guī)格資源 100ms 的時間,那么用戶就只需要為該規(guī)格的單價乘以時間(即100ms)付費。類似的,用戶如果用的是 Serverless 數(shù)據(jù)庫,那么就只需要為 query 實際消耗的資源,以及數(shù)據(jù)存儲的資源付費。

4. 更少的代碼,更快的交付速度

基于 Serverless 架構(gòu)的代碼通常會重度使用后端的服務(wù),將數(shù)據(jù)、狀態(tài)管理等內(nèi)容從代碼中分離出去;此外,更徹底的 FaaS 架構(gòu)則把代碼的 Runtime 也交給了平臺管理。這就意味著,同樣的應(yīng)用,Serverless 模式下的代碼相比 Serverful 模式會少很多,因此不論是從分發(fā)還是啟動,都會更快。Serverless 平臺也通常能夠提供非常成熟的代碼構(gòu)建發(fā)布、版本切換等特性,提升交付速度。

看完上述內(nèi)容,你們對Serverless的價值該怎么理解有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI