PaaS平臺現狀
按照NIST的定義,PaaS是一個建立在雲基礎設施上的應用部署系統,這個系統為使用者提供API,工具和服務來部署和管理應用和服務。 目前廣泛理解的PaaS大致經歷了兩個發展階段。 PaaS經歷了一個摸索期後,第一代雲應用平臺技術的代表者包括 Google App Engine 、Force.com、早期Heroku、SAE和早期的BAE等,通過為開發者提供DevOps 等工具,來加速應用交付。 這些PaaS具有以下某些特徵:
主要提供應用的部署和託管
針對應用開發者
在支援特定的IaaS基礎技術
支援單種開發語言和框架
支援特定的服務,比如自訂的資料存儲APIs
這些PaaS加速應用的交付。 首先,它們讓包括開發者在內的使用者不需要擔心硬體和虛擬機器器,作業系統,應用伺服器,以及對服務管理,使得他們更加快捷和容易地進行應用部署和反覆運算,以及應用的橫向擴展。 但其明顯的短塊是使用者很容易被綁定。 他們需要使用特定的程式設計語言來開發應用程式,需要針對特定的服務外掛程式和APIs來程式設計,或者需要部署應用在特定的IaaS上。 這些特點限制了使用者對於應用程式開發,部署和運維的自由度和敏捷性,以及應用程式的可攜性。
正因為如此,第二代雲應用平臺技術則實現全方位的應用生命週期管理,關注開放性和雲間相互通性,其代表者包括Cloud Foundry、OpenShift, 新的 Heroku,MoPaaS和新版的BAE等PaaS技術或服務, 除了在第一代PaaS技術對使用者在實現應用交付的加速所提供的功能外,具備以下大多數特徵:
多語言和框架:支援多語言和框架以及其擴展機制
多服務:開放的核心服務以及服務的擴展機制
多雲和多IaaS技術:支援多種IaaS技術和多雲的部署,包括公有雲和私有雲
多方位的開放將計算資源的抽象提高到應用服務層面,同時將應用的運維交由平臺來自動管理,也使得PaaS有效地提供應用程式的可攜性。 同時,通過提供方便的工具和不斷擴展的服務讓開發者對於開發語音、框架、服務和基礎設施有了更多的選擇自由度。 通過計算資源的安全隔離,使得計算資源得以有效的安全的交付和管理。 當然,從像Cloud Foundry這樣PaaS技術到真正實現PaaS雲應用平臺服務還需要很多工作。 圖1是一個基於Cloud Foundry的典型PaaS架構。
基於 Cloud Foundry 的 PaaS架構
雲應用平臺的市場需求
事實上,市場對雲應用平臺服務的剛性需求不斷的增長,但傳統的IaaS和PaaS定義過於狹隘,提供的服務不能單獨滿足市場的需求。 下面兩個場景則反映了這樣的需求:
一個企業應用軟體專案週期一般需要經歷多個階段,包括開發、集成、測試和生產。 專案團隊需要建立不同的軟硬平臺支援相應的專案階段,並且需要不同的訓練有素的IT人員來對它們進行管理。 另外,從一個到下一個階段過渡一般需要數月,這也對於連續不斷的反覆開發、測試、集成和部署的需求難度增加。 而像PaaS的雲計算平臺服務的支援可以整合這些不同的平臺,同時也顯著地節省開支和時間,為不斷的反覆開發、測試、集成和部署提供方便。 據估計,由於缺乏合適的雲應用平臺的支援,美國近幾年年企業每年的IT支出浪費超過300億美元 。
以移動和社交應用為代表的互聯網經濟目前在經歷爆炸式增長。 這種新的經濟具有短平快的特點,要求應用從創新想法到投入市場的週期比以往任何時候都要大大地縮短。 大量新的開發者因而也源源不斷地進入應用程式開發行業,而這些開發者中的很多不具備相應IT專業知識和經驗。 如果沒有合適的雲應用平臺支援,應用部署仍然緩慢和痛苦,應用的擴展非常困難,各種服務的管理需要佔用很多時間,由此維持應用可靠地運行所需要的工作費時費錢,而且大都是與特定應用無關的重複性IT事物,如應用程式的開發管理,編譯, 集成,部署,運維,縮放和監控。 開發者希望更多地專注于應用的創新和開發,而不被繁瑣的IT事物束縛住,實現應用創新的自由和民主。
企業IT的需求和新經濟的發展需要應用生命週期管理變得更快捷和容易。 雲平臺給人們帶來的希望包括解決上面這些問題,提供高效的應用開發部署,監控管理,將抽象層面從虛擬機器和作業系統提升到應用和服務,以及平臺本身的高可用,高容錯,可監控,擴充性,容易部署和更新, 從而實現簡單和敏捷的應用生命週期管理。
特別是企業雲應用平臺市場正處於一個快速成長階段。 企業目前正積極的尋求合適的雲戰略,問題已從"為何「變為了「怎樣」。 90%的企業和機構考慮採用雲計算技術,近80%的企業希望採用多雲的應用部署。 IaaS首先在企業生產獲得牽引力, 通過提供虛擬計算、存儲、資料庫和其他基礎設施硬體服務為企業提供IT資源的整合和管理。 但人們發現,IaaS 遠遠不能滿足企業IT的需求,特別在IaaS上進行應用的開發、集成、部署和運維還是相當的費時費錢。 由於PaaS通過像Google App Engine 和 Heroku等服務已被充分驗證,作為「最後一英里」的雲技術,是企業雲計算戰略的一個關鍵組成部分。 但是不論是IaaS還是PaaS單獨都不可能完全滿足市場的需求,目前使用者以開始考慮和實施IaaS和PaaS的相互滲透和融合。 實際上,他們並不關心這些服務是姓「I"(基礎設施)還是」P"(平臺),他們希望應用保持持久運行,讓新的應用和服務的開發和部署變動非常迅捷,特別是通過雲計算平臺來整合企業的各種需求。
InPaaS:新一代雲應用平臺
雲計算市場希望新一代的雲平臺能呈現這些景願,將複雜的雲基礎設施和各種應用資源變成可配置可管理的實體;提供靈活多樣的不同抽象程度的計算資源實體以滿足不同業務的需求;讓創新更容易和更快捷的同時, 還能夠能提供企業所需要的對平臺本身的控制和能見度。 這個新一代的雲應用平臺應該整合目前包括 PaaS和IaaS 在內的多種技術,同時支援雲服務的不同部署方式,包括公有雲,私有雲,社區雲,和混合雲,我們暫且稱為 InPaaS (Infrastructure-and-Platform as a Service)。 具體來說,InPaaS雲平臺技術具有高可用、高安全、易交互、易組合、易監管、易審計和易維護等特點,特別包括以下的一些功能:
計算單元管理:根據使用者和角色使用平臺的不同需求滿足其對平臺資源需求的不同抽象,提供包括虛擬機器、虛擬機器+OS、容器+應用伺服器和容器+應用伺服器+框架+應用代碼包等計算資源組合單元。 對計算單元進行統一交付和管理。
資源組合和調配:計算單元、服務元件和資料等資源是可配置,可組合,易變更和自我調整的;根據不同應用的需求,應用可以通過不同的計算資源和服務元件來實現動態整合並安全交付。
資料服務:通過資料生命週期管理,包括資料資源的生成和獲取,分析和存儲,以及處理和檢索等。 提供平臺本身和應用監控,審計,安全和管理的資料服務需求,也作為資料服務元件交付給使用者應用使用。
安全和隔離:平臺和計算資源的多維度的安全防護;將安全服務化。 對計算資源單元,存儲和網路進行有效的隔離和防護,防止非授權的訪問和平臺內外攻擊。 即時防火牆,即時的訪問策略生成和控制。 身份管理和訪問授權。 持久的審計日誌記錄和分析。
安全可信的混合架構:安全可信統一平臺支援多雲基礎架構平臺技術;支援公有雲,私有雲,混合雲等部署方式。 安全通信機制實現各計算資源單元和元件間的安全通信和協調。 支援應用遷移和異地災備。 支援有保證的高SLAs。
實現InPaaS雲平臺不是簡單地將PaaS和IaaS進行集成,因為目前各種IaaS和PaaS的多種功能重疊、使得疊加後系統性能降低,使用者使用複雜度增加。 需要更深層瞭解市場需求,找到適合市場的解決方案。 另外,人們不斷地從不同角度來開發一系列新的雲計算技術以解決不同的市場需求,而這些也可以作為InPaaS所需要的一些技術元素。 比如,Docker等新一代羽量級容器將有可能成為 InPaaS所需要的羽量級容器技術的候選,以實現所需要的計算資源抽象,交付和管理。 此外,SDN等技術也可能是一個實現InPaaS各個節點間和跨雲的安全有效的通訊機制。
就整體解決方案來說,Cloud Foundry 之父Derek Collison和他的初創公司Apcera在雲平臺技術上走在了前面,他們通過全新的技術架構設計開發出一種策略驅動(policy-driven)的新一代企業雲平臺 Continuum來整合目前的 IaaS、PaaS和SaaS(下圖)。 其核心是通過透明地導入策略來提供企業IT所需要的控制和能見度。 此外,微軟前高管和華納兄弟的技術總監Jonathan Murray提出了相近的可組合的企業(composable enterprise)的概念來定義新的雲平臺服務,通過它企業可以建立應用創建,託管, 監控一條龍的快速服務來滿足業務成長的需求。 使用者可以通過其來加速生產,應用開發變得越來越標準化。 應用會變得比任何時候都更加容易創建,越來越多的服務將不同的元件組合在一起。
Apcera 的 Continuum 架構