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