一、什么是PAAS平臺
PaaS(Platform-as-a-Service:平臺即服務)全稱:(Platformasaservice)中文:平臺即服務所謂PaaS實際上是指將軟件研發(fā)的平臺(計世資訊定義為業(yè)務基礎平臺)作為一種服務,以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現(xiàn)可以加快SaaS的發(fā)展,尤其是加快SaaS應用的開發(fā)速度。在2007年國內(nèi)外SaaS廠商先后推出自己的PAAS平臺。PAAS之所以能夠推進SaaS的發(fā)展,主要在于它能夠提供企業(yè)進行定制化研發(fā)的中間件平臺,同時涵蓋數(shù)據(jù)庫和應用服務器等。PAAS可以提高在Web平臺上利用的資源數(shù)量。例如,可通過遠程Web服務使用數(shù)據(jù)即服務(Data-as-a-Service:數(shù)據(jù)即服務),還可以使用可視化的API。用戶或者廠商基于PaaS平臺可以快速開發(fā)自己所需要的應用和產(chǎn)品。同時,PaaS平臺開發(fā)的應用能更好地搭建基于SOA架構的企業(yè)應用。
二、PAAS的特點
PaaS能將現(xiàn)有各種業(yè)務能力進行整合,具體可以歸類為應用服務器、業(yè)務能力接入、業(yè)務引擎、業(yè)務開放平臺,向下根據(jù)業(yè)務能力需要測算基礎服務能力,通過IaaS提供的API調(diào)用硬件資源,向上提供業(yè)務調(diào)度中心服務,實時監(jiān)控平臺的各種資源,并將這些資源通過API開放給SaaS用戶。PaaS主要具備以下三個特點:
(1)平臺即服務:PaaS所提供的服務與其他的服務最根本的區(qū)別是PaaS提供的是一個基礎平臺,而不是某種應用。在傳統(tǒng)的觀念中,平臺是向外提供服務的基礎。一般來說,平臺作為應用系統(tǒng)部署的基礎,是由應用服務提供商搭建和維護的,而PaaS顛覆了這種概念,由專門的平臺服務提供商搭建和運營該基礎平臺,并將該平臺以服務的方式提供給應用系統(tǒng)運營商;
(2)平臺及服務:PaaS運營商所需提供的服務,不僅僅是單純的基礎平臺,而且包括針對該平臺的技術支持服務,甚至針對該平臺而進行的應用系統(tǒng)開發(fā)、優(yōu)化等服務。PaaS的運營商最了解他們所運營的基礎平臺,所以由PaaS運營商所提出的對應用系統(tǒng)優(yōu)化和改進的建議也非常重要。而在新應用系統(tǒng)的開發(fā)過程中,PaaS運營商的技術咨詢和支持團隊的介入,也是保證應用系統(tǒng)在以后的運營中得以長期、穩(wěn)定運行的重要因素;
(3)平臺及服務:PaaS運營商對外提供的服務不同于其他的服務,這種服務的背后是強大而穩(wěn)定的基礎運營平臺,以及專業(yè)的技術支持隊伍。這種“平臺級”服務能夠保證支撐SaaS或其他軟件服務提供商各種應用系統(tǒng)長時間、穩(wěn)定的運行。PaaS的實質(zhì)是將互聯(lián)網(wǎng)的資源服務化為可編程接口,為第三方開發(fā)者提供有商業(yè)價值的資源和服務平臺。有了PaaS平臺的支撐,云計算[1]的開發(fā)者就獲得了大量的可編程元素,這些可編程元素有具體的業(yè)務邏輯,這就為開發(fā)帶來了極大的方便,不但提高了開發(fā)效率,還節(jié)約了開發(fā)成本。有了PaaS平臺的支持,WEB應用的開發(fā)變得更加敏捷,能夠快速響應用戶需求的開發(fā)能力,也為最終用戶帶來了實實在在的利益。

