2009-12-14 16 views
9

Sto pensando di utilizzare Google App Engine. Sarà un sito enorme. In tal caso, qual è il tuo consiglio utilizzando Google App Engine. Ho sentito che GAE ha restrizioni come non possiamo archiviare immagini o file con un limite superiore a 1 MB (lo cambieranno da quello che ho letto nella GAE roadmap), la query è limitata a 1000 risultati e sto anche andando a vedere web2py con GAE . Quindi mi piacerebbe conoscere i tuoi commenti.Google App Engine è adatto a me?

Grazie

+0

dipende dalle tue esigenze ... – jldupont

+2

tutte le informazioni sono pubbliche ... quindi puoi fare di più che "sentirne parlare" ... tu può "leggere su di esso" anche ;-) – jldupont

+0

Hai in mente di fare una domanda? Ho usato GAE per un certo numero di progetti e mi piace molto, ma è un insieme di pesci completamente diverso dall'utilizzare uno stack LAMP. Suggerirei di giocarci e di farmi un'idea. – drxzcl

risposta

-11

Se state progettando su un sito web 'enorme', allora non usare App Engine. Semplice come quella. L'App Engine non è progettato per offrire il primo 1000 sito Web.

Consentitemi di chiedere anche cosa intendete per "enorme", quanti utenti simultanei? Query al secondo? Carico DB?

+3

Sono curioso di sapere cosa ti fa dire questo. Tutto il GAE è costruito per ridimensionare, scalare e ridimensionare, al costo di una certa complessità aggiuntiva. L'unico problema che vedo è che con il modello di prezzo di GAE pagherai per il naso o supererai le quote molto velocemente. Mi manca qualcosa? – drxzcl

+2

Mi piacerebbe saperne di più. Non sembra utile dire semplicemente che App Engine non è progettato per offrire il prossimo 1000 sito Web senza spiegare perché, soprattutto, quando la quantificazione di "enorme" è sconosciuta. – dtc

+11

App Engine è progettato esattamente per questo. –

3

L'AppEngine utilizza BigTable come back-end del datastore. Non provare a scrivere un'applicazione tradizionale basata su database relazionale. BigTable è molto più adatto per essere utilizzato come un archivio di valori-chiave altamente scalabile. Evitare i join se possibile.

2

Non mi preoccuperei di nulla di tutto questo. Dopo aver giocato con Google App Engine per un po 'di tempo, ho scoperto che si adatta abbastanza bene ai grandi set di dati. Se i tuoi elementi di dati sono di grandi dimensioni (ad esempio foto), dovrai integrarli con un altro servizio per gestirli, ma probabilmente ciò sarà vero indipendentemente dai dati di tale dimensione. Inoltre, ho trovato che BigTable è relativamente facile da lavorare con il fatto di provenire da uno sfondo interamente in database relazionali. Infine, Django è una "caratteristica" piuttosto nascosta, ma fantastica di Google App Engine. Se non l'hai mai usato, è un framework web davvero bello ed elegante che rende banali tanti compiti comuni (le forme vengono in mente qui).

+0

Dato che l'OP ha menzionato web2py, è abbastanza probabile che lui/lei già sappia molto su Django. IMO, web2py rende molte * altre * attività comuni banali persino di Django. –

+0

Buon punto, mi sono perso quel pezzettino. – Bialecki

8

Dopo aver sviluppato un sito piuttosto piccolo con GAE, ho alcuni pensieri

  • Se vuoi dire "enorme" come "il prossimo YouTube", quindi GAE potrebbe essere una grande misura, a causa del ridimensionamento accennato in precedenza .

  • Se si intende "enorme" come "enormemente complesso, con un gran numero di schermate, modelli e funzionalità", GAE potrebbe non essere una buona idea. Le cose come i test unitari sono difficili su GAE, e non c'è una struttura incorporata per la tua app che potresti ottenere con qualcosa come (notoriamente) (Ruby on) Rails, o (Python powered) Turbogears.

es .: non esiste un ambiente di staging: solo la copia di sviluppo del sistema e della produzione. Questo può o non può essere una cosa negativa, a seconda della situazione.

Inoltre, dipende dagli altri moduli Python che intendi inserire: alcuni moduli Python non funzionano su GAE (perché non puoi parlare con l'hardware, o perché ci sono troppi file nel pacchetto).

Spero che questo aiuti

+4

Non completamente vero per la gestione temporanea: è possibile distribuire una versione principale alternativa, verificarla, quindi impostarla live se funziona. –

+1

Nick ha ragione. Se ti stai chiedendo, puoi andare su "versioni" nel pannello di sinistra del dashboard dell'app. Lì puoi impostare quale versione vuoi "live". Puoi anche trovare gli URL per l'altra versione in modo da poterli testare prima di metterli in libertà nel mondo. – drxzcl

+1

E il testing delle unità non è poi così male nella mia esperienza con nosegae (http://code.google.com/p/nose-gae) e webtest (http://pythonpaste.org/webtest). –

5

utilizzando web2py su Google App Engine è una grande strategia. Ti consente di iniziare subito a correre e, se non superi le restrizioni di GAE, puoi spostare altrove la tua applicazione web2py.

Tuttavia, mantenere questa portabilità significa stare lontano dalle parti avanzate di GAE (code attività, transazioni, proprietà Elenco, ecc.).

+0

Ricorda che puoi usare la coda dei task con web2py (e infatti lo usa internamente per fare una sorta di keep-alive in modo che GAE memorizzi il codice web2py e serve le pagine più velocemente) ed è possibile utilizzare le transazioni di utilizzo per estenderle che GAE supporta (utilizzando il codice DAL web2py in GAE run_in_transaction). A volte per utilizzare alcune funzionalità DAL potrebbe essere necessario utilizzare l'API DAL rispetto all'API web2py. – mdipierro

+0

Buon punto sulla coda delle attività. Stavo pensando al mio caso d'uso in cui ho bisogno di post-processare i file caricati. – hoju

0

La mia unica preoccupazione sarebbe se per un sito Web enorme (che consuma molta larghezza di banda e CPU) se ospitarlo da soli non sarebbe più economico alla fine. (La domanda è quanto sono equi le quote di Google e se i prezzi sono competitivi ai massimi livelli.)

Oltre a questo, abilita la fatturazione e lascia che Google esegua tutto il ridimensionamento per te.

0

Che dire di Google Wave? Si sta costruendo su Appengine, e una volta che la chat traducibile in tempo reale raggiunge il settore aziendale ... Potrei vederlo arrivare al massimo 1000 ... Ma poi, di nuovo, questo è un progetto interno che può fare cose speciali che altre app appine possono '... come fili sospesi; Penso ... E qualsiasi altra cosa Wave ha sotto il cofano ...

+0

Non penso che Google Wave funzioni su App Engine. Tuttavia, è stato scritto con Google Web Toolkit (GWT). –