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