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















 
 
 


 
 
 
 