一、什么是PAAS平臺
PaaS(Platform-as-a-Service:平臺即服務)全稱:(Platformasaservice)中文:平臺即服務所謂PaaS實際上是指將軟件研發的平臺(計世資訊定義為業務基礎平臺)作為一種服務,以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現可以加快SaaS的發展,尤其是加快SaaS應用的開發速度。在2007年國內外SaaS廠商先后推出自己的PAAS平臺。PAAS之所以能夠推進SaaS的發展,主要在于它能夠提供企業進行定制化研發的中間件平臺,同時涵蓋數據庫和應用服務器等。PAAS可以提高在Web平臺上利用的資源數量。例如,可通過遠程Web服務使用數據即服務(Data-as-a-Service:數據即服務),還可以使用可視化的API。用戶或者廠商基于PaaS平臺可以快速開發自己所需要的應用和產品。同時,PaaS平臺開發的應用能更好地搭建基于SOA架構的企業應用。
二、PAAS的特點
PaaS能將現有各種業務能力進行整合,具體可以歸類為應用服務器、業務能力接入、業務引擎、業務開放平臺,向下根據業務能力需要測算基礎服務能力,通過IaaS提供的API調用硬件資源,向上提供業務調度中心服務,實時監控平臺的各種資源,并將這些資源通過API開放給SaaS用戶。PaaS主要具備以下三個特點:
(1)平臺即服務:PaaS所提供的服務與其他的服務最根本的區別是PaaS提供的是一個基礎平臺,而不是某種應用。在傳統的觀念中,平臺是向外提供服務的基礎。一般來說,平臺作為應用系統部署的基礎,是由應用服務提供商搭建和維護的,而PaaS顛覆了這種概念,由專門的平臺服務提供商搭建和運營該基礎平臺,并將該平臺以服務的方式提供給應用系統運營商;
(2)平臺及服務:PaaS運營商所需提供的服務,不僅僅是單純的基礎平臺,而且包括針對該平臺的技術支持服務,甚至針對該平臺而進行的應用系統開發、優化等服務。PaaS的運營商最了解他們所運營的基礎平臺,所以由PaaS運營商所提出的對應用系統優化和改進的建議也非常重要。而在新應用系統的開發過程中,PaaS運營商的技術咨詢和支持團隊的介入,也是保證應用系統在以后的運營中得以長期、穩定運行的重要因素;
(3)平臺及服務:PaaS運營商對外提供的服務不同于其他的服務,這種服務的背后是強大而穩定的基礎運營平臺,以及專業的技術支持隊伍。這種“平臺級”服務能夠保證支撐SaaS或其他軟件服務提供商各種應用系統長時間、穩定的運行。PaaS的實質是將互聯網的資源服務化為可編程接口,為第三方開發者提供有商業價值的資源和服務平臺。有了PaaS平臺的支撐,云計算[1]的開發者就獲得了大量的可編程元素,這些可編程元素有具體的業務邏輯,這就為開發帶來了極大的方便,不但提高了開發效率,還節約了開發成本。有了PaaS平臺的支持,WEB應用的開發變得更加敏捷,能夠快速響應用戶需求的開發能力,也為最終用戶帶來了實實在在的利益。
三、PAAS平臺發展前景
云計算相對來說仍然還不成熟,新服務和功能會一直出現。云開發平臺和PaaS也會在新的功能登場時不斷演變。然而,由于用戶社區對開源軟件的影響很深,因此無法保證新功能會以足夠快的速度出現以滿足你的開發需求。
雖然每個PaaS產品都有著類似的功能,但具備這些功能的速度卻有所不同。例如,Pivotal的開源PaaS產品CloudFoundry以其對語言的支持,服務整合,以及與其它如Chef,Puppet,Jenkins和NoSQL這樣的開源工具的集成著稱。然而,CloudFoundry上只提供初步的容器支持,用戶界面主要靠命令行,支持數量有限的軟件部署商業模式以及在應用的性能指標衡量上偏弱。
監控一個平臺的發展路線圖然后再作出決定。那些發展緩慢或者正在經歷某種艱難的發展模式的平臺可能會為你的應用開發團隊和你的業務帶來問題。
四、paas邏輯架構圖
paas邏輯架構圖:
用友PaaS體系包括開發部署平臺、運營平臺、運行平臺三大平臺,輔以各種應用支撐和公共服務,全面高效地實現了企業應用所需的云平臺環境。
PaaS架構比較
大致來看,PaaS的實現分為兩種:以虛擬機為基礎或是以容器為基礎。前者的代表是AWS,后者的代表則是GAE, CloudFoundry和Heroku。前文已經提到,AWS是基于虛擬機技術來打造自己的PaaS平臺,其架構模式大致如下圖所示:
具體而言,AWS基于如下構件打造了Beanstalk:首先是負載均衡層(ELB),該層需要將用戶的請求投射到對應的服務器實例,同時,負載均衡層還需要。當應用實例出現擴容時,需要動態將調整的服務器實例注冊到對應的域名上,以完成分流;中間是Web服務器層,目前ElasticBean支持Java、Python和PHP等多種編程語言,盡量為編程人員提供多樣性的選擇,開放性基本是所有PaaS平臺的標配。在服務后端,Beanstalk基本依托于AWS本身的服務生態系統為應用提供服務,比如RDS、S3、DynamoDB等。
CloudFoundry等平臺則是基于容器技術打造。相比于虛擬機,容器帶來的系統開銷非常低,如果一臺虛擬機的操作系統需要占用2G的內存,則7個虛擬機所組成的集群只是操作系統就需要14G的內存占用。基于容器的技術如果一臺16G的裸機除去2G的操作系統開銷,還能夠部署7個容器進程。所以,從經濟性來說,容器的技術遠遠好于虛擬機。另外一個比較的標準是性能,容器的性能相對而言更好一些,具體的比較參數可以參見IBM研究院剛剛出的報告。但是,從安全性和隔離型來說,虛擬機是遠遠好于容器的。
CloudFoundry的架構設計如下圖所示。首先,CF也提供了一個路由模塊(Router),該模塊基本是基于ngnix打造,只是在ngnix技術上提供了動態注冊的功能。在部署時,由于CF會同時部署非常多的應用實例,所以需要一個router集群來滿足應用的需要;其次,CF的應用容器基于自己開發的warden技術,warden也是基于LXC技術,但是使用c和ruby作了一層簡單的封裝。Docker的大熱讓CloudFoundry很糾結;第三,CF使用service broker來集成各種資源服務,如mongo、mysql、rabbitmq和redis等。最后,CF使用消息總線NATS/GNATS來完成應用之間的通訊。
其他基于容器的PaaS平臺(如Heroku、OpenShift、DotCloud)的平臺架構和上面所描述的模式基本一致,我在附件中提供了若干鏈接,大家如果有興趣可以仔細研究。
PaaS的參考架構模式
根據上面討論的兩種架構模式,我們可以看到PaaS平臺的實現基本需要如下的構件:
1.路由模塊:該模塊的基本功能是將終端用戶請求路由到對應的服務器實例,并提供應用動態注冊等功能。目前絕大多數的實現是基于ngnix,同時也需要使用簡單的lua腳本完成應用注冊和路由查詢等基本功能;
2.服務管理模塊:該模塊會為開發人員和運維人員提供管理接口,其基本功能包括創建應用實例、配置應用運行參數、啟停應用、發布應用程序、擴容或縮容等。服務管理模塊也需要提供相應的客戶端被用戶使用,如命令行或是用戶界面等;
3.應用容器模塊:應用容器是PaaS平臺的核心,其主要功能是管理應用實例的生命周期,匯報應用的運行狀態等。目前來看,應用容器可以基于虛擬機來實現(如AWS),也可以使用Linux容器技術來實現,最早使用的是LXC,CloudFoundry使用的是自己的warden,同樣也是基于cgroup,現在最新的是docker;
4.應用部署模塊:應用部署模塊需要將應用程序打包成為可直接部署的發布包。該模塊是實現PaaS平臺開發性的關鍵。由于現有通用的PaaS平臺需要支持多種編程語言和框架,如Java, Python, Ruby和PHP等,當應用發布時,PaaS平臺需要根據不同的編程語言將應用打包成為通用的發布包,然后傳遞給容器模塊部署。應用部署模塊是實現這一過程的關鍵,目前來看起源于Heroku的buildpack已經被大家廣發接受;
5.塊存儲模塊:該模塊主要用于存儲應用的發布包,需要保證程序包的長久存儲和。目前AWS的Beanstalk直接使用S3,CF可以使用網絡文件系統NFS或是其他任何分布式文件存儲系統(如HBase);
6.數據存儲模塊:該模塊需要保存應用和服務的基本信息,可以基于任何現有的數據庫技術實現,如MYSQL或是MONGODB等;
7.監控模塊:該模塊的作用是持續監控應用的運行狀態,比如健康狀態(是否存活)、資源使用率(CPU、內存、硬盤、網絡等)和可用性等。這些指標會成為整個PaaS平臺運維的關鍵,也為自動彈性伸縮奠定基礎;
8.用戶認證模塊:該模塊需要保證應用程序的安全性和隔離性,通常而言,公有云的提供商會使用OAuth等技術集成現有的用戶認證服務;
9.消息總線模塊:該模塊也是最重要的模塊,由于PaaS平臺所搭建的是一個大規模分布式環境,通常而言,規模在數百臺到上千臺的機器數量,所有模塊之間的通訊會變成一個核心的問題。所以消息總線會變成系統之間通訊的基礎,通常需要支持pub/sub模式。
-
paas平臺
+關注
關注
0文章
3瀏覽量
2113
發布評論請先 登錄
相關推薦
評論