徹底理解IaaS、PaaS、SaaS

NO IMAGE

寫在前面

總能聽到雲計算服務的 3 種模型:

  • IaaS:Infrastructure-as-a-Service

  • PaaS:Platform-as-a-Service

  • SaaS:Software-as-a-Service

還能看到各種類比:吃披薩、吃漢堡、吃燒烤、涮火鍋、蓋房子、裝修、寫文檔、養豬、發電、開車、生孩子??、泡妞???……眾說紛紜,那麼有沒有辦法能去偽存真,徹底搞明白這些術語呢?

有,溯源

一.雲計算

美國國家標準與技術研究院(NIST)在 2011 年給出了雲計算的定義

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

也就是說,雲計算是一種模型。讓可配置的計算資源(如網絡、服務器、存儲、應用程序和服務)能夠通過網絡隨取隨用,只需要很少的管理工作或者與服務供應商簡單交互就能快速控制這些資源的供應和釋放

這種雲模型由 5 個基本特徵、3 個服務模型和 4 個部署模型組成:

This cloud model is composed of five essential characteristics, three service models, and four deployment models.

其中,三個服務模型就是所謂的*aaS

二.5 個基本特徵

  • 按需自助服務(On-demand self-service):使用者可以根據需要單方面地自動預配計算能力,比如服務器時間和網絡存儲,而不用與每個服務提供商進行人工交互

  • 廣泛的網絡訪問(Broad network access):功能通過網絡提供,並通過標準機制來訪問,這些機制能夠促進各種客戶端平臺(比如移動電話、平板電腦、筆記本電腦和工作站)的使用

  • 資源集中(Resource pooling):供應商的計算資源通過多租戶模型集中用於為多個使用者提供服務,不同的物理和虛擬資源會根據使用者需求動態調配。有種位置獨立的感覺,因為客戶通常無法控制或不知道所提供資源的確切位置,但能在更高的抽象級別(如國家/地區、州或數據中心)指定位置。資源包括存儲、處理、內存和網絡帶寬

  • 快速彈性(Rapid elasticity):在某些情況下,可以自動彈性地配置和釋放功能,以便根據需求迅速向外和向內擴展。對於使用者來說,可用於預配的功能通常看起來是無限的,並且可以隨時以任何數量進行配置

  • 可計量服務(Measured service):雲系統通過在適合服務類型的某層抽象(例如存儲、處理、帶寬和活動用戶帳戶)上利用計量能力來自動控制和優化資源使用。可以監視、控制和報告資源使用情況,從而為所使用的服務的提供者和消費者提供透明性

三.3 個服務模型

  • 基礎設施即服務(Infrastructure as a Service (IaaS)):提供給使用者的功能是預配處理、存儲、網絡和其它基礎計算資源,使用者能夠在上面部署和運行任意軟件,包括操作系統和應用程序。使用者不管理或控制底層雲基礎設施,但可以控制操作系統、存儲和已部署的應用程序,並且還能受限地控制所選的網絡組件(例如主機防火牆)

  • 平臺即服務(Platform as a Service (PaaS)):提供給使用者的功能是將使用者通過供應商支持的編程語言、類庫、服務和工具來實現,或創建的應用程序部署到雲基礎設施上。使用者不管理或控制底層包括網絡、服務器、操作系統或存儲在內的雲基礎設施,但可以控制已部署的應用程序和配置應用程序託管環境的設置選項

  • 軟件即服務(Software as a Service (SaaS)):提供給使用者的功能是用於在雲基礎設施上運行的供應商應用程序,應用程序可通過瘦客戶端界面(如 Web 瀏覽器(例如基於 Web 的電子郵件)或程序接口從各種客戶端設備訪問。使用者不管理或控制底層包括網絡、服務器、操作系統、存儲、甚至單個應用程序功能在內的雲基礎設施,但一些用戶特定應用程序配置可能要額外設置

差異主要體現在使用者對資源的控制程度上:

控制程度IaaSPaaSSaaS
控制
(需要維護的)
操作系統
應用程序
處理
存儲
網絡
其它基礎計算資源
已部署的應用程序
應用程序託管環境的設置選項
一些用戶特定應用程序配置
託管
(無需關心的)
網絡組件網絡
服務器
操作系統
存儲
一些應用程序功能
網絡
服務器
操作系統
存儲

從基礎設施到平臺到軟件,資源供應形式的抽象程度越來越高,使用者需要關注的底層設施越來越少,如下圖:

徹底理解IaaS、PaaS、SaaS

四.4 個部署模型

  • 私有云(Private cloud):雲基礎設施由多個使用者(例如,業務部門)組成的單個組織專用。它可能由組織、第三方或它們的某種組合所擁有、管理和運營,並且可能在內部部署(on-premises)也可能在外部(off-premises)

  • 社區雲(Community cloud):雲基礎設施由具有相同關注點(例如任務、安全性要求、策略和合規性考慮因素)的組織的特定消費者社區專用。它可以由社區中的一個或多個組織、第三方或它們的某些組合所擁有、管理和運營,並且可能在內部部署(on-premises)也可能在外部(off-premises)

  • 公共雲(Public cloud):雲基礎設施供公眾開放使用,它可以由商業、學術、政府組織或它們的某些組合所擁有、管理和運營,由雲供應商內部部署(on-premises)

  • 混合雲(Hybrid cloud):雲基礎設施由兩個或多個不同的雲基礎設施(私有、社區或公共)組成,這些基礎設施仍然是獨特的實體,但通過標準化或專有技術綁定在一起,從而實現數據和應用程序的可移植性(例如雲爆發,用來實現雲負載均衡)

P.S.雲爆發(cloud bursting)是一種建立在私有云和公共雲之間的配置,用來應對 IT 需求高峰。如果使用私有云的組織達到其資源容量的 100%,溢出的流量會定向到公共雲,而不會中斷服務

參考資料

有所得、有所惑,真好

關注「前端向後」微信公眾號,你將收穫一系列「用原創」的高質量技術文章,主題包括但不限於前端、Node.js以及服務端技術

本文首發於 ayqy.net ,原文鏈接 www.ayqy.net/blog/iaas-p…

相關文章

SpringBoot消息推送之WebSocket和SseEmitter

Matrix之FrameTracer源碼分析

🔥萬字精美圖文帶你掌握JVM垃圾回收

ObjectiveC基礎之五(Runtime之Class結構解析)