Ответ 1
Существует программное обеспечение, которое будет запускать приложения App Engine за пределами Google, двумя наиболее известными являются AppScale и TyphoonAE.
Насколько переносимы приложения для Google App Engine? Навсегда ли они связаны с GAE?
Существует программное обеспечение, которое будет запускать приложения App Engine за пределами Google, двумя наиболее известными являются AppScale и TyphoonAE.
Если вы не используете собственную структуру WebApp Google, но полагаетесь на более стандартизированные инструменты (я не говорю о Django здесь), есть только несколько причин, чтобы изолировать от основной логики приложения и сделать подключаемый /swappable:
По-моему - стоит попробовать.
Вы можете использовать gae2django для преобразования приложений AppEngine в приложение Django.
Как упоминалось в этой статье http://code.google.com/appengine/articles/pure_django.html
gae2django http://code.google.com/p/django-gae2django/
Как хороший консультант, я бы сказал, что ответ "зависит".
Прежде всего, вы всегда можете запустить проект GAE в SDK. Таким образом, вы не связаны. Помимо этого, это зависит от того, какие другие API вы используете. Библиотека webapp очень похожа на некоторые другие, но я не думаю, что она доступна как отдельная; однако GAE также поддерживает Django как веб-фреймворк, и, конечно же, он доступен отдельно.
Код - это просто Python. Но некоторые API-интерфейсы, такие как API данных, действительно предназначены для взаимодействия с облаком Google; вы не можете быть уверены, что можете переместить произвольную программу GAE на другую платформу без переделки.
У меня мало практического опыта GAE, но я недавно читал эту статью, которая затрагивает ваш вопрос:
http://waxy.org/2008/04/exclusive_google_app_engine_ported_to_amazons_ec2/
Если вы используете Django 0.96, вы можете переместить свой код на другой хост после некоторой незначительной работы. Вам нужно будет изменить порт ваших моделей из хранилища данных в другую базу данных. Вам придется прекратить использовать предоставленный Google пользовательский класс и, возможно, другие API-интерфейсы Google.
Я поместил приложения Django в GAE без особых проблем.
Я разрабатываю для движка приложения (java) пару месяцев.
Теоретически, если вы придерживаетесь стандартов, таких как JPA или JDO для доступа к данным
и не используйте расширенные функции, такие как очереди задач, вам не должно быть много
проблема при переносе вашего приложения в другую среду.
Сказав это, я часто обнаруживаю, что использую низкоуровневую google-apis для доступа к хранилищу данных, чтобы избежать кошмарных проблем с производительностью. Побочные эффекты этой проблемы могут быть уменьшены до такой степени, если ваш дизайн приложения имеет модульный уровень доступа к данным.
В другой заметке, если у меня есть приложение, работающее плавно в приложении-движке, я не могу думать о какой-либо причине переместить его где-нибудь еще.