云市場(chǎng)觀察:平臺(tái)即服務(wù)廠商
最初,平臺(tái)即服務(wù)廠商根據(jù)自身支持的語(yǔ)言確立自己的市場(chǎng)差異性,比如支持Java或者.NET,但是最終他們還是要不斷發(fā)展支持多種語(yǔ)言,最后還要用基礎(chǔ)架構(gòu)即服務(wù)支持?jǐn)?shù)據(jù)存儲(chǔ)、消息服務(wù)、應(yīng)用服務(wù)和可遷移性。
市場(chǎng)上為開(kāi)發(fā)者提供了各種PaaS。雖然看起來(lái)PaaS廠商都極為相似,但是卻也存在諸多不同。要考慮能控制的類型,如果有的話,開(kāi)發(fā)者就可以在基礎(chǔ)架構(gòu)上進(jìn)行配置了。理想上,PaaS廠商管理了實(shí)施的所有細(xì)節(jié),但是有時(shí)候開(kāi)發(fā)者卻需要更多的控制。因此考慮廠商支持的服務(wù)極為重要,比如關(guān)系型數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)。如果關(guān)注廠商鎖定,一旦準(zhǔn)備在某一個(gè)廠商的PaaS產(chǎn)品上開(kāi)發(fā)了應(yīng)用,就要評(píng)估轉(zhuǎn)移到其他的PaaS廠商是否困難。
要跟上市場(chǎng)的變化,在選擇PaaS平臺(tái)時(shí),有一些關(guān)鍵性能需要注意。下面我們就來(lái)具體看一下。
IaaS廠商支持PaaS
很多IaaS云廠商逐漸轉(zhuǎn)向提供PaaS。亞馬遜Web服務(wù)(AWS)彈性Beanstalk就是混合了IaaS和PaaS模型的工具;提供了自動(dòng)化擴(kuò)展、負(fù)載均衡和應(yīng)用監(jiān)控。
AWS Elastic Beanstalk可能對(duì)于那些喜歡PaaS優(yōu)勢(shì)的開(kāi)發(fā)者有吸引力,這些開(kāi)發(fā)者偶爾需要配置服務(wù)器、存儲(chǔ)或者其應(yīng)用使用的其他服務(wù)。不像那些把基礎(chǔ)架構(gòu)與客戶隔離開(kāi)的PaaS廠商,AWS為IT提供了運(yùn)行應(yīng)用的資源的完全控制,包括彈性計(jì)算云(EC2)實(shí)例,和簡(jiǎn)單對(duì)象存儲(chǔ)服務(wù)(S3)。AWS Beanstalk支持Java、.NET、Python、Ruby、Node.js和PHP。
Google App Engine是為了在Google基礎(chǔ)架構(gòu)上運(yùn)行Python、Go或者Java而設(shè)計(jì)。應(yīng)用運(yùn)行在一個(gè)受限制的沙盒中,因此現(xiàn)有的應(yīng)用可能需要大量改變。比如,應(yīng)用不能編寫(xiě)文件系統(tǒng),且必須使用AppEngine、缺失NoSql模式數(shù)據(jù)庫(kù),存儲(chǔ)穩(wěn)定數(shù)據(jù)。開(kāi)發(fā)者也要訪問(wèn)基于MySQL 5.5設(shè)計(jì)的Google Cloud SQL和對(duì)象數(shù)據(jù)存儲(chǔ)Google Cloud Storage,Google Cloud SQL。
微軟Azure最初作為PaaS廠商,隨后提供IaaS。除了支持多種語(yǔ)言,微軟Azure還提供移動(dòng)設(shè)備應(yīng)用后端支持的專業(yè)服務(wù)。SQL數(shù)據(jù)庫(kù)和報(bào)告服務(wù)也包含在PaaS產(chǎn)品中。在思考大數(shù)據(jù)時(shí),微軟可能并不是我們第一個(gè)想到的云廠商,但是它和Hortonworks是合作伙伴關(guān)系,在Azure中支持Hadoop。Azure的這種結(jié)合易于使用且微軟對(duì)于非微軟技術(shù)的支持也會(huì)讓其PaaS吸引更多的.NET開(kāi)發(fā)者。
PaaS廠商靜觀其變
除了IaaS廠商提供PaaS特性之外,也有各種各樣單純的PaaS廠商。Heroku提供PaaS,支持通用語(yǔ)言,比如Java、Ruby、Node.js和Python,以及功能性編程語(yǔ)言Scala和Clojure。Heroku抽象虛擬機(jī)(VM)實(shí)例,成為一種結(jié)構(gòu),稱之為dynamo,dynamo被描述為運(yùn)行單一命令的容器。Heroku基礎(chǔ)架構(gòu)管理你的應(yīng)用的dynamo數(shù)量和分布。除了計(jì)算服務(wù)之外,Heroku用戶可以利用數(shù)據(jù)庫(kù)、隊(duì)列和性能監(jiān)控服務(wù)。
紅帽O(jiān)penShift是一種PaaS應(yīng)用框架,支持通用語(yǔ)言,但是也實(shí)現(xiàn)了自定制化的功能,允許用戶安裝其他語(yǔ)言。比如AWS Elastic Beanstalk,OpenShift為客戶提供了更加明顯的自定制化控制。為了在OpenShift中運(yùn)行應(yīng)用,開(kāi)著創(chuàng)建一個(gè)配置文件,指定使用的組件,比如Python和MongoDB,以及應(yīng)用代碼位置。OpenShift可以根據(jù)負(fù)載自動(dòng)化擴(kuò)展,或者系統(tǒng)管理員可以人工按需擴(kuò)展。
CloudBees的PaaS定位是支持敏捷開(kāi)發(fā)者和Java虛擬機(jī)(VM)工作,比如Java、Grails和Scala。Jenkins用來(lái)構(gòu)建、測(cè)試和監(jiān)控應(yīng)用,提供對(duì)于持續(xù)集成的支持。CloudBees為關(guān)系型數(shù)據(jù)庫(kù)提供可管理的MySQL服務(wù)支持,為使用其他服務(wù)廠商的合作伙伴提供CloudBees“生態(tài)系統(tǒng)”,包括進(jìn)行版本控制的CloudForge、性能監(jiān)控的AppDynamics、兼容CouchDB云數(shù)據(jù)庫(kù)的Cloudant以及支持MongoDB的MongoHQ。
PiCloud采取與其他廠商不同的PaaS方法。這家PaaS廠商關(guān)注計(jì)算密集的Python應(yīng)用。開(kāi)發(fā)者可以使用PiCloud庫(kù)導(dǎo)入代碼到其應(yīng)用,這種功能可以將計(jì)算密集功能推入到云端,運(yùn)行代碼,而不是在本地設(shè)備上運(yùn)行。這種放到最小化了開(kāi)發(fā)者工作方法的改變,允許他們通過(guò)添加一些代碼到其程序中,從而利用PaaS。