2010-02-07 2 views
12

У меня есть приложение, работающее на AppEngine, которое использует около 50 часов процессора в день. Большая часть из них проводится в ожидании хранилища данных.Миграция AppEngine

Я размышляю о переносе его с AppEngine на что-то вроде Rackspace Cloud Servers, потому что я считаю, что мое приложение может быть более эффективным, если я могу разгрузить часть работы в базу данных (плюс я могу добавить больше функций, которые будут сложны для реализации на AppEngine).

Итак, как я могу переместить приложение AppEngine? Он разработан с использованием платформы webapp и не использует многие API Google, отличные от хранилища данных. В идеале я мог бы сохранить код webapp и обменять классы db на то, что будет говорить с другой базой данных (MySQL или PostgreSQL, вероятно, предпочтительнее чего-то вроде CouchDB или MongoDB, но они тоже могут работать).

ОБНОВЛЕНИЕ: В ответ на комментарии ниже ... До этого я запускал множество веб-приложений. Раньше я не запускал приложения для производства python. Я предполагаю, что настройка аспект python/webserver довольно проста. Моя надежда на то, что вы используете что-то вроде серверов Rackspace Cloud, состоит в том, что это будет 1 «сервер», который я могу просто добавить в ресурсы, пока мы будем расти. В настоящее время мы делаем около 200 тыс. Хитов в день.

Что касается оптимизаций AppEngine, мы используем memcache, где можем (не много мест). Мы также используем Tasks, и, хотя это помогает обойти тайм-ауты запроса, оно добавляет к используемым ресурсам.

Мой основной вопрос - хорошая альтернатива python для уровня данных, для которого может потребоваться минимальное изменение кода. Хотя я также знаю, что, вероятно, есть некоторые важные вопросы, которые я не собираюсь задавать.

+0

просто из любопытства, вы ждете, когда datastore пишет или читает? вы используете memcache и очередь задач? –

+0

Кроме того, неясно, какой ответ вы ищете. Перед запуском веб-приложения с полным стеком? сколько хитов в день у вас есть? вам понадобится несколько веб-серверов? Вы ищете каркасные рекомендации или шаг за шагом о том, как разместить веб-приложение в целом? –

ответ

9

Если вы можете перераспределить до appscale, вам не придется переписывать какой-либо код вашего App Engine.

+0

Я думаю, это путь. У меня создалось впечатление, что структура webapp существует вне AppEngine, но похоже, что она была просто на основе web.py. В то время как appscale кажется мне немного взломанным, он обеспечивает путь миграции, который позволит переписывать медленно или по мере необходимости. Спасибо. –

+0

@Jackson, вы можете повторно использовать код в SDK, чтобы начать (это, как мне кажется, сделали люди, работающие над приложениями), учитывая эту лицензию с открытым исходным кодом и гибкую архитектуру «заглушек и крючков», но почему бы не воспользоваться преимуществами работу, которую они уже сделали? Особенно на уровне данных, где они имеют несколько адаптеров для различных систем хранения. Не уверен, что это такое, что вы обманываете об этом (хотя я думаю, что SO-комментарии - не лучший форум для обсуждения этого ;-). ((Отказ от ответственности: я не имею никакого отношения к appscale, но я работаю в Google и имею много друзей в команде appengine ;-)). –

1

Вы можете использовать TyphoonAE, который основан на SDK, и предназначен для небольших и средних масштабов развертывания - например, отдельных серверов для небольших кластеров - и его следует довольно легко настроить.

Извините, что увидели.

+0

Ну, теперь я должен хотя бы увидеть, как новый релиз 1.3.1 меняет вещи :) –

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