三、PAAS平臺發(fā)展前景
云計算相對來說仍然還不成熟,新服務和功能會一直出現(xiàn)。云開發(fā)平臺和PaaS也會在新的功能登場時不斷演變。然而,由于用戶社區(qū)對開源軟件的影響很深,因此無法保證新功能會以足夠快的速度出現(xiàn)以滿足你的開發(fā)需求。
雖然每個PaaS產(chǎn)品都有著類似的功能,但具備這些功能的速度卻有所不同。例如,Pivotal的開源PaaS產(chǎn)品CloudFoundry以其對語言的支持,服務整合,以及與其它如Chef,Puppet,Jenkins和NoSQL這樣的開源工具的集成著稱。然而,CloudFoundry上只提供初步的容器支持,用戶界面主要靠命令行,支持數(shù)量有限的軟件部署商業(yè)模式以及在應用的性能指標衡量上偏弱。
監(jiān)控一個平臺的發(fā)展路線圖然后再作出決定。那些發(fā)展緩慢或者正在經(jīng)歷某種艱難的發(fā)展模式的平臺可能會為你的應用開發(fā)團隊和你的業(yè)務帶來問題。
四、paas邏輯架構圖
paas邏輯架構圖:

用友PaaS體系包括開發(fā)部署平臺、運營平臺、運行平臺三大平臺,輔以各種應用支撐和公共服務,全面高效地實現(xiàn)了企業(yè)應用所需的云平臺環(huán)境。
PaaS架構比較

