最初,平臺即服務廠商根據自身支援的語言確立自己的市場差異性,比如支援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。
(責任編輯:蒙遺善)