Приложения для Google App Engine можно использовать на других серверах?

Насколько переносимы приложения для Google App Engine? Навсегда ли они связаны с GAE?

Ответы

Ответ 1

Существует программное обеспечение, которое будет запускать приложения App Engine за пределами Google, двумя наиболее известными являются AppScale и TyphoonAE.

Ответ 2

Если вы не используете собственную структуру WebApp Google, но полагаетесь на более стандартизированные инструменты (я не говорю о Django здесь), есть только несколько причин, чтобы изолировать от основной логики приложения и сделать подключаемый /swappable:

  • это кажется наиболее раздражающей частью, но выполнимо, если вы не слишком сильно используете GQL (API-интерфейс хранилища данных похож на достаточно других ORM, доступных для Python, чтобы попробовать);
  • аутентификация, кажется, является легкой частью, но требует записи полного бэкэнда;
  • в кэш памяти, API-интерфейс memcache несколько отличается от Memcached (различия невелики, поэтому это должно быть простым, так как операции обеих систем идентичны);
  • При запуске приложения вам придется написать свой собственный запуск WSGI (довольно легко с Werkzeug).

По-моему - стоит попробовать.

Ответ 4

Как хороший консультант, я бы сказал, что ответ "зависит".

Прежде всего, вы всегда можете запустить проект GAE в SDK. Таким образом, вы не связаны. Помимо этого, это зависит от того, какие другие API вы используете. Библиотека webapp очень похожа на некоторые другие, но я не думаю, что она доступна как отдельная; однако GAE также поддерживает Django как веб-фреймворк, и, конечно же, он доступен отдельно.

Код - это просто Python. Но некоторые API-интерфейсы, такие как API данных, действительно предназначены для взаимодействия с облаком Google; вы не можете быть уверены, что можете переместить произвольную программу GAE на другую платформу без переделки.

Ответ 6

Если вы используете Django 0.96, вы можете переместить свой код на другой хост после некоторой незначительной работы. Вам нужно будет изменить порт ваших моделей из хранилища данных в другую базу данных. Вам придется прекратить использовать предоставленный Google пользовательский класс и, возможно, другие API-интерфейсы Google.

Я поместил приложения Django в GAE без особых проблем.

Ответ 7

Я разрабатываю для движка приложения (java) пару месяцев.
Теоретически, если вы придерживаетесь стандартов, таких как JPA или JDO для доступа к данным
и не используйте расширенные функции, такие как очереди задач, вам не должно быть много
проблема при переносе вашего приложения в другую среду.

Сказав это, я часто обнаруживаю, что использую низкоуровневую google-apis для доступа к хранилищу данных, чтобы избежать кошмарных проблем с производительностью. Побочные эффекты этой проблемы могут быть уменьшены до такой степени, если ваш дизайн приложения имеет модульный уровень доступа к данным.

В другой заметке, если у меня есть приложение, работающее плавно в приложении-движке, я не могу думать о какой-либо причине переместить его где-нибудь еще.