2010-03-24 17 views
8

Sto pensando di creare un'applicazione Web (inizialmente) di piccole dimensioni, che potrebbe potenzialmente aumentare. Tutto considerato Google App Engine sembra un'opzione molto allettante. Supponiamo che la base di utenti e la complessità crescano e, per uno o l'altro motivo, avevo bisogno di lasciare GAE alle spalle. Quanto sarebbe difficile migrare?Quanto è difficile migrare lontano da Google App Engine?

1) GAE fornisce un modo per esportare il database? Che formato sarebbe? Sarebbe difficile metterlo sotto MySQL (o simili)?

2) In quali aree (ad esempio l'accesso al database, altre?) Dovrei utilizzare l'API GAE? Cioè quali parti dell'implementazione dovrebbero essere astratte/interfacciate?

Modifica: 3) In alternativa, vale la pena di astrarre le API GAE?

+0

Per la cronaca, non penso sia troppo difficile scrivere il proprio esportatore di DB ... –

+0

Ci sono così tanti punti decisionali che devi essere più specifico. A quale gusto di Google App Engine ti riferisci - python o java? Se java, quale API di database stai usando - JDO - JPA - BigTables nativo? – Stevko

risposta

4

Per la domanda n. 1: non so se il GAE supporta specificamente le esportazioni di un database ma è sempre possibile eseguire il proprio scenario peggiore. Se sei nella posizione di cui hai bisogno, probabilmente avrai anche le risorse per farlo.

Per la domanda n. 2: È possibile e dovrebbe sempre incapsulare comunque questi tipi di dipendenze esterne. Non importa se forniscono o meno interfacce. L'accoppiamento con tali interfacce dovrebbe essere ridotto al minimo.

Per la domanda n. 3: questa domanda non è davvero super-chiara, quindi non posso rispondere.

2

Sto parlando rigorosamente da un punto di vista java webapp ...

Google App Engine per Python ha un backup/restore utility: http://code.google.com/appengine/articles/gae_backup_and_restore.html

c'è un enorme interesse nel porting questo per il sapore java.

È possibile utilizzare l'apis di database standard di livello superiore (JDO/JPS) per consentire di spostare l'app dai servizi di database di Google. Suggerisco di acquistare gli strumenti dei nuclei di dati per facilitare il passaggio da tabelle grandi a qualcosa come mysql o oracle.

I servizi confezionati GAE fornisce sono enumerati al http://code.google.com/appengine/docs/java/javadoc/

Lo stock JRE dovrebbe gestire il porting del UrlFetch, posta e pacchetti api memcache. Dovrai trovare una tecnologia sostitutiva per i pacchetti user, blobstore, xmpp e taskqueue.