Можно ли использовать приложения для Google App Engine на других серверах? - PullRequest
15 голосов
/ 25 января 2009

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

Ответы [ 7 ]

13 голосов
/ 19 февраля 2011

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

5 голосов
/ 13 февраля 2009

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

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

На мой взгляд - стоит попробовать.

3 голосов
/ 07 февраля 2009

Вы можете использовать gae2django для преобразования приложений AppEngine в приложение Django.

Как уже упоминалось в этой статье http://code.google.com/appengine/articles/pure_django.html

gae2django http://code.google.com/p/django-gae2django/

2 голосов
/ 25 января 2009

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

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

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

1 голос
/ 26 января 2009

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

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

1 голос
/ 25 января 2009

У меня мало практического опыта работы с GAE, но я недавно читал эту статью, которая затрагивает ваш вопрос:
http://waxy.org/2008/04/exclusive_google_app_engine_ported_to_amazons_ec2/

0 голосов
/ 05 января 2010

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

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

С другой стороны, если у меня есть приложение, работающее гладко на app-engine, я не могу думать о какой-либо причине, чтобы переместить его куда-либо еще.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...