2017-02-20 62 views
0

我對谷歌雲中的這三種不同結構感到困惑,並試圖瞭解它們是如何融合在一起的。谷歌雲模塊vs命名空間與服務

首先,從我讀過的「模塊」只是「服務」的舊名稱吧?因此,我讀到的有關谷歌雲「模塊」的任何內容也適用於服務?

您是否在一起使用命名空間和服務/模塊,或者它們通常是互斥的?

這是如何使用這些東西放在一起一個很好的例子:

  • 把我的共享資源(存儲,星展銀行等)在「命名空間」和這樣多個模塊/服務能夠訪問它們。 「任何App Engine請求都可以訪問任何名稱空間」,所以名稱空間資源被其項目容器綁定。
  • 創建訪問命名空間資源
  • 所有這一切都是在被用作環境中的單個「項目」,「服務」(所以我有一個「開發」和「刺」項目

回答

1

權,服務和模塊是相同的東西注意從App Engine Services as microservices這句話裏面的實際URL路徑:

在App Engine的項目,可以部署多個微服務作爲 獨立services,以前稱爲App Engine中的模塊

命名空間是由just a few APIs支持服務可以調用:

的App Engine目前支持以下API命名空間:

他們真的只是一種獨立/片份額)通過這些API提供的數據,可以幫助防止在命名空間邊界數據意外泄漏。見例如Implementing Multitenancy Using Namespaces。但請注意,保護功能與應用程序代碼一樣好(如果代碼設置錯誤的名稱空間,數據將會泄漏)。

服務不提供數據隔離,通過在調用各自的API時適當地設置命名空間,它們可以共享數據,而不管它是否位於命名空間中。所以它不會將數據放置在使得數據可以跨服務共享的名稱空間中。

項目邊界適用於名稱空間和服務。但可以配置API和項目,以允許跨項目邊界(甚至可以從Google網絡外部訪問 - 例如,請參閱How do I use Google datastore for my web app which is NOT hosted in google app engine?

使用服務的主要目的是獲取代碼隔離。但它帶有一個價格 - 每個服務都有自己的實例。還有一點難度:文檔甚至工具往往有點落後,其中許多人假設單服務GAE應用上下文。

即使使用服務創建環境作爲Naming Developer Environments中的替代方法提供,我仍然堅持使用單獨的項目(也有數據隔離)。