2016-05-10 5 views
0

App Engine позволяет вам иметь несколько модулей в одном приложении. Я пытаюсь понять, в чем преимущества этого - наличие нескольких проектов App Engine.GAE: несколько модулей и несколько приложений

В моей ситуации, у меня есть три компонента

  • Задний концевой компонент, который делает всю обработку, сохраняет все данные, и доступен с REST API
  • Первый передний конец (например, , обработчики запросов) под первым доменным именем, которое, вероятно, не нуждается в его собственном хранилище данных
  • Второй компонент интерфейса под вторым доменным именем, который, вероятно, также не нуждается в его собственном хранилище данных.

Я использую несколько модулей или несколько приложений, связь между компонентами выполняется с использованием HTTP-запросов.

С модулями все модули используют один и тот же хранилище данных и memcache, но с разными проектами каждый из них будет иметь свой собственный memcache и хранилище данных. Я не думаю, что это имеет значение для меня, потому что только базовый компонент нуждается в хранилище данных.

Я склоняюсь к использованию отдельных приложений вместо отдельных модулей, потому что кажется, что у вас есть полное разделение.

Есть ли какая-то причина, по которой я должен отдавать предпочтение отдельным приложениям по сравнению с модулями или наоборот?

+0

против Appengine TOS использовать несколько приложений для одной и той же системы, если он может злоупотреблять бесплатной ежедневной квотой. –

ответ

1

Вопрос несколько основан на мнениях, но есть много причин использовать services (как они теперь известны) по отдельным проектам.

Вы ссылаетесь на основную причину в своем вопросе: общие внутренние службы. Хотя вы не думаете, что имеет значение, поскольку они , вероятно, не нуждаются в Datastore, я предпочел бы, что они могут понадобиться им в будущем, чем нет (и затем должны интегрироваться через HTTP-интерфейс вашего другого приложения вместо прямого хранилища данных RPC).

Используя различные услуг в том же проекте, Вы получаете выгоду от более простого доступа к другим сервисам Cloud Platform (например, BigQuery) через такие вещи, как учетные записи служб.

Вы также получаете такие услуги, как открытие службы через Modules Service. Если вы планируете развертывать отдельные проекты, App Engine не знает ваши проекты у меня.

При использовании отдельных проектов, вы получите почти так же, как разделение с использованием услуг, но отказываться от преимуществ выше.

Некоторые люди могут захотеть использовать отдельный проект, чтобы воспользоваться дополнительными 28 часами бесплатных часов, но это не было бы большой долгосрочной проектной целью для моей симпатии.

+1

Есть также недостатки в использовании сервисов. Например: если вы используете API канала, вы можете отправлять данные только на канал в основной службе, поэтому первичный модуль должен быть передним.Маршрутизация не работает для всего, и она вообще не работает на dev-сервере, поэтому разработка с помощью служб - это боль. Однако у вас будут проблемы с несколькими серверами. Я предполагаю, что все, что я хочу сказать, это то, что услуги не так хорошо интегрированы, как хотелось бы, они есть, имхо. – konqi

+0

Хорошая точка маршрутизации с сервером dev, и я забыл о ограничении API канала. – tx802

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