大致來看,PaaS的實現(xiàn)分為兩種:以虛擬機為基礎或是以容器為基礎。前者的代表是AWS,后者的代表則是GAE, CloudFoundry和Heroku。前文已經(jīng)提到,AWS是基于虛擬機技術來打造自己的PaaS平臺,其架構模式大致如下圖所示:
具體而言,AWS基于如下構件打造了Beanstalk:首先是負載均衡層(ELB),該層需要將用戶的請求投射到對應的服務器實例,同時,負載均衡層還需要。當應用實例出現(xiàn)擴容時,需要動態(tài)將調(diào)整的服務器實例注冊到對應的域名上,以完成分流;中間是Web服務器層,目前ElasticBean支持Java、Python和PHP等多種編程語言,盡量為編程人員提供多樣性的選擇,開放性基本是所有PaaS平臺的標配。在服務后端,Beanstalk基本依托于AWS本身的服務生態(tài)系統(tǒng)為應用提供服務,比如RDS、S3、DynamoDB等。
CloudFoundry等平臺則是基于容器技術打造。相比于虛擬機,容器帶來的系統(tǒng)開銷非常低,如果一臺虛擬機的操作系統(tǒng)需要占用2G的內(nèi)存,則7個虛擬機所組成的集群只是操作系統(tǒng)就需要14G的內(nèi)存占用?;谌萜鞯募夹g如果一臺16G的裸機除去2G的操作系統(tǒng)開銷,還能夠部署7個容器進程。所以,從經(jīng)濟性來說,容器的技術遠遠好于虛擬機。另外一個比較的標準是性能,容器的性能相對而言更好一些,具體的比較參數(shù)可以參見IBM研究院剛剛出的報告。但是,從安全性和隔離型來說,虛擬機是遠遠好于容器的。
CloudFoundry的架構設計如下圖所示。首先,CF也提供了一個路由模塊(Router),該模塊基本是基于ngnix打造,只是在ngnix技術上提供了動態(tài)注冊的功能。在部署時,由于CF會同時部署非常多的應用實例,所以需要一個router集群來滿足應用的需要;其次,CF的應用容器基于自己開發(fā)的warden技術,warden也是基于LXC技術,但是使用c和ruby作了一層簡單的封裝。Docker的大熱讓CloudFoundry很糾結;第三,CF使用service broker來集成各種資源服務,如mongo、mysql、rabbitmq和redis等。最后,CF使用消息總線NATS/GNATS來完成應用之間的通訊。
其他基于容器的PaaS平臺(如Heroku、OpenShift、DotCloud)的平臺架構和上面所描述的模式基本一致,我在附件中提供了若干鏈接,大家如果有興趣可以仔細研究。
PaaS的參考架構模式
根據(jù)上面討論的兩種架構模式,我們可以看到PaaS平臺的實現(xiàn)基本需要如下的構件:
1.路由模塊:該模塊的基本功能是將終端用戶請求路由到對應的服務器實例,并提供應用動態(tài)注冊等功能。目前絕大多數(shù)的實現(xiàn)是基于ngnix,同時也需要使用簡單的lua腳本完成應用注冊和路由查詢等基本功能;
2.服務管理模塊:該模塊會為開發(fā)人員和運維人員提供管理接口,其基本功能包括創(chuàng)建應用實例、配置應用運行參數(shù)、啟停應用、發(fā)布應用程序、擴容或縮容等。服務管理模塊也需要提供相應的客戶端被用戶使用,如命令行或是用戶界面等;
3.應用容器模塊:應用容器是PaaS平臺的核心,其主要功能是管理應用實例的生命周期,匯報應用的運行狀態(tài)等。目前來看,應用容器可以基于虛擬機來實現(xiàn)(如AWS),也可以使用Linux容器技術來實現(xiàn),最早使用的是LXC,CloudFoundry使用的是自己的warden,同樣也是基于cgroup,現(xiàn)在最新的是docker;
4.應用部署模塊:應用部署模塊需要將應用程序打包成為可直接部署的發(fā)布包。該模塊是實現(xiàn)PaaS平臺開發(fā)性的關鍵。由于現(xiàn)有通用的PaaS平臺需要支持多種編程語言和框架,如Java, Python, Ruby和PHP等,當應用發(fā)布時,PaaS平臺需要根據(jù)不同的編程語言將應用打包成為通用的發(fā)布包,然后傳遞給容器模塊部署。應用部署模塊是實現(xiàn)這一過程的關鍵,目前來看起源于Heroku的buildpack已經(jīng)被大家廣發(fā)接受;
5.塊存儲模塊:該模塊主要用于存儲應用的發(fā)布包,需要保證程序包的長久存儲和。目前AWS的Beanstalk直接使用S3,CF可以使用網(wǎng)絡文件系統(tǒng)NFS或是其他任何分布式文件存儲系統(tǒng)(如HBase);
6.數(shù)據(jù)存儲模塊:該模塊需要保存應用和服務的基本信息,可以基于任何現(xiàn)有的數(shù)據(jù)庫技術實現(xiàn),如MYSQL或是MONGODB等;
7.監(jiān)控模塊:該模塊的作用是持續(xù)監(jiān)控應用的運行狀態(tài),比如健康狀態(tài)(是否存活)、資源使用率(CPU、內(nèi)存、硬盤、網(wǎng)絡等)和可用性等。這些指標會成為整個PaaS平臺運維的關鍵,也為自動彈性伸縮奠定基礎;
8.用戶認證模塊:該模塊需要保證應用程序的安全性和隔離性,通常而言,公有云的提供商會使用OAuth等技術集成現(xiàn)有的用戶認證服務;
9.消息總線模塊:該模塊也是最重要的模塊,由于PaaS平臺所搭建的是一個大規(guī)模分布式環(huán)境,通常而言,規(guī)模在數(shù)百臺到上千臺的機器數(shù)量,所有模塊之間的通訊會變成一個核心的問題。所以消息總線會變成系統(tǒng)之間通訊的基礎,通常需要支持pub/sub模式。
-
paas平臺
+關注
關注
0文章
3瀏覽量
2168
發(fā)布評論請先 登錄
PCIE基本概念與拓撲架構圖
Paas技術概述及特點
企業(yè)PaaS化改造將迎高速發(fā)展
阿里云是iaas還是paas_iaas與paas區(qū)別
什么是paas平臺_paas邏輯架構圖
評論