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