自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度使用了下 Serverless,太絲滑了!

開發(fā) 架構(gòu)
在 Serverless 架構(gòu)下,開發(fā)者只需編寫代碼并上傳,云平臺就會自動準(zhǔn)備好相應(yīng)的計算資源,完成運(yùn)算并輸出結(jié)果,從而大幅簡化開發(fā)運(yùn)維過程。

云函數(shù)和 FaaS

最近在開發(fā)自己的小項(xiàng)目的時候,因?yàn)楦鞣N原因使用上了云函數(shù)這個東西,不夸張的說開發(fā)時間直接減少一半,當(dāng)然也沒啥復(fù)雜業(yè)務(wù)邏輯,但是亂七八糟各種配置基本都可以摒棄掉了。

云函數(shù)就是一種 Serveless,準(zhǔn)確來說,云函數(shù)屬于 Serveless 中的 FaaS(Function as a Service,函數(shù)即服務(wù)),典型的產(chǎn)品有阿里云函數(shù)、騰訊云函數(shù)、AWS Lambda、Google Cloud Functions、Azure Functions 等等。

FaaS 本質(zhì)上是一種事件驅(qū)動的由消息觸發(fā)的服務(wù),F(xiàn)aaS 供應(yīng)商(比如阿里云、騰訊云)一般會集成各種同步和異步的事件源,通過訂閱這些事件源,可以突發(fā)或者定期的觸發(fā)函數(shù)運(yùn)行。于傳統(tǒng)服務(wù)需要將應(yīng)用程序(Application)部署到擁有操作系統(tǒng)的虛擬機(jī)或者容器中并且需要長時間駐留的機(jī)制不同,F(xiàn)aaS 是直接將程序部署上到平臺上即可,當(dāng)有事件到來時觸發(fā)執(zhí)行,執(zhí)行完了就可以卸載掉。

IaaS、PaaS、SaaS、Faas

看完上面這些介紹一定還有很多同學(xué)一頭霧水,別急,下面我來詳細(xì)介紹下 FaaS 的發(fā)展背景:

云計算這個詞大伙肯定都聽說過,這個概念聽起來很牛逼,但其實(shí)核心目的就是云服務(wù)商能夠?yàn)橛脩籼峁└鼜?qiáng)大、更便宜的算力。

當(dāng)然,不要覺得云計算就是一個超大號的機(jī)房,只不過服務(wù)器更多些。

云計算的本質(zhì),不是算力資源的簡單堆砌,而是池化。它將大量的零散算力資源(廉價的算力資源)進(jìn)行打包、匯聚,實(shí)現(xiàn)更高可靠性、更高性能、更低成本的算力。

具體來說,在云計算中,CPU、GPU、內(nèi)存、硬盤等計算資源被集合起來,通過軟件的方式,組成一個虛擬的可無限擴(kuò)展的“算力資源池”。如果用戶有算力需求,“算力資源池”就會動態(tài)地進(jìn)行算力資源的分配,構(gòu)建一個虛擬的“計算機(jī)”。用戶按需使用、付費(fèi),即可。相比于用戶自購設(shè)備、自建機(jī)房、自己運(yùn)維,云計算有明顯的成本優(yōu)勢,可以節(jié)約大量資金和人力。

根據(jù)提供算力資源的層級不同,云計算通常也分為 IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺即服務(wù))、SaaS(軟件即服務(wù))。如下圖所示:

圖片圖片

那么,云計算這種 “租” 的方式,是不是最終極的算力資源使用方式呢?我們作為用戶,使用算力,還能更簡單一點(diǎn)嗎?

答案是肯定的。

不管是自建機(jī)房,還是云計算,用戶都需要和服務(wù)器打交道,和軟硬件環(huán)境打交道。這些都是工具和過程,而我們的最終目的是什么?是得到運(yùn)算結(jié)果。

那么,為了得到結(jié)果,我們可不可以不要關(guān)心環(huán)境的搭建過程呢?能不能直接忽略掉數(shù)據(jù)庫、緩存、消息隊列等等各種亂七八糟的配置呢?或者說,既然環(huán)境可以租,那能不能直接 “租” 服務(wù)呢?

如此,Serverless 應(yīng)運(yùn)而生了!

Serverless 是架構(gòu)、也是思想,它的目的就是在云計算的基礎(chǔ)上,再向前邁進(jìn)一步,徹底“包攬”所有的環(huán)境工作,直接提供計算服務(wù)。

那 Serverless 具體怎么做到直接租服務(wù)的呢,核心就是這個服務(wù)足夠“細(xì)小”,變成了“函數(shù)級”的顆粒度。從層級上來看,Serverless 在傳統(tǒng)云計算 SaaS 的 Application(應(yīng)用)層級之上,又加了一層 Function(函數(shù)),它的顆粒度更細(xì),可以更靈活地滿足用戶的算力需求。

圖片圖片

在 Serverless 架構(gòu)下,開發(fā)者只需編寫代碼并上傳,云平臺就會自動準(zhǔn)備好相應(yīng)的計算資源,完成運(yùn)算并輸出結(jié)果,從而大幅簡化開發(fā)運(yùn)維過程。

我深度體驗(yàn)了一把,這個開發(fā)體驗(yàn)真的太太太太絲滑了,開發(fā)到部署無縫銜接,再回到之前的開發(fā)方式我只能說有、笨重。

