Django, вероятно, не лучший выбор, если вы уверены, что GAE вам подходит. Сильные стороны этих двух технологий не очень хорошо сочетаются - вы полностью теряете большую часть прекрасного орма Django в GAE, и, если вы все же используете его, вы пишете код, который не совсем подходит для bigtable и того, как работает GAE.
Особенность GAE в том, что он обеспечивает отличную масштабируемость, заставляя вас писать код, который легко масштабируется с нуля. Вы просто не можете делать ряд вещей, которые плохо масштабируются (конечно, вы все равно можете написать плохо масштабируемый код, но вы избежите некоторых подводных камней). Компромисс заключается в том, что вы действительно заканчиваете кодирование вокруг фреймворка, если вы используете что-то вроде Django, разработанного для другой среды.
Если вы видите, что когда-либо покидаете GAE по какой-либо причине, значит, инвестируя в инфраструктуру, вы столкнетесь с проблемой. Кодирование для bigtable означает, что будет труднее перейти на другую архитектуру (хотя проект apache пытается решить эту проблему за вас с помощью компонента HBase проекта Hadoop). По-прежнему потребуется много работы для перехода от GAE.
Что является движущей силой использования GAE, помимо того, что это продукт Google и классное модное слово? Есть ли причина, по которой масштабирование с использованием чего-то вроде предложения mediatemple вряд ли сработает для вас? Вы уверены, что способы масштабирования GAE подходят для вашего приложения? Какова стоимость по сравнению с выделенными серверами, если вы рассчитываете достичь этой области производительности? Можете ли вы решить свою проблему с помощью инструментов, которые предоставляет GAE, по сравнению с более традиционной настройкой сервера с балансировкой нагрузки?
Все это говорит о том, что, если вам абсолютно не нужно граничное масштабирование, которое предлагает GAE, я лично предлагаю не позволять этой конкретной службе структурировать ваш выбор фреймворка. Мне нравится Django, поэтому я бы сказал, что вы должны использовать его, но не в GAE.
Изменить (июнь 2010 г.): в
качестве обновления этого комментария когда-нибудь позже: Google анонсировал sql-подобные возможности для GAE, которые не бесплатны, но позволят вам легко выполнять такие действия, как запуск команд в стиле SQL для создания отчетов по вашим данным.
Кроме того, в языке запросов GAE есть предстоящие изменения, которые сделают сложные запросы намного проще. Посмотрите видео с Google I / O 2010.
Кроме того, в рамках проекта Summer of Code 2010 ведется работа, которая должна обеспечить поддержку no-sql в ядре django и, как следствие, значительно упростить работу с GAE.
GAE становится все более привлекательной в качестве хостинговой платформы.
Изменить (август 2011 г.):
А Google просто значительно повысил стоимость платформы для большинства пользователей, изменив структуру ценообразования. Проблема блокировки стала лучше (если ваше приложение достаточно велико, вы можете развернуть альтернативы apache), но для большинства приложений запуск серверов или развертывание VPS обходится дешевле.
У очень немногих людей действительно есть проблемы с большими данными. «О, мой стартап может когда-нибудь масштабироваться» - это не проблема больших данных. Создавайте вещи прямо сейчас и выпускайте их, используя стандартные инструменты.