對于無服務(wù)器(Serverless)架構(gòu),什么時候該用,什么時候不該用呢?
如果將如今互聯(lián)網(wǎng)體驗(yàn)中最方便實(shí)用的那一部分去掉,那么留下來的基本就是 客戶端-服務(wù)端(client-server)模式了。這一個模式在互聯(lián)網(wǎng)建立初期就已經(jīng)在使用了,直到目前都沒有太大的變化,也就是說,這個模式仍然在為我們服務(wù)。
那么,當(dāng)人們談?wù)?無服務(wù)器(Serverless)架構(gòu)的時候,到底是指什么呢?其實(shí),無服務(wù)器架構(gòu)并不是說不使用服務(wù)器了。恰恰相反,客戶端-服務(wù)端模式仍然在其中發(fā)揮著重要的作用。
無服務(wù)器架構(gòu)實(shí)際上指的是能夠讓開發(fā)者在不需要關(guān)心服務(wù)器上架、為操作系統(tǒng)打補(bǔ)丁、創(chuàng)建容器鏡像這些工作的情況下,就能夠完成編碼、部署和創(chuàng)建應(yīng)用這一整套流程的架構(gòu)。
無服務(wù)器架構(gòu)的三個重要意義
1. 一些缺乏開發(fā)經(jīng)驗(yàn)的人員現(xiàn)在要參與到開發(fā)工作中來了。無服務(wù)器架構(gòu)能夠讓他們盡量只學(xué)習(xí)必要的工作內(nèi)容,把更多的時間放在更具創(chuàng)造性的開發(fā)工作中。
2. 開發(fā)者不再需要重復(fù)造輪子。運(yùn)行和維護(hù)服務(wù)器、為操作系統(tǒng)打補(bǔ)丁、創(chuàng)建容器等這一系列工作,都可以由更專業(yè)的無服務(wù)器架構(gòu)提供商來完成。
3. 最現(xiàn)實(shí)的一點(diǎn)是,如果不使用無服務(wù)器架構(gòu),那么在服務(wù)器管理方面,總需要有一個作最終決策的人。當(dāng)服務(wù)器發(fā)生崩潰時,或是需要在服務(wù)器上執(zhí)行某些操作時,總是需要這樣一個統(tǒng)領(lǐng)全局的人來作出決策。因此最佳的方案是使用無服務(wù)器架構(gòu)。
什么時候該用或者不該用無服務(wù)器架構(gòu)?
聽起來無服務(wù)器架構(gòu)是個好東西。但事實(shí)上,無服務(wù)器架構(gòu)并不是萬能的,在使用之前還需要考慮以下這些因素:
1. 成本
2. 使用范圍
3. 時間
4. 控制方式
其中值得注意的是控制方式。現(xiàn)在已經(jīng)有一些項(xiàng)目為開發(fā)者提供了操作和控制無服務(wù)器架構(gòu)計(jì)算環(huán)境的工具了, Apache OpenWhisk 就是其中之一。