由來
業界最早的PaaS服務是由Salesforce於2007年推出的Force.corn,它為用戶提供了關係型資料庫、用戶界面選項、企業邏輯及一個專用的集成開發環境,應用程式開發者可以在該平台提供的運行環境中對他們開發出來的套用軟體進行部署測試,然後將套用提交給Salesforce供用戶使用。作為SaaS服務提供商,Salesforce推出PaaS的目的是使商業SaaS套用的開發更加便捷,進而使SaaS服務用戶能夠有更多的軟體套用可以選擇。
還有當代計算的先驅Google,使用便宜的計算機和強有力的中間件,以及自己的技術裝備出了世界上功能最強大的數據中心,以及超高性能的並行計算群。2008年4月發表的PaaS服務GAE,為用戶提供了更多的服務,方便了用戶的使用,去掉了煩瑣的作業。
微軟在2008年冬推出Windows Azure平台,並在其上陸續發布了用於提供資料庫服務、匯流排服務、身份認證服務等相關組件,構建完整的微軟PaaS服務。
PaaS服務更多地從用戶角度出發,將更多的套用移植到PaaS平台上進行開發管理,充分體現了網際網路低成本、高效率、規模化的套用特性,PaaS對於SaaS的運營商來說,可以幫助他們進行產品多元化和產品定製化。
關鍵技術
PaaS層的技術比較多樣,下面是常見的5種。
(1) REST。通過REST(Representational State Transfer,表述性狀態轉移)技術,能夠非常方便和優雅地將中間件層所支撐的部分服務提供給調用者。
(2) 多租戶。它能讓一個單獨的套用實例為多個組織服務,而且能保持良好的隔離性和安全性。通過這種技術,能有效地降低套用的購置和維護成本。
(3) 並行處理。為了處理海量數據,需要利用龐大的x86集群進行規模巨大的並行處理,Google的MapReduce是這方面的代表之作。
(4) 套用伺服器。在原有套用伺服器的基礎上為雲計算做了一定程度的最佳化,比如用於Google App Engine的Jetty套用伺服器。
(5) 分散式快取。通過這種技術,不僅能有效降低對後台伺服器的壓力,而且還能加快相應的反應速度。最著名的分散式快取的例子莫過於Memcached。
對於很多PaaS平台,比如用於部署Ruby套用的Heroku雲平台,套用伺服器和分散式快取都是必備的,REST技術常用於對外的接口,多租戶技術則主要用於SaaS套用的後台(比如用於支撐Salesforce的CRM等套用的Force.com多租戶核心),而並行處理技術常被用作單獨的服務推出(比如Amazon的Elastic MapReduce)。
實現模式
PaaS在laaS的基礎上封裝虛擬作業系統、中間件、資料庫、開發環境等軟體棧後,將分散式軟體開發、測試、部署環境提供給開發者.對PaaS而言,主要的技術問題是採用合適的分散式技術解決分散式存儲和分散式計算問題,並禁止底層複雜的分散式處理操作,把簡單易用的編程接口和編程模型提供給用戶,PaaS同樣需要構建PaaS運營管理系統解決用戶管理、資源管理等問題
根據業務領域和技術類型的不同,PaaS提供套用開發層面的服務目前有兩種主流的實現模式:一種主要是面向廣大網際網路套用開發者.把端到端的分散式軟體開發、測試、部署、運行環境以及複雜的應用程式託管當作服務,通過網際網路提供給用戶,其核心技術是分散式並行計算;另一種是面向電信增值套用開發者,把基於電信開放能力的增值套用開發、測試、部署以及套用發布和銷售渠道作為服務,通過運營商的電信能力開放平台提供給用戶。
特徵
PaaS具有以下幾個重要的特徵:
(1)是在一個集成開發環境中為開發人員提供的一種開發、測試、運維和部署的服務。這些服務必須滿足一定的開發程式流程需求。
(2)開發環境可以是基於Web的富客戶端形式,也可以是能與PaaS直接相連的桌面端開發環境,後者在編寫完代碼後能將代碼即時上傳到PaaS伺服器上執行。
(3)PaaS平台一般都有開發語言的限制。
(4)多租戶架構能夠讓許多開發人員同時進行協同工作,因此PaaS上還包含了項目管理和互動工具。
(5)PaaS提供的套用開發環境能夠與Web服務和資料庫直接相連。