公有云評(píng)測(cè):谷歌云玩轉(zhuǎn)靈活性
譯文谷歌公司精心構(gòu)建的Cloud Platform使用戶能夠更為輕松地啟動(dòng)實(shí)例或者在必要時(shí)隨時(shí)使用Google API。
如果要說(shuō)哪家企業(yè)真正拿出了以云為核心的計(jì)算體系,那么勝出者非谷歌莫屬。自發(fā)展之初開(kāi)始,谷歌公司就建立起一套立足于深邃互聯(lián)網(wǎng)環(huán)境的業(yè)務(wù)定位,而其搜索引擎目前仍然是現(xiàn)代世界上最為強(qiáng)大的工程奇跡之一。大家是否還記得,谷歌搜索引擎上一次停機(jī)事故出現(xiàn)在哪一年?
很明顯,每一家企業(yè)都希望能夠建立起像谷歌這樣以信息為基礎(chǔ)且跨越整個(gè)互聯(lián)網(wǎng)的業(yè)務(wù)體系,并借此積累豐富的技術(shù)經(jīng)驗(yàn)。作為這一領(lǐng)域的先驅(qū)者,如果谷歌公司需要某些技術(shù)方案,那么其工程師必須自行著手開(kāi)發(fā),而后完成相關(guān)部署。如今,每個(gè)人都能夠借此獲得谷歌技術(shù)的收益,意味著以每小時(shí)或者每次點(diǎn)擊為基礎(chǔ)建立起谷歌級(jí)別的系統(tǒng)并獲得谷歌級(jí)別的可靠性水平。
使用Google Cloud的最便捷方式就是在Google Compute Engine當(dāng)中啟動(dòng)一個(gè)實(shí)例。通過(guò)對(duì)應(yīng)網(wǎng)頁(yè)點(diǎn)擊幾下或者對(duì)API進(jìn)行幾次調(diào)用,大家就能夠啟動(dòng)這套運(yùn)行在谷歌基礎(chǔ)設(shè)施機(jī)架內(nèi)部的虛擬機(jī)系統(tǒng)了。
用戶可以從18種標(biāo)準(zhǔn)Linux發(fā)行版當(dāng)中做出選擇(包括Ubuntu、Debian、紅帽以及CentOS等等)或者——這可能有點(diǎn)出乎大家的意料——選擇兩種Windows Server版本(包括2008 R2或者2012 R2)。運(yùn)行Windows會(huì)帶來(lái)相對(duì)略高的使用成本:?jiǎn)蝪CPU虛擬機(jī)標(biāo)準(zhǔn)版本下每月額外支付14.60美元。這部分由操作系統(tǒng)帶來(lái)的溢價(jià)會(huì)隨著所添置計(jì)算核心數(shù)量的增加而提升。
設(shè)備與容器
谷歌公司還提供極為廣泛的硬件選項(xiàng)外加大量預(yù)定義的配置方案,其中最多包含32個(gè)虛擬計(jì)算核心以及高達(dá)208 GB內(nèi)存。如果大家不喜歡這些標(biāo)準(zhǔn)選項(xiàng),其UI當(dāng)中還提供多種滑塊設(shè)計(jì)組件,允許買(mǎi)家隨意選擇10 GB或者34 GB內(nèi)存容量。然而,內(nèi)存容量與計(jì)算核心數(shù)量緊密相關(guān),這意味著我們無(wú)法選擇太過(guò)極端的組合——例如單CPU配合180 GB內(nèi)存……當(dāng)然,大家也不可能使用這種配置。
對(duì)于開(kāi)發(fā)人員而言,比較實(shí)用的選項(xiàng)包括微型與小型實(shí)例,其采用共享式CPU并提供幾乎任意內(nèi)存容量水平(包括0.6 GB內(nèi)存或者1.7 GB內(nèi)存)。其使用價(jià)格亦非常低廉,甚至低到可以忽略不計(jì)。微型實(shí)例的每小時(shí)使用成本僅為0.9美分,這意味著運(yùn)行一整個(gè)月也只需要6.57美元。
Google Compute Engine控制臺(tái)允許大家通過(guò)選定CPU數(shù)量與內(nèi)存容量隨時(shí)啟動(dòng)自己需要的計(jì)算實(shí)例。
不過(guò)最終價(jià)格可能比這還要低。谷歌公司已經(jīng)通過(guò)向用戶提供“持久使用”折扣,以獎(jiǎng)勵(lì)那些保持設(shè)備長(zhǎng)久運(yùn)轉(zhuǎn)的客戶。當(dāng)月第一周云服務(wù)按全價(jià)計(jì)算,但第二周持續(xù)運(yùn)行服務(wù)的用戶則能夠享受20%價(jià)格折扣。如果大家能夠讓自己的設(shè)備全月運(yùn)轉(zhuǎn),那么最后兩周的折扣則分別高達(dá)60%與40%。這意味著如果我們每月全程運(yùn)行設(shè)備,那么最終將享受到30%的價(jià)格折扣。
需要注意的是,我們并不需要持續(xù)運(yùn)行實(shí)例以享受上述優(yōu)惠價(jià)格。Compute Engine賬戶會(huì)按分鐘計(jì)算且據(jù)此進(jìn)行費(fèi)率調(diào)整。谷歌公司的虛擬機(jī)啟動(dòng)速度極快,因此我們完全可以隨時(shí)將其關(guān)停半小時(shí)或者一小時(shí)。而更短的間歇時(shí)間可能就不太可行了,因?yàn)镃ompute Engine持續(xù)會(huì)將虛擬機(jī)的啟動(dòng)計(jì)費(fèi)時(shí)長(zhǎng)設(shè)置為最低10分鐘。
另外,我們還可以利用其它方式節(jié)約成本。大家能夠通過(guò)預(yù)約實(shí)例實(shí)現(xiàn)批量處理與非必要工作運(yùn)行,無(wú)論其是否真正進(jìn)行或者執(zhí)行相關(guān)處理。當(dāng)這類預(yù)約實(shí)例開(kāi)始進(jìn)行時(shí),我們能夠享受到高達(dá)70%的折扣,這樣的優(yōu)惠幅度絕對(duì)令人難以抗拒。另外,與Amazon的點(diǎn)實(shí)例計(jì)費(fèi)方式不同,谷歌的預(yù)約實(shí)例采用固定計(jì)費(fèi)機(jī)制,其基于拍賣(mài)市場(chǎng)上出售的過(guò)剩計(jì)算周期價(jià)格。如果大家希望擁有成本預(yù)測(cè)能力,那么這類預(yù)約實(shí)例絕對(duì)不容錯(cuò)過(guò)。
值得指出的是,磁盤(pán)空間使用費(fèi)會(huì)單獨(dú)計(jì)算,其部分原因在于磁盤(pán)運(yùn)作本身也確實(shí)獨(dú)立于設(shè)備之外。我們需要將持久性磁盤(pán)“附加”至計(jì)算實(shí)例當(dāng)中,而在實(shí)例結(jié)束之后,磁盤(pán)存儲(chǔ)內(nèi)容還將繼續(xù)存在。大家可以隨后將其附加至其它設(shè)備。另外,如果大家不再需要這部分磁盤(pán)記錄,則可將其刪除。再有,我們能夠利用快照功能對(duì)磁盤(pán)內(nèi)容進(jìn)行重復(fù)數(shù)據(jù)刪除,甚至將其同時(shí)附加至多個(gè)虛擬機(jī)系統(tǒng)——但在這種情況,磁盤(pán)將處于只讀模式之下。
大家會(huì)在Google Cloud Engine當(dāng)中發(fā)現(xiàn)大量預(yù)構(gòu)建虛擬機(jī)選項(xiàng)——雖然其豐富程度仍然無(wú)法同Amazon以及Azure相提并論。
谷歌云服務(wù)中的一類新型方案,此選項(xiàng)允許大家利用谷歌自家的Kubernetes建立起虛擬機(jī)集群——這款工具旨在對(duì)抗已經(jīng)在市場(chǎng)上擁有廣泛支持的Docker容器技術(shù)。在這種情況下,各虛擬機(jī)都將由Compute Engine負(fù)責(zé)實(shí)現(xiàn)。
要使用這套系統(tǒng),大家需要對(duì)Kubernetes在Docker之外帶來(lái)的額外特性擁有充分的理解。大家可以將多個(gè)容器在pod上進(jìn)行處理,這種方式特別適合大量容器共享同一類資源的情況——例如使用同一塊本地磁盤(pán)。
而使用這些功能的具體成本取決于用戶實(shí)際運(yùn)行多少個(gè)Compute Engine實(shí)例。如果大家使用的節(jié)點(diǎn)數(shù)量不超過(guò)5個(gè),那么只需要為這些實(shí)例付費(fèi)即可。如果節(jié)點(diǎn)達(dá)到6個(gè)或者更多,那么每小時(shí)需要為每個(gè)節(jié)點(diǎn)支付15美分。
平臺(tái)與API
原始實(shí)例并非我們的惟一選項(xiàng)。App Engine是一套完全不同的解決方案,而且自剛剛誕生起就選擇了一條非常激進(jìn)的發(fā)展路線。相較于立足于操作系統(tǒng)構(gòu)建服務(wù)器體系并全部使用root權(quán)限,App Engine更像是一種計(jì)算助手。我們可以使用相對(duì)較少的代碼,而App Engine能夠自行完全其余工作。具體來(lái)講,谷歌方面會(huì)處理負(fù)載均衡器、服務(wù)器、操作系統(tǒng)乃至數(shù)據(jù)庫(kù)等負(fù)載,并最終根據(jù)應(yīng)答一條HTTP請(qǐng)求所占用的計(jì)算周期數(shù)量創(chuàng)建賬單。
這意味著我們能夠相當(dāng)輕松地建立起一款應(yīng)用程序。App Engine的首個(gè)版本只接受Python代碼。而如今,我們已經(jīng)可以上傳Java、PHP或者谷歌自己的Go語(yǔ)言代碼。谷歌公司的模板與庫(kù)擁有非常強(qiáng)大的解決能力。其標(biāo)準(zhǔn)方案能夠?qū)覦jango(Python)或者WordPress(PHP)等開(kāi)源框架,而后為其添加一系更擴(kuò)展。
其中最棘手的部分是重新審視我們的數(shù)據(jù)庫(kù)訪問(wèn)流程。大部分基礎(chǔ)開(kāi)源框架都會(huì)假定其能夠向本地磁盤(pán)進(jìn)行寫(xiě)入。App Engine當(dāng)然希望我們將數(shù)據(jù)寫(xiě)入至谷歌的Cloud SQL、Cloud Storage或者NoSQL Datastore當(dāng)中。這意味著App Engine能夠更為輕松地將用戶的應(yīng)用程序一次性擴(kuò)展到更多虛擬機(jī)當(dāng)中,因?yàn)楣雀璨幌M脩舯晃募到y(tǒng)的管理工作所束縛。
Google Cloud Platform的大部分神奇能力,外加其它一些有趣服務(wù),都能夠通過(guò)其開(kāi)放API實(shí)現(xiàn)。
App Engine可能是目前最理想的應(yīng)用構(gòu)建與運(yùn)行平臺(tái),因?yàn)槠湓谟脩襞c數(shù)據(jù)庫(kù)之間使用相對(duì)更“薄”的代碼層。(Snapchat就是目前最知名的App Engine成功案例之一。)某些應(yīng)用任務(wù)可能非常害怕服務(wù)停機(jī)——例如將圓周率計(jì)算到小數(shù)點(diǎn)后一百萬(wàn)位。而通過(guò)強(qiáng)制用戶使用其云存儲(chǔ)服務(wù),谷歌公司能夠?qū)ω?fù)載保留更多控制肋條。谷歌方面會(huì)將用戶的代碼牢牢控制在“安全限度”之內(nèi),當(dāng)然這一點(diǎn)也是可以具體磋商的——特別是在大家身為大型付費(fèi)客戶的情況下。
我們利用Cloud Engine進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí)的首選方案就是使用BigQuery,這是一套采用類SQL接口的純追加表。BIgQuery以日志為基礎(chǔ)并對(duì)在線數(shù)據(jù)進(jìn)行記錄,也就是人們常說(shuō)的“大數(shù)據(jù)”信息。谷歌公司正著手利用更多更為復(fù)雜的工具對(duì)這項(xiàng)功能進(jìn)行強(qiáng)化,例如Datalab,旨在以BigQuery數(shù)據(jù)存儲(chǔ)層為基礎(chǔ)提供圖形與分析層。大家將信息保存在BigQuery當(dāng)中,接下來(lái)App Engine實(shí)例以運(yùn)行Datalab代碼。Datalab的設(shè)計(jì)目的在于鼓勵(lì)不同用戶間的合作流程,并允許我們通過(guò)筆記本實(shí)現(xiàn)登錄。
最后,Google Cloud用戶最感興趣的另一大選項(xiàng)則是訪問(wèn)谷歌基礎(chǔ)設(shè)施并通過(guò)多種API享受特殊服務(wù)。目前提供的超過(guò)100種不同API允許大家隨意將負(fù)載交由谷歌資源打理。
舉例來(lái)說(shuō),我們可以相對(duì)輕松地允許應(yīng)用程序用戶利用自己的谷歌ID實(shí)現(xiàn)登錄。而翻譯API則能夠?qū)⑽谋緝?nèi)容在數(shù)十種自然語(yǔ)言之間隨意轉(zhuǎn)換。地圖API允許我們?cè)谧约旱木W(wǎng)站上添加地理位置信息。另外還有著預(yù)測(cè)API甚至對(duì)應(yīng)服務(wù)支持遺傳研究人員在生物實(shí)驗(yàn)室內(nèi)的工作。此類API選項(xiàng)還有很多很多。
我們可能最好把這些API視為獨(dú)立于Compute Engine之外的方案。我們根本用不著利用這些API將自己的代碼以本地方式運(yùn)行在谷歌數(shù)據(jù)中心之內(nèi),當(dāng)然這種作法能夠有效降低響應(yīng)時(shí)間。但需要強(qiáng)調(diào)的是,如果服務(wù)器端代碼需要訪問(wèn)該API,那么代碼必須在谷歌基礎(chǔ)設(shè)施內(nèi)運(yùn)行。不過(guò)如果大家的客戶端代碼需要提取一份地圖數(shù)據(jù),那么即使將服務(wù)器代碼托管在谷歌內(nèi)部也不會(huì)帶來(lái)更好的性能表現(xiàn)。
總之,選擇權(quán)掌握在大家手中。谷歌公司幾乎已經(jīng)設(shè)計(jì)出每一項(xiàng)服務(wù)并使其擁有獨(dú)立運(yùn)行能力。如果大家希望使用一套Compute Engine虛擬機(jī)但又需要利用自有硬件承載某些更為敏感的數(shù)據(jù),谷歌公司也樂(lè)于幫助各位通過(guò)其API采用部分強(qiáng)大服務(wù)??偠灾?,長(zhǎng)久以來(lái)支撐谷歌云順暢運(yùn)作的知識(shí)與經(jīng)驗(yàn)如今已經(jīng)可為大家所輕松利用。
原文鏈接:Review: Google Cloud flexes flexibility