У меня есть приложение, работающее на 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 для уровня данных, для которого может потребоваться минимальное изменение кода. Хотя я также знаю, что, вероятно, есть некоторые важные вопросы, которые я не собираюсь задавать.
просто из любопытства, вы ждете, когда datastore пишет или читает? вы используете memcache и очередь задач? –
Кроме того, неясно, какой ответ вы ищете. Перед запуском веб-приложения с полным стеком? сколько хитов в день у вас есть? вам понадобится несколько веб-серверов? Вы ищете каркасные рекомендации или шаг за шагом о том, как разместить веб-приложение в целом? –