2017-02-20 11 views
0

Я запутался в этих трех разных конструкциях в облаке Google и попытался понять, как они сочетаются друг с другом.Модули Google Cloud vs namespaces vs services

Во-первых, из того, что я прочитал, «модули» - это просто старое название для «услуг»? Так что все, что я читал о «облачных» модулях Google, также относится к услугам?

Используете ли вы пространства имен и сервисы/модули вместе, или они вообще взаимоисключающие?

Это хороший пример того, как использовать эти вещи вместе:

  • кладу общих ресурсов (хранение, DBS и т.д.) в «пространстве имен» и таким образом несколько модулей/услуги могут осуществлять доступ к ним. «Любой запрос в приложении Engine может обращаться к любому пространству имен», поэтому ресурсы пространств имен связаны их контейнером проекта.
  • Создать «услуги», которые имеют доступ к ресурсам
  • пространств имён
  • Все это в одном «проект», который используется в качестве среды (так что я есть «Dev» и проект «Prod»

ответ

1

Право, услуги и модули то же самое Обратите внимание на фактический путь URL-адреса внутри этой цитаты из App Engine Services as microservices:.

В проекте App Engine, вы можете использовать несколько microservices в отдельный services, ранее известный как модули в App Engine.

Namespaces поддерживаются 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 Я бы придерживался, как вы уже упоминаете, использования отдельных проектов для этого (также для изоляции данных).

Смежные вопросы