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