У меня есть приложение, работающее на AppEngine, которое использует около 50 часов процессора в день. Большая часть потрачена на ожидание хранилища данных.
Я планирую перенести его из AppEngine на что-то вроде Rackspace Cloud Servers, потому что я думаю, что мое приложение может быть более эффективным, если я смогу переложить часть работы в базу данных (плюс я могу добавить больше функций, которые было бы трудно внедрить в AppEngine).
Итак, как бы я переместил приложение AppEngine? Он разработан на основе веб-приложения и не использует много API Google, кроме хранилища данных. В идеале я мог бы сохранить код webapp и поменять классы db на что-то, что могло бы взаимодействовать с другой базой данных (MySQL или PostgreSQL, вероятно, предпочтительнее чего-то вроде CouchDB или MongoDB, но они тоже могут работать).
ОБНОВЛЕНИЕ: В ответ на комментарии ниже ...
Я запустил много веб-приложений раньше. Я не запускал приложения Python для производства. Я предполагаю, что настройка аспекта python / webserver довольно проста. Я надеюсь, что буду работать с такими серверами Rackspace Cloud, что это будет 1 «сервер», на котором я могу просто добавлять ресурсы по мере роста. В настоящее время мы делаем около 200 тыс. Просмотров в день.
Что касается оптимизации AppEngine, мы используем memcache там, где можем (не так много мест). Мы также используем Задачи, и хотя это помогает обойти тайм-ауты запросов, оно добавляет к используемым ресурсам.
Мой основной вопрос - хорошая альтернатива Python для слоя данных, который может потребовать наименьшего количества изменений кода. Хотя я также знаю, что, возможно, есть некоторые важные вопросы, которые я не собираюсь задавать.