Serverless = FaaS + BaaS

說了半天 FaaS,還沒有正式介紹 Serveless,簡單記憶:Serveless = FaaS + BaaS

又出現(xiàn)了一個新概念 BaaS(Backend as a Service,后端即服務(wù)),BaaS 可讓開發(fā)人員訪問各種各樣的第三方服務(wù)和應(yīng)用。例如,云提供商可以提供認(rèn)證服務(wù)、額外加密、云訪問數(shù)據(jù)庫以及高置信度使用數(shù)據(jù)。

而在 FaaS 下,開發(fā)人員仍然要編寫自定義服務(wù)器端邏輯,但它可以在完全由云服務(wù)提供商管理的容器中運(yùn)行。

綜上,Serverless 的優(yōu)點(diǎn)是勿容置疑的:

  1. 無需管理基礎(chǔ)設(shè)施:在 Serverless 中,云提供商負(fù)責(zé)管理底層的服務(wù)器和基礎(chǔ)設(shè)施,包括硬件和操作系統(tǒng)。這意味著開發(fā)者無需擔(dān)心服務(wù)器的配置、維護(hù)和擴(kuò)展,可以將更多精力放在應(yīng)用程序的開發(fā)和功能上。
  2. 自動伸縮:Serverless 可以自動伸縮資源以滿足流量需求,無需手動干預(yù)。這可以確保應(yīng)用程序在高峰時期具有良好的性能,并在低流量時期降低成本。
  3. 按需計費(fèi):Serverless 模型按照實(shí)際使用的資源和執(zhí)行時間來計費(fèi),因此開發(fā)者只需支付他們真正使用的部分,而無需預(yù)先購買或租賃資源。
  4. 快速啟動:Serverless函數(shù)通常在幾秒內(nèi)啟動,因此可以迅速響應(yīng)請求。這對于需要快速擴(kuò)展或處理瞬時負(fù)載的應(yīng)用程序非常有用。
  5. 事件驅(qū)動:Serverless 函數(shù)通常是事件驅(qū)動的,可以響應(yīng)各種事件,如 HTTP 請求、數(shù)據(jù)庫更改、隊列消息等。這使得它們非常適合構(gòu)建微服務(wù)和處理異步任務(wù)。

至于缺點(diǎn),首先說定論,對于業(yè)務(wù)邏輯復(fù)雜的大型項(xiàng)目來說,Serverless 可能還不是一個非常好的選擇:

  1. 依賴云服務(wù)商:Serverless 的主動權(quán)掌握在云服務(wù)商的手上,就比如現(xiàn)在云函數(shù)主流還是用 Node.js 寫,各廠商對 Java 云函數(shù)的支持普遍還不是那么好
  2. 調(diào)試復(fù)雜性:在 Serverless 中,本地調(diào)試和跟蹤函數(shù)會更加復(fù)雜,因?yàn)楹瘮?shù)的執(zhí)行是在云提供商的環(huán)境中進(jìn)行的。
  3. 狀態(tài)管理:要想實(shí)現(xiàn)自由的縮放,無狀態(tài)是必須的,而對于有狀態(tài)的服務(wù),使用 Serverless 這就喪失了靈活性,有狀態(tài)服務(wù)需要與存儲交互就不可避免的增加了延遲和復(fù)雜性。
  4. 延遲:應(yīng)用程序中不同組件的訪問延遲是一個大問題,我們可以通過使用專有的網(wǎng)絡(luò)協(xié)議、RPC 調(diào)用、數(shù)據(jù)格式來優(yōu)化,或者是將實(shí)例放在同一個機(jī)架內(nèi)或同一個主機(jī)實(shí)例上來優(yōu)化以減少延遲。而 Serverless 應(yīng)用程序是高度分布式、低耦合的,這就意味著延遲將始終是一個問題。
  5. 成本不可控:雖然 Serverless 按需計費(fèi)有助于降低成本,但對于某些高負(fù)載或長時間運(yùn)行的工作負(fù)載,可能會導(dǎo)致不可控的費(fèi)用增加。
責(zé)任編輯:武曉燕 來源: 飛天小牛肉
相關(guān)推薦

2025-03-12 14:09:56

2023-08-21 11:24:43

AndroidCSS

2023-12-12 10:28:12

索引goland切片

2024-12-20 17:29:34

SpringBootAOP開發(fā)

2022-04-19 13:07:25

SchedulePython

2022-03-18 09:25:49

Python圖片PDF

2021-05-19 15:06:44

MySQL數(shù)據(jù)庫命令

2020-06-29 11:05:26

GitHub代碼開發(fā)者

2020-09-04 09:32:54

蘇寧數(shù)據(jù)治理

2022-12-12 09:01:03

2022-06-09 09:00:00

編程語言后端Dark

2022-05-06 19:53:33

Java serve

2015-08-05 13:24:15

2018-06-28 09:06:27

DNS技術(shù)CDN

2018-04-19 08:58:51

App蘋果JavaScript

2022-09-14 07:36:34

PowerToys微軟

2023-12-22 09:14:48

EDA數(shù)據(jù)分析探索性數(shù)據(jù)分析

2021-03-19 09:48:10

Jupyter Not插件Python

2021-10-26 10:52:51

Serverless 云原生應(yīng)用編程

2022-06-30 05:25:01

蓄電池通信電源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號