回答

246

App Engine是一個平臺即服務。這意味着您只需部署您的代碼,而平臺爲您執行其他任何操作。例如,如果您的應用程序非常成功,App Engine將自動創建更多實例來處理增加的音量。

Read more about App Engine

計算引擎是一個基礎設施作爲一種服務。您必須創建並配置您自己的虛擬機實例。它爲您提供更大的靈活性,通常成本比App Engine低得多。缺點是你必須自己管理你的應用程序和虛擬機。

Read more about Compute Engine

您可以混合使用這兩個App Engine和Compute Engine的,如果需要的話。他們都與Google Cloud Platform的其他部分很好地工作。

EDIT(2016 5月):

還有一個重要的區別:在App Engine上運行可以向下擴展至零種情況下,如果沒有請求進來的項目,這是在開發階段是非常有用的,你可以去幾周沒有超過實例小時的慷慨免費配額。靈活的運行時(即「託管VM」)需要至少一個實例不斷運行。

編輯(2017年4月):

雲功能(目前處於測試階段)是App Engine的下一級抽象的方面 - 沒有實例!它允許開發人員部署適合不同事件執行的一小段代碼,這些代碼可能包括HTTP請求,雲存儲中的更改等。

與App Engine最大的區別在於功能的價格是每100毫秒,而App Engine的實例僅在閒置15分鐘後關閉。另一個優點是雲功能立即執行,而對App Engine的調用可能需要一個新實例 - 而冷啓動新實例可能需要幾秒或更長時間(取決於運行時和代碼)。 (a)罕見調用 - 不需要保存實例以防萬一發生,(b)在實例經常旋轉和關閉的情況下快速更改負載,以及可能更多的用例。

Read more about Cloud Functions

+4

如果我想通過Docker部署,使用GAE和GCE之間有什麼區別(除了定價)? – FullStack

+1

嗨,Volgin,你能否詳細說明爲什麼「計算引擎」的成本遠低於App Engine的成本。謝謝 – fangzhzh

+12

App Engine提供了一種自動化水平(即便利性),您無法使用GCE。在使用GAE的5年中,我從來不需要安裝,修補或配置任何軟件,複製磁盤等。它還提供相對強大的負載和容量管理 - 根據需要自動啓動和關閉實例。總的來說,這些功能使Google可以在幾小時內收取更多費用,許多公司和個人開發人員都樂意支付這筆費用,因爲GAE節省了大量時間,可以更好地改進自己的應用程序或以其他方式賺錢。 –

44

簡單地說:計算引擎給你,你必須完全控制/責任的服務器。您可以直接訪問操作系統,並安裝所需的所有軟件,通常是網絡服務器,數據庫等等。

在應用程序引擎中,您不管理任何操作系統底層軟件。您只上傳代碼(Java,PHP,Python或Go),並且瞧 - 它只是運行...

應用程序引擎可以節省大量頭痛,特別是對於沒有經驗的人員,但它有2個顯着缺點: 1。更昂貴的(但它有一個免費的配額計算引擎不) 2.你有較少的控制,因此某些事情是不可能的,或者只能以一種特定的方式(例如保存和寫入文件)。

+2

您可以通過Docker將虛擬機部署到GAE,以便管理操作系統等。https://cloud.google.com/appengine/docs/managed-vms/ – FullStack

+0

「它只是運行」,您認真嗎?我認爲我不是唯一一個將代碼適配到GAE的問題,當涉及到文件上傳或後臺進程時 – emfi

57

基本區別在於Google App Engine (GAE)Platform as a Service (PaaS)Google Compute Engine (GCE)Infrastructure as a Service (IaaS)

要在GAE中運行您的應用程序,您只需編寫代碼並將其部署到GAE中即可,無需其他頭痛。由於GAE具有完全可擴展性,因此在流量更高時它將自動獲取更多實例,並在流量減少時自動減少實例。你將收取您真正使用的資源,我的意思是,你會被收取實例-小時傳輸的數據存儲等真正使用你的應用程序。但是限制是,你可以僅在Python,PHP,Java,NodeJS,.NET,Ruby和** Go中創建你的應用程序。

另一方面,GCE以虛擬機的形式爲您提供完整的基礎結構。您可以完全控制這些VM的環境和運行時,因爲您可以在那裏編寫或安裝任何程序。實際上,GCE是虛擬使用Google數據中心的方式。在GCE中,您必須通過使用負載均衡器手動配置您的基礎架構以處理可伸縮性

