我們可以來(lái)看一下整個(gè)云的發(fā)展過(guò)程
講Serverless架構(gòu)之前我們可以來(lái)看一下整個(gè)云的發(fā)展過(guò)程,在沒有云之前大家可能都是用的物理服務(wù)器,早期時(shí)候大家都用的物理機(jī)托管方式,采購(gòu)一些服務(wù)器在機(jī)房里托管,這個(gè)時(shí)候大家前期要選擇物理機(jī)型號(hào),要做好IDC網(wǎng)絡(luò);如果出了問(wèn)題還要請(qǐng)IDC人員幫你操作。這些設(shè)備的投入和運(yùn)維成本還是很高的。
云時(shí)代到來(lái)之后,由于虛擬化技術(shù)的運(yùn)用,我們用上了云主機(jī)。云主機(jī)是大家直接在云上做虛擬機(jī)購(gòu)買,開通就可以使用。這時(shí)候我們稱之為IaaS(基礎(chǔ)設(shè)施即服務(wù)),這種情況下就無(wú)需物理機(jī)運(yùn)營(yíng),直接放到云平臺(tái)來(lái)做。而之后隨著容器技術(shù)的發(fā)展,我們有了容器平臺(tái),或者叫PaaS(平臺(tái)即服務(wù))。在容器平臺(tái)到來(lái)之后實(shí)際上還存在一部分基礎(chǔ)設(shè)施運(yùn)維問(wèn)題,但是這時(shí)候基礎(chǔ)設(shè)施逐漸下沉到運(yùn)維人員進(jìn)行操作;而從應(yīng)用開發(fā)者角度來(lái)看,他們已經(jīng)不用再去關(guān)心虛擬機(jī),或者操作系統(tǒng)。在這種情況下,應(yīng)用開發(fā)人員更多的去關(guān)注應(yīng)用所需要的計(jì)算資源或者存儲(chǔ)資源的使用。繼續(xù)向前發(fā)展,我們到了FaaS(函數(shù)即服務(wù))。這時(shí)候運(yùn)維人員不需要關(guān)注底層的運(yùn)維,而是按需運(yùn)行的能力。業(yè)務(wù)開發(fā)人員能夠進(jìn)一步做與業(yè)務(wù)相關(guān)的事情。
接下來(lái)我們來(lái)看一下Serverless架構(gòu)是什么。Serverless從物理機(jī)或虛擬機(jī)的使用上進(jìn)行了分離,更關(guān)注上層業(yè)務(wù)的運(yùn)行情況。Serverless架構(gòu)包含兩塊:函數(shù)即服務(wù)和后端即服務(wù)。函數(shù)即服務(wù)提供的是計(jì)算能力。原有的計(jì)算能力,無(wú)論是容器也好,虛擬機(jī)也好都承載在一定的操作系統(tǒng)之上,函數(shù)即服務(wù)把計(jì)算能力進(jìn)行了進(jìn)一步抽象,我們?cè)诤笪脑倮^續(xù)進(jìn)行展開。另外,Serverless還有后端即服務(wù),比如對(duì)象存儲(chǔ),數(shù)據(jù)庫(kù)應(yīng)用,緩存服務(wù),我們也可以稱之為Serverless,因?yàn)檫@些服務(wù)也能夠在云上提供開通即服務(wù),開通即使用的能力。在使用這些產(chǎn)品時(shí)同樣不需要關(guān)注它的服務(wù)器是什么樣的,它的服務(wù)器部署在哪里,而是服務(wù)開通就可以使用了,后面的運(yùn)維工作都交給了云,所以不用感知它的最底層服務(wù)器,因此我們也可以把它稱之為Serverless。
這種服務(wù)就稱之為Serverless后端即服務(wù)。這兩個(gè)合起來(lái)可以稱為Serverless架構(gòu)。