Я думаю о создании (первоначально) маленького веб-приложения, которое в конечном счете имело бы потенциал для роста. Учитывая все обстоятельства Google App Engine походит на очень привлекательную опцию. Скажите, база пользователей и сложность растут и для одной или другой причины, я должен был оставить GAE. Как трудный это должно было бы мигрировать далеко?
1) GAE позволяет экспортировать базу данных? Каково формат это было бы? Было бы трудно подвергнуть его MySQL (или подобный)?
2) В которых областях (напр. доступ к базе данных, другие?) я должен был бы использовать API GAE? Т.е. какие части реализации должны были бы быть абстрагированы далеко / соединенный интерфейсом?
Править: 3), С другой стороны, это даже стоит к краткому обзору далеко GAE API?
Для вопроса #1: Я не знаю, поддерживает ли GAE экспорт базы данных, но вы всегда можете сделать свой собственный, в худшем случае. Если вы окажетесь в положении, когда вам это понадобится, у вас, вероятно, будут ресурсы для этого.
Для вопроса #2: Вы можете и должны всегда инкапсулировать эти виды внешних зависимостей в любом случае. Не имеет значения, предоставляют они интерфейсы или нет. Связь с этими интерфейсами должна быть сведена к абсолютному минимуму.
На вопрос #3: Этот вопрос не совсем ясен, поэтому я не могу на него ответить.
Я говорю строго из веб-приложения java. точка зрения ...
Google App Engine для python имеет утилиту резервного копирования / восстановления: http://code.google.com/appengine/articles/gae_backup_and_restore.html
Там очень заинтересован в переносе этого на java-версию.
Вы можете использовать API стандартной базы данных более высокого уровня (JDO / JPS), чтобы вы могли убрать свое приложение от служб баз данных Google. Я предлагаю приобрести инструменты ядра данных, чтобы сгладить переход от больших таблиц к чему-то вроде mysql или oracle.
Пакетные сервисы, предоставляемые GAE, перечислены на странице http://code.google.com/appengine/docs/java/javadoc/
Стандартная JRE должна обрабатывать перенос urlfetch, mail и memcache api. Вам нужно будет найти альтернативную технологию для пакетов users, blobstore, xmpp и taskqueue.