GAE和GCE都是Google Cloud Platform的一部分。

更新:在2014年3月谷歌宣佈在App Engine下的新服務名爲託管虛擬機。託管虛擬機爲應用程序引擎應用程序提供了比應用程序平臺,CPU和內存選項更多的靈活性。像GCE一樣,您可以在這些虛擬機中爲應用程序引擎應用程序創建自定義運行時環境。實際上App Engine的管理虛擬機在一定程度上模糊了IAAS和PAAS之間的邊界。

+1

在最後一段中混合了G * AE *和G * CE *嗎? – ojrask

+0

是的,我錯誤地寫了GCE作爲GAE。感謝您指出。現在已經糾正了。 –

+1

從他們的文檔中,您可以通過Docker將VM部署到GAE。 https://cloud.google.com/appengine/docs/managed-vms/ – FullStack

7

App Engine使開發人員能夠控制Google Compute Engine核心,併爲Google Compute Engine數據處理應用程序提供面向Web的前端。

另一方面,計算引擎提供了直接和完整的虛擬機操作系統管理。爲了呈現您的應用,您將需要資源,並且Google Cloud Storage非常適合存儲您的資產和數據,無論它們用於何種應用。您可以通過全球託管獲得快速的數據訪問。可靠性保證在99.95%的正常運行時間,而且Google還提供備份和恢復數據的能力,並且信不信由你,存儲是無限的。

您可以使用Google雲端存儲管理您的資產,存儲,檢索,顯示和刪除它們。您還可以快速讀取和寫入保存在雲存儲中的平面數據表。 Google Cloud陣容中的下一個是BigQuery。使用BigQuery,您可以分析海量數據,我們在幾秒鐘內就可以交談數百萬條記錄。訪問是通過一個簡單的用戶界面或具象狀態傳輸或REST界面來處理的。

正如您可能會懷疑的那樣,數據存儲不是問題,可擴展到數百TB。 BigQuery可通過大量客戶端庫訪問,包括Java,.NET,Python,Go,Ruby,PHP和Javascript。可以通過這些客戶端庫或通過Web用戶界面訪問稱爲NoSQL的類似SQL的語法。最後,讓我們談談Google Cloud平臺數據庫選項,雲端SQL和雲數據存儲。

有一個主要的區別。雲SQL適用於關係數據庫,主要是MySQL,而云數據存儲適用於使用noSQL的非關係​​數據庫。藉助Cloud SQL,您可以選擇在美國,歐洲或亞洲託管,存儲容量爲100 GB,每個數據庫實例的RAM爲16 GB。

雲數據存儲可免費獲得,每月最多存儲50 K讀/寫指令,每月存儲1 GB數據。但是,如果您超過這些配額,則會收取費用。 App Engine還可以與谷歌雲平臺上其他鮮爲人知的更有針對性的成員合作,包括用於創建API後端的Cloud Endpoints,用於數據分析和趨勢預測的Google Prediction API或用於多語言輸出的Google Translate API。

雖然您可以自行爲App Engine做相當數量的工作,但當您將其Google雲平臺服務與其他Google雲平臺服務一起輕鬆高效地進行工作時,潛力可能會很大。

11

或者使它更簡單(因爲有時我們不能GAE標準和GAE的Flex區分):

的Compute Engine類似於一個虛擬PC,在那裏你會部署一個小網站+數據庫,例如。您管理所有內容,包括控制已安裝的磁盤驅動器。如果您部署網站,則需要負責設置DNS等。

Google App Engine(標準)就像是一個只讀的沙盒文件夾,您可以在其中上傳代碼以執行並不必擔心其餘(是:只讀)。 DNS/Sub-domains等非常容易映射。

Google App Engine(Flexible)實際上就像一個完整的文件系統(不僅僅是一個鎖定的文件夾),其中你比標準引擎有更多的權力。你有讀/寫權限(但與計算引擎相比較少)。在GAE標準中,您爲您安裝了一組固定的庫,您不能隨意部署第三方庫。在靈活的環境中,您可以安裝應用程序依賴的任何庫,包括自定義構建環境(如Python 3)。儘管Google標準聽起來很簡單(儘管谷歌聽起來很簡單),但它在承受壓力時能很好地擴展。這很麻煩,因爲您需要測試並確保與鎖定環境的兼容性,並確保您使用的任何第三方庫不使用任何其他您不知道的第三方庫,這些庫可能不適用於GAE標準。在實踐中設置它需要更長的時間,但對於簡單部署而言,長期運行可能會更有價值。