談?wù)勀銓?duì)IaaS、PaaS、SaaS的理解
有位工作6年的小伙伴,去面試架構(gòu)師崗位,被問到這樣一道題,說談你對(duì)IaaS、PaaS、SaaS的理解。今天,我給大家分享一下我的理解。
1、云服務(wù)和XaaS
要理解這三者的關(guān)系,我們先了解云服務(wù)。所謂云服務(wù),是指利用互聯(lián)網(wǎng)提供動(dòng)態(tài)易擴(kuò)展的虛擬化資源整合服務(wù)。云服務(wù)的主體架構(gòu),主要有基礎(chǔ)設(shè)施服務(wù)、平臺(tái)服務(wù)、軟件服務(wù)。
通過抽象和分層,在云服務(wù)領(lǐng)域創(chuàng)造了一個(gè)詞,叫做“一切即服務(wù)”的概念,也就是X as a Service。
我們通常所說的:
IaaS全稱為Infrastructure as a Service,也就是基礎(chǔ)設(shè)施即服務(wù)的簡(jiǎn)稱;
PaaS的全稱為Platform as a Service,也就是平臺(tái)即服務(wù)的簡(jiǎn)稱;
SaaS的全稱為Software as a Service,也就是軟件即服務(wù)的簡(jiǎn)稱。
除了這些以外,還衍生出了很多類似的概念,比如 DaaS(數(shù)據(jù)即服務(wù))、OaaS(運(yùn)維即服務(wù))等等。在云服務(wù)架構(gòu)中,IaaS、PaaS 和 SaaS三種架構(gòu)是為最核心的架構(gòu)。
2、三者對(duì)比
首先是,IaaS基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service),它是面向企業(yè)或者開發(fā)者,提供基礎(chǔ)資源支持,包括:計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等等。
有了IaaS以后,企業(yè)在開發(fā)APP時(shí),只需在公有云平臺(tái)上注冊(cè)一個(gè)賬號(hào),花點(diǎn)錢,配置各種云服務(wù)器,各種大小的存儲(chǔ),各種帶寬的網(wǎng)絡(luò),都配齊,不用操心諸如機(jī)房選址、設(shè)備采購、實(shí)體服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò)等問題,只要一個(gè)賬號(hào),便解決了。
而作為程序員,只需在服務(wù)器上安裝各類程序,中間件,數(shù)據(jù)庫等等,包括前端與后臺(tái),測(cè)試,上線,迭代,更新的操作都要以IaaS為基礎(chǔ),否則,前期的工作就都需要自己來完成。
然后,就是PaaS平臺(tái)即服務(wù)(Platform as a Service)它面向開發(fā)者,提供軟件運(yùn)行的平臺(tái)環(huán)境。或者以API、SDK的形式開放給客戶調(diào)用,包括:數(shù)據(jù)分析、人工智能、Docker;推送、通信、語音識(shí)別、圖像識(shí)別、統(tǒng)計(jì)、廣告等等。
PaaS是在IaaS的基礎(chǔ)之上,解決了操作系統(tǒng)、數(shù)據(jù)庫、運(yùn)行時(shí)環(huán)境、中間件、各種框架的搭建操作問題,有了PaaS,程序員只需要專心的開發(fā)自己的APP就行了。
做PaaS需要的技術(shù)能力和資源比做SaaS要求更高,因?yàn)镾aaS服務(wù)商的強(qiáng)項(xiàng)在于業(yè)務(wù)和應(yīng)用,而不是平臺(tái)技術(shù)和服務(wù)能力。
最后,就是SaaS 軟件即服務(wù)(Software as a Service),是面向企業(yè)或個(gè)人終端用戶,通過網(wǎng)絡(luò)租用的形式提供軟件,包括:管理類應(yīng)用、業(yè)務(wù)類應(yīng)用、行業(yè)類應(yīng)用等等。SaaS可以調(diào)用PaaS層的能力,也可以使用IaaS層的資源獨(dú)立開發(fā)。
SaaS就相當(dāng)于是現(xiàn)成的了,根本用不著開發(fā),用戶只需要專注在自己的業(yè)務(wù)上就行,比如寫代碼、維護(hù)等各種定制化的工作,都交給SaaS廠商。用戶只需要一個(gè)續(xù)費(fèi)賬號(hào)就能解決所有問題。
不論是 IaaS、PaaS 和 SaaS 三者都有非常龐大的產(chǎn)品群體和用戶服務(wù)群體,三者之間的架構(gòu)關(guān)系,如圖所示。
從Iaas到SaaS的過程,企業(yè)需要付出的開發(fā)成本越來越小,云服務(wù)化的程度也越來越高,如圖所示:
好了,以上就是我對(duì)SaaS、PaaS、IaaS的理解。