云應(yīng)用開(kāi)發(fā)者應(yīng)該仔細(xì)選擇IaaS平臺(tái)。為了幫助你做出正確的選擇,下面是對(duì)在GCE上部署云應(yīng)用的利弊分析。
云應(yīng)用開(kāi)發(fā)者應(yīng)該在選擇一個(gè)用于開(kāi)發(fā)和部署云應(yīng)用的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)平臺(tái)之前做好功課。選擇錯(cuò)誤的平臺(tái)可能會(huì)導(dǎo)致不可預(yù)測(cè)的定價(jià)和計(jì)費(fèi)模式,限制開(kāi)發(fā)語(yǔ)言,限制操作系統(tǒng)的選擇,幾乎無(wú)法幫助客戶履行合規(guī)性要求,并無(wú)法提供足夠的安全性。
讓我們來(lái)看看在一個(gè)比較流行的IaaS平臺(tái):谷歌計(jì)算引擎(GCE)上開(kāi)發(fā)和部署云應(yīng)用的的優(yōu)缺點(diǎn)。GCE提供運(yùn)行在谷歌管理的數(shù)據(jù)中心里的虛擬機(jī)(VM)。它讓外部的企業(yè)和軟件開(kāi)發(fā)人員在谷歌的全球基礎(chǔ)架構(gòu)上運(yùn)行他們自己的軟件。那些用于Gmail,地圖和其他谷歌應(yīng)用的硬件和軟件棧,現(xiàn)在也用來(lái)托管GCE的虛擬機(jī)。GCE采用Linux基于內(nèi)核的VM虛擬化管理軟件(KVM)。它支持多種Linux發(fā)布版本和Windows。
Google App Engine(GAE)是在2008年發(fā)布,而GCE則是在2012年6月宣布推出。GCE以及GAE被視為Google Cloud Platform中最重要的兩個(gè)服務(wù),谷歌云平臺(tái)是在2012年5月推出并在2013年5月全面啟用。
GCE的特點(diǎn)
現(xiàn)今,與GCE有關(guān)的用例常常包括了計(jì)算密集型應(yīng)用,如視頻轉(zhuǎn)碼和渲染,基因組測(cè)序,聚類,機(jī)器學(xué)習(xí)和分析,解決的問(wèn)題與大數(shù)據(jù)系統(tǒng)差別不大。
雖然GAE為開(kāi)發(fā)者提供了一個(gè)“現(xiàn)成”的開(kāi)發(fā)和部署環(huán)境,但GCE仍然也是一個(gè)“自己動(dòng)手”的環(huán)境??蛻艨梢詣?chuàng)建自己的實(shí)例然后進(jìn)行管理,包括虛擬機(jī)上運(yùn)行的軟件。GCE提供各種工具,讓你可以與GCE的實(shí)例交互和管理。例如,你可以啟動(dòng)和停止實(shí)例,附加磁盤(pán)存儲(chǔ)和配置網(wǎng)絡(luò)訪問(wèn)。大部分這些事情GAE會(huì)在應(yīng)用需要時(shí)自動(dòng)做好。
要開(kāi)始使用GCE的時(shí)候,你首先需要在開(kāi)發(fā)者控制臺(tái),與GCE交互的三種工具之一(一個(gè)基于Web的用戶界面)中創(chuàng)建一個(gè)GCE項(xiàng)目。一個(gè)項(xiàng)目是關(guān)于你正在開(kāi)發(fā)的應(yīng)用程序信息的集合,它充當(dāng)你的計(jì)算引擎的容器。磁盤(pán),防火墻,網(wǎng)絡(luò)和虛擬機(jī)都會(huì)關(guān)連(并包含)在一個(gè)單獨(dú)的項(xiàng)目中。
用戶可以使用開(kāi)發(fā)者控制臺(tái),加上GCloud,一個(gè)用來(lái)管理實(shí)例和資源的命令行接口,或GCE API(一個(gè)RESTful的接口)與GCE實(shí)例和資源交互。
GCE提供幾種機(jī)器類型的支持。每一種機(jī)器類型提供了預(yù)定義的配置選項(xiàng)集合,例如虛擬CPU的數(shù)量及虛擬RAM的容量。機(jī)器類型包括:
標(biāo)準(zhǔn)--內(nèi)存和處理能力的平衡組合
高內(nèi)存--相對(duì)于處理能力來(lái)說(shuō)更高內(nèi)存容量的選項(xiàng)
高CPU--相對(duì)于存儲(chǔ)容量來(lái)說(shuō)更高處理能力的選項(xiàng)
共享型--更便宜,更小的配置
GCE支持GAE使用的托管虛擬機(jī)環(huán)境在可配置的GCE虛擬機(jī)上運(yùn)行GAE應(yīng)用。此功能為GAE開(kāi)發(fā)者提供了更多的靈活性,通過(guò)提供更多的操作系統(tǒng)選擇,更多的語(yǔ)言運(yùn)行時(shí)間選擇,以及更多的CPU和內(nèi)存選項(xiàng)來(lái)運(yùn)行GAE應(yīng)用。GAE會(huì)自動(dòng)為開(kāi)發(fā)人員管理GCE創(chuàng)建的VM。
GCE為你提供了可搶占的實(shí)例,可以用比平常更低的價(jià)格創(chuàng)建和運(yùn)行GCE實(shí)例。但GCE可以終止一個(gè)可搶占的實(shí)例并拿走部分或全部的資源,如果這個(gè)資源正被其他某些價(jià)格較高的(不可搶占的)實(shí)例所需的時(shí)候。GCE的可搶占實(shí)例數(shù)量是有限的,所以在高峰使用期要?jiǎng)?chuàng)建一個(gè)可搶占的實(shí)例也許不大可能成功。
一個(gè)GCE VM的基礎(chǔ)軟件包括了操作系統(tǒng)(及其他系統(tǒng)軟件)和應(yīng)用軟件,這個(gè)基礎(chǔ)軟件通常被稱為鏡像。GCE支持?jǐn)?shù)個(gè)標(biāo)準(zhǔn)的鏡像(其他IaaS平臺(tái),例如AWS也一樣)。但是你可以創(chuàng)建自己的自定義鏡像,可以從頭開(kāi)始或是修改某個(gè)標(biāo)準(zhǔn)鏡像。開(kāi)發(fā)者通常有自己想用的操作系統(tǒng),開(kāi)發(fā)語(yǔ)言運(yùn)行環(huán)境等等。他們可以直接將這些軟件包含到他們的鏡像中。
GCE支持幾種開(kāi)發(fā)人員可以選擇的存儲(chǔ)系統(tǒng)。[2] 磁盤(pán)持久化存儲(chǔ)是用于塊存儲(chǔ)的主要存儲(chǔ)機(jī)制,一般被選為存儲(chǔ)文件系統(tǒng)數(shù)據(jù)的存儲(chǔ)機(jī)制。它還提供了針對(duì)非結(jié)構(gòu)化數(shù)據(jù)的谷歌云存儲(chǔ),Cloud Datastore,一個(gè)NoSQL數(shù)據(jù)庫(kù)和CloudSQL,一個(gè)MySQL的存儲(chǔ)解決方案。
跟GAE一樣,GCE也利用了谷歌的海量網(wǎng)絡(luò)資源。數(shù)據(jù)在GCE 虛擬機(jī)之間傳輸?shù)乃俣缺绕渌蕾嚮ヂ?lián)網(wǎng)傳輸數(shù)據(jù)的云平臺(tái)更快。使用GCE,你會(huì)獲得一些默認(rèn)的網(wǎng)絡(luò)和防火墻功能——項(xiàng)目中的所有實(shí)例都連接于一個(gè)網(wǎng)絡(luò),而實(shí)例只能與項(xiàng)目之中的其他實(shí)例通信。但你可以配置額外的網(wǎng)絡(luò)和防火墻功能。[3]
GCE也支持全球負(fù)載平衡,借由把傳入請(qǐng)求分配于數(shù)個(gè)實(shí)例群和數(shù)個(gè)區(qū)域之間,從而可以實(shí)現(xiàn)最大的性能,吞吐量和可用性。
類似于GAE和AWS,GCE將世界劃分為地區(qū)和區(qū)域。一個(gè)區(qū)域?qū)?yīng)于一個(gè)物理數(shù)據(jù)中心,而一個(gè)地區(qū)則代表一個(gè)大的地理范圍內(nèi)數(shù)個(gè)區(qū)域的集合。目前GCE支持三個(gè)地區(qū)和八個(gè)區(qū)域。
GCE提供一個(gè)SLA保證每月99.95%的正常運(yùn)行時(shí)間。AWS也提供相同的保證。
使用GCE的技巧
GAE和大多數(shù)用于開(kāi)發(fā)和部署云應(yīng)用的平臺(tái)的利弊列表上主要有幾點(diǎn)。雖然定價(jià)對(duì)每個(gè)云平臺(tái)來(lái)說(shuō)都是挑戰(zhàn),但GCE和AWS的定價(jià)和計(jì)費(fèi)模式變化如此之頻繁讓我們很難給出定價(jià)方面的建議。在選擇過(guò)程中,請(qǐng)了解每個(gè)候選平臺(tái)的最新定價(jià)/計(jì)費(fèi)模型。
優(yōu)點(diǎn):GCE的客戶能夠利用所有谷歌在云自動(dòng)化方面的創(chuàng)新,這些創(chuàng)新已經(jīng)在谷歌的高壓環(huán)境下測(cè)試過(guò)了。
GCE使用谷歌的私有全球光纖網(wǎng)絡(luò)(也就是谷歌基礎(chǔ)架構(gòu)的骨干)來(lái)連接數(shù)據(jù)中心里的虛擬機(jī),這自然比任何其他的云平臺(tái)更快,包括使用公共互聯(lián)網(wǎng)的AWS。
GCE的標(biāo)準(zhǔn)計(jì)算實(shí)例與AWS相比成本較低,除非你愿意預(yù)先綁定支付AWS三年的預(yù)留實(shí)例。如果谷歌繼續(xù)沿用摩爾定律的方式定價(jià),那么綁定三年期的AWS 預(yù)留實(shí)例增加了未來(lái)的降價(jià)可能會(huì)抵消一些你預(yù)期省下的成本的風(fēng)險(xiǎn)。對(duì)于高內(nèi)存高CPU的虛擬機(jī)來(lái)說(shuō),谷歌GCE和AWS定價(jià)的比較結(jié)果是比較復(fù)雜的——其中沒(méi)幾個(gè)有可比性的項(xiàng)目。
GCE的定價(jià)對(duì)小一點(diǎn)的企業(yè)來(lái)說(shuō)是一大優(yōu)點(diǎn),因?yàn)樗且悦糠昼娛召M(fèi)的,最低收費(fèi)則是10分鐘,而AWS是以小時(shí)收費(fèi),不足一小時(shí)按一小時(shí)計(jì)。
GCE能夠讓你把一個(gè)持久化讀/寫(xiě)磁盤(pán)以只讀的方式掛到一個(gè)虛擬機(jī)并將它連接到同一區(qū)域內(nèi)的數(shù)百臺(tái)VM。這允許你在短時(shí)間內(nèi)將數(shù)據(jù)分發(fā)給大量的工作節(jié)點(diǎn)。AWS的客戶仍在掙扎于尋找一種在大量的AWS實(shí)例之間分享數(shù)據(jù)和信息的方式。
GCE可以基于負(fù)載的增加或減少,在管理實(shí)例組內(nèi)添加或刪除虛擬機(jī)來(lái)自動(dòng)執(zhí)行負(fù)載平衡。這允許應(yīng)用程序處理流量的增加和當(dāng)資源需求較低時(shí)降低成本。然而,GCE的負(fù)載平衡沒(méi)有那么自動(dòng),因?yàn)镚CE需要用戶指定自動(dòng)調(diào)節(jié)的策略,并且它不能用于標(biāo)準(zhǔn)實(shí)例,只能在管理實(shí)例上使用。AWS的彈性負(fù)載均衡會(huì)執(zhí)行類似的功能,但它需要預(yù)熱(比如,配置負(fù)載均衡器使其在預(yù)期流量的范圍內(nèi)有適當(dāng)級(jí)別的容量)。GCE允許地區(qū)之間的負(fù)載平衡并支持基于內(nèi)容的路由,而這個(gè)亞馬遜的EC2則做不到。
GCE會(huì)即時(shí)加密那些寫(xiě)入永久磁盤(pán)的數(shù)據(jù),傳輸,然后將其以加密的格式存儲(chǔ)。它已經(jīng)完成了ISO 27001,SSAE-16,SOC 1,SOC 2,及SOC 3的認(rèn)證。
GCE可以讓你以非常具有成本效益的方式使用可搶占的虛擬機(jī)來(lái)運(yùn)行大批量和計(jì)算的作業(yè)。
缺點(diǎn):GCE仍在服務(wù)方面,地區(qū)(3比11),客戶的數(shù)量,產(chǎn)品在存儲(chǔ),計(jì)算,數(shù)據(jù)庫(kù),網(wǎng)絡(luò)和配置管理的廣度落后于AWS。AWS的容量是排在它之后的最大的12個(gè)競(jìng)爭(zhēng)對(duì)手加起來(lái)的五倍。AWS在云市場(chǎng)的占有率是28%;微軟是10%而Google是5%(包括GAE和GCE)。
AWS支持多種操作系統(tǒng),包括Amazon Linux、Red Hat Enterprise Linux、CentOS、Debian,SUSE Linux Enterprise Server、Ubuntu、Oracle Enterprise Linux、FreeBSD和Windows(2003 R2,2008,2008 R2,2012)。GCE支持CentOS,Red Hat Enterprise Linux,Debian,SUSE Linux Enterprise Server、Ubuntu和Windows Server 2008 R2。(對(duì)Windows的支持仍在Beta模式。)盡管AWS略勝一籌,但它并沒(méi)有顯著的優(yōu)勢(shì)。
GCE在合規(guī)方面遠(yuǎn)遠(yuǎn)落后于AWS。AWS的合規(guī)服務(wù)完勝GCE的合規(guī)服務(wù)。AWS可以幫助企業(yè)處理大部分他們可能需要滿足的法規(guī)。GCE(和Google Cloud Platform)正在盡力趕上AWS的合規(guī)服務(wù)。
圍繞GCE和谷歌云平臺(tái)的服務(wù)數(shù)量與AWS和微軟Azure相比是較小的。在Forrester的企業(yè)公有云平臺(tái)報(bào)告中,作者列出28個(gè)重要的AWS服務(wù),22個(gè)微軟的云服務(wù)和只有6個(gè)谷歌云平臺(tái)的服務(wù),包括GAE,GCE,Google Cloud Storage、Google Cloud Datastore、Google Cloud SQL和BigQuery。
GCE缺乏廣泛的地理分布。GCE只有三個(gè)地區(qū)(美國(guó),歐洲和亞洲)和三個(gè)可用區(qū)域。而AWS,有著11個(gè)地區(qū)和超過(guò)20個(gè)的可用性區(qū)域。如果你需要一個(gè)具有廣泛的地理多樣性的靜態(tài)網(wǎng)站并不介意為此付費(fèi),又或者你需要托管的大量數(shù)據(jù),例如視頻或文件下載,建議你使用AWS EC2和AWS S3。