在IaaS服務(wù)統(tǒng)治者的戰(zhàn)斗中,所有的目光都聚焦在AWS、微軟和谷歌的價(jià)格戰(zhàn)上,但很少有人關(guān)注且對(duì)比他們?yōu)殚_(kāi)發(fā)者所提供的特性。隨著這些提供商不斷在價(jià)格之上拓展其競(jìng)爭(zhēng)的疆土,他們也將IaaS的邊界推到了PaaS版圖中。隨著不斷增加新的服務(wù)支持軟件開(kāi)發(fā),云開(kāi)發(fā)者可能會(huì)成為最大的受益人。
大名鼎鼎的平臺(tái)即服務(wù)(PaaS)提供商,比如Heroku、Engine Yard和紅帽O(jiān)penShift,都提供了比嚴(yán)格的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)產(chǎn)品更高級(jí)的開(kāi)發(fā)者服務(wù)。這些服務(wù)包括抽象隱藏了一些虛擬機(jī)(VM)管理細(xì)節(jié),支持具體的編程語(yǔ)言和開(kāi)發(fā)環(huán)境、集成數(shù)據(jù)庫(kù)、日志和監(jiān)控。
一些PaaS提供商,比如CloudBees,專注于支持DevOps,提供了同Jenkins的緊密集成,這是一種針對(duì)Java應(yīng)用的持續(xù)交付系統(tǒng)。以Ruby PaaS聞名的Engine Yard現(xiàn)在在PaaS中使用軟件即服務(wù)(SaaS)、電子商務(wù)和移動(dòng)應(yīng)用用例支持PHP和Node.js應(yīng)用。
雖然一些PaaS產(chǎn)品越來(lái)越吸引人,但一些開(kāi)發(fā)者可能并不想從IaaS上做出變更。感謝AWS、微軟Azure和谷歌,他們都增加了類似PaaS的特性到其IaaS產(chǎn)品中,開(kāi)發(fā)者就可以在IaaS中獲取PaaS的一些優(yōu)勢(shì)。
亞馬遜云中的眾多平臺(tái)服務(wù)
眾所周知,亞馬遜Web服務(wù)(AWS)不斷在其產(chǎn)品分類中增加新的服務(wù)。對(duì)于開(kāi)發(fā)者而言,一些最重要的服務(wù)包括關(guān)系型數(shù)據(jù)庫(kù)(RDS)、彈性負(fù)載均衡、彈性Beanstalk、CloudSearch、簡(jiǎn)單工作流服務(wù)以及簡(jiǎn)單隊(duì)列服務(wù)。
開(kāi)發(fā)者使用RDS可以選擇管理Oracle、SQL Server、MySQL和PostgreSQL數(shù)據(jù)庫(kù)。AWS管理的諸多任務(wù),通常都是通過(guò)數(shù)據(jù)庫(kù)管理員來(lái)處理,比如備份、打包和協(xié)調(diào)I/O操作。然而,用戶仍舊需要設(shè)計(jì)自己的數(shù)據(jù)模型。
AWS的彈性負(fù)載均衡允許開(kāi)發(fā)者部署服務(wù)器集群和開(kāi)機(jī)群分布工作負(fù)載的負(fù)載均衡器。這項(xiàng)服務(wù)也可以管理自動(dòng)擴(kuò)展,因此開(kāi)發(fā)者可以更加關(guān)注開(kāi)發(fā),較少關(guān)注監(jiān)控負(fù)載和調(diào)整集群資源。
彈性負(fù)載均衡是比彈性Beanstalk低一層的服務(wù)。類似PaaS環(huán)境,你可以上傳更多的代碼到彈性Beanstalk中,它將會(huì)執(zhí)行大量任務(wù),包括分配服務(wù)器、增加負(fù)載均衡器和配置自動(dòng)擴(kuò)展以及應(yīng)用健康監(jiān)控。彈性Beanstalk可以讓開(kāi)發(fā)者控制AWS資源,實(shí)現(xiàn)類似PaaS的自動(dòng)化,同時(shí)還維持了若干IaaS上的基礎(chǔ)架構(gòu)控制。
CloudSearch、簡(jiǎn)單工作流服務(wù)以及簡(jiǎn)單隊(duì)列服務(wù)提供了中間層應(yīng)用,否則這些應(yīng)用就會(huì)要求開(kāi)發(fā)者分配服務(wù)器和管理額外的應(yīng)用。比如CloudSearch可以用來(lái)搜索非結(jié)構(gòu)化文本集,而非安裝、配置和維護(hù)Solr或者ElasticSearch服務(wù)器。
微軟的類PaaS服務(wù)
微軟擁有完整的類PaaS服務(wù),以便同AWS競(jìng)爭(zhēng):數(shù)據(jù)庫(kù)服務(wù)支持SQL Server和MySQL、基于Redis的緩存服務(wù)、消息服務(wù)、工作調(diào)度程序、活動(dòng)目錄和多因子認(rèn)證。
毫不意外,Visual Studio支持部署微軟Azure和非微軟語(yǔ)言,包括PHP、Python和Ruby,提供了能夠運(yùn)行用其他語(yǔ)言編寫腳本的能力。比如,Python開(kāi)發(fā)者可以部署Django網(wǎng)站并且在Azure中托管IPython筆記。
谷歌的平臺(tái)服務(wù)
雖然谷歌的類PaaS產(chǎn)品并沒(méi)有像AWS和微軟提供的范圍廣泛,但是他們也為開(kāi)發(fā)者提供了所需的高性能存儲(chǔ)和數(shù)據(jù)管理服務(wù)。
如果你是一個(gè)需要一個(gè)對(duì)象、關(guān)系或者NoSQL數(shù)據(jù)存儲(chǔ)的開(kāi)發(fā)者,谷歌就是你所需的。云存儲(chǔ)服務(wù)提供了耐久、高可用性的對(duì)象存儲(chǔ),而且能夠管理復(fù)制。谷歌的Cloud SQL類似于其他的可管理MySQL服務(wù),照顧了補(bǔ)丁、重復(fù)和性能管理問(wèn)題。谷歌的NoSQL數(shù)據(jù)庫(kù)Cloud Datastore,包括類SQL引擎,支持由實(shí)體、漏斗和種類標(biāo)準(zhǔn)組成的查詢。類似關(guān)系型數(shù)據(jù)庫(kù),也針對(duì)數(shù)據(jù)完整性支持ACID處理。
對(duì)于進(jìn)入大數(shù)據(jù)世界的開(kāi)發(fā)者容顏,這三家廠商都提供了分析大數(shù)據(jù)集的服務(wù)。AWS和微軟都有Hadoop服務(wù):分別為彈性Map Reduce (EMR)和HDInsight.如果你需要谷歌云中的Hadoop.你必須自己安裝和管理。