談談你對IaaS、PaaS、SaaS的理解

語言: CN / TW / HK

有位工作6年的小夥伴,去面試架構師崗位,被問到這樣一道題,說談你對IaaS、PaaS、SaaS的理解。今天,我給大家分享一下我的理解。

1、雲服務和XaaS

要理解這三者的關係,我們先了解雲服務。所謂雲服務,是指利用網際網路提供動態易擴充套件的虛擬化資源整合服務。雲服務的主體架構,主要有基礎設施服務、平臺服務、軟體服務。

通過抽象和分層,在雲服務領域創造了一個詞,叫做“一切即服務”的概念,也就是X as a Service。

我們通常所說的:

IaaS全稱為Infrastructure as a Service,也就是基礎設施即服務的簡稱;

PaaS的全稱為Platform as a Service,也就是平臺即服務的簡稱;

SaaS的全稱為Software as a Service,也就是軟體即服務的簡稱。

除了這些以外,還衍生出了很多類似的概念,比如 DaaS(資料即服務)、OaaS(運維即服務)等等。在雲服務架構中,IaaS、PaaS 和 SaaS三種架構是為最核心的架構。

2、三者對比

首先是,IaaS基礎設施即服務(Infrastructure as a Service),它是面向企業或者開發者,提供基礎資源支援,包括:計算、儲存、網路等等。

有了IaaS以後,企業在開發APP時,只需在公有云平臺上註冊一個賬號,花點錢,配置各種雲伺服器,各種大小的儲存,各種頻寬的網路,都配齊,不用操心諸如機房選址、裝置採購、實體伺服器、儲存、網路等問題,只要一個賬號,便解決了。

而作為程式設計師,只需在伺服器上安裝各類程式,中介軟體,資料庫等等,包括前端與後臺,測試,上線,迭代,更新的操作都要以IaaS為基礎,否則,前期的工作就都需要自己來完成。

然後,就是PaaS平臺即服務(Platform as a Service)它面向開發者,提供軟體執行的平臺環境。或者以API、SDK的形式開放給客戶呼叫,包括:資料分析、人工智慧、Docker;推送、通訊、語音識別、影象識別、統計、廣告等等。

PaaS是在IaaS的基礎之上,解決了作業系統、資料庫、執行時環境、中介軟體、各種框架的搭建操作問題,有了PaaS,程式設計師只需要專心的開發自己的APP就行了。

做PaaS需要的技術能力和資源比做SaaS要求更高,因為SaaS服務商的強項在於業務和應用,而不是平臺技術和服務能力。

最後,就是SaaS 軟體即服務(Software as a Service),是面向企業或個人終端使用者,通過網路租用的形式提供軟體,包括:管理類應用、業務類應用、行業類應用等等。SaaS可以呼叫PaaS層的能力,也可以使用IaaS層的資源獨立開發。

SaaS就相當於是現成的了,根本用不著開發,使用者只需要專注在自己的業務上就行,比如寫程式碼、維護等各種定製化的工作,都交給SaaS廠商。使用者只需要一個續費賬號就能解決所有問題。

不論是 IaaS、PaaS 和 SaaS 三者都有非常龐大的產品群體和使用者服務群體,三者之間的架構關係,如圖所示。

從Iaas到SaaS的過程,企業需要付出的開發成本越來越小,雲服務化的程度也越來越高,如圖所示:

好了,以上就是我對SaaS、PaaS、IaaS的理解。