大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?

在之前的文章《如何給女朋友解釋什麼是雲計算?》中,我們介紹了雲計算,在文章中我們提到雖然都是使用雲計算服務,但是不同的用戶需要的服務是不一樣的,有些公司可能只需要租借服務器、有些公司可能需要整套服務,而有些個人客戶可能希望直接可以通過付費得到一個網站等。

所以,根據服務類型的不同,雲計算可以分為三類,即基礎設施即服務(IaaS)、平臺即服務(PaaS)和軟件即服務(SaaS)。這3種雲計算服務有時稱為雲計算堆棧,因為它們構建堆棧,它們位於彼此之上。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


本文,就來分別介紹下到底什麼是IaaS、PaaS和SaaS。

IaaS

IaaS(Infrastructure as a Service),即基礎設施即服務。指把IT基礎設施作為一種服務通過網絡對外提供,並根據用戶對資源的實際使用量或佔用量進行計費的一種服務模式。

做一個簡單的比喻,IaaS服務優點類似於共享廚房服務。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


商家為用戶提供了廚房、鍋具、煤氣灶、烤箱、電飯煲等等一系列廚房用品。用戶需要自己購買米、面、蔬菜、調味品等,並進行加工製作。

有了IaaS服務,用戶可以在雲服務提供商提供的基礎設施上部署和運行任何軟件,包括操作系統和應用軟件。

用戶沒有權限管理和訪問底層的基礎設施,如服務器、交換機、硬盤等,但是有權管理操作系統、存儲內容,可以安裝管理應用程序,甚至是有權管理網絡組件。

簡單的說用戶使用IaaS,有權管理操作系統之上的一切功能。我們常見的IaaS服務有虛擬機、虛擬網絡、以及存儲。

PaaS

PaaS(Platform as a Service),是指平臺即服務。是一種雲計算服務,提供運算平臺與解決方案服務。

還是使用共享廚房的例子來比喻。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


餐廳除了提供廚房、廚具等,還提供了清洗乾淨切好的蔬菜、調好味道的肉、餃子皮和餃子餡等。用戶要享受美食,首先需要炒菜、加熱或者煮熟,但卻不用做太多的前期多種複雜準備。

PaaS給用戶提供的能力是使用由雲服務提供商支持的編程語言、庫、服務以及開發工具來創建、開發應用程序並部署在相關的基礎設施上。

用戶無需管理底層的基礎設施,包括網絡、服務器,操作系統或者存儲。他們只能控制部署在基礎設施中操作系統上的應用程序,配置應用程序所託管的環境的可配置參數。

SaaS

SaaS(Software-as-a-Service),意思為軟件即服務,即通過網絡提供軟件服務。

SaaS平臺供應商將應用軟件統一部署在自己的服務器上,客戶可以根據工作實際需求,通過互聯網向廠商定購所需的應用軟件服務,按定購的服務多少和時間長短向廠商支付費用,並通過互聯網獲得Saas平臺供應商提供的服務。

和IaaS以及PaaS的共享廚房相比,SaaS更像外賣平臺。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


SaaS相當於餐廳直接為大家提供做好的菜餚,還提供外賣服務。用戶只需要付費,就可以享受各種不同類型的美味佳餚,還可以在有外賣網點的地方直接點餐。

SaaS給用戶提供的能力是使用在雲基礎架構上運行的雲服務提供商的應用程序。可以通過輕量的客戶端接口(諸如web瀏覽器(例如,基於web的電子郵件))或程序接口從各種客戶端設備訪問應用程序。

用戶無需管理或控制底層雲基礎架構,包括網絡,服務器,操作系統,存儲甚至單獨的應用程序功能,可能的例外是有限的用戶特定應用程序配置設置。

根據SaaS應用是否具有可配置性,高性能,可伸縮性的特性,SaaS成熟度模型被分成四級。每一級都比前一級增加三種特性中的一種:

  • 多次開發

這種模型下,軟件服務提供商為每個客戶定製一套軟件,併為其部署。每個客戶使用一個獨立的數據庫實例和應用服務器實例。數據庫中的數據結構和應用的代碼可能都根據客戶需求做過定製化修改。

  • 一次開發多次部署

通過不同的配置滿足不同客戶的需求,而不需要為每個客戶進行特定定製,以降低定製開發的成本。

但是,軟件的部署架構沒有太大的變化,依然為每個客戶獨立部署一個運行實例。只是每個運行實例運行的是同一份代碼,通過配置的不同來滿足不同客戶的個性化需求。

可配置性的比較通用的實現方式,就是通過MetaData(元數據)來實現。

  • 一次開發一次部署

多租戶單實例(Multi-Tenant)的應用架構才是通常真正意義上的SaaS應用架構,它可以有效降低SaaS應用的硬件及運行維護成本,最大化地發揮SaaS應用的規模效應。

  • 無需開發

將第三級的Multi-Tenant SingleInstance系統擴展為Multi-Tenant MultiInstance。最終用戶首先通過接入Tenant Load Balance層,再被分配到不同的Instance上。通過多個Instance來分擔大量用戶的訪問,我們可以讓應用實現近似無限的水平擴展。

總結

本文通過廚房最菜的例子介紹了雲計算中的三種形式:IaaS、PaaS以及SaaS。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


從IaaS到PaaS再到SaaS,服務商提供的服務及產品越來越多,而普通用戶承擔的工作量便越來越少。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


從左到右,使用了對應的雲服務後,用戶承擔的工作量(上圖綠色部分)會越來越少,IaaS > PaaS > SaaS。

大廠總體SaaS化部署,IaaS、PaaS和SaaS是什麼?


IaaS 是雲服務的最底層,主要提供一些基礎資源。常見的產品有Amazong EC2、阿里雲等。

PaaS 提供軟件部署平臺,抽象掉了硬件和操作系統細節,可以無縫地擴展。開發者只需要關注自己的業務邏輯,不需要關注底層。常見的產品有Heroku等。

SaaS 是軟件的開發、管理、部署都交給第三方,不需要關心技術問題,可以拿來即用。常見的產品有Gmail、PayPal等。


分享到:


相關文章: