Feedback sull'utilizzo di Google App Engine? [chiuso]


125

Cercando di realizzare un progetto laterale molto piccolo, veloce e sporco. Mi piace il fatto che Google App Engine sia in esecuzione su Python con Django integrato - mi dà una scusa per provare quella piattaforma ... ma la mia domanda è questa:

Qualcuno ha fatto uso del motore dell'app per altro che un problema con i giocattoli? Vedo alcune buone app di esempio là fuori, quindi suppongo che questo sia abbastanza buono per il vero affare, ma volevo ottenere un feedback.

Qualsiasi altra nota di successo / fallimento sarebbe ottima.


8
dovrebbe essere wiki della comunità
SilentGhost il

Risposte:


63

Ho provato il motore dell'app per la mia piccola applicazione per l'orologio di terremoto http://quakewatch.appspot.com/

Il mio scopo era vedere le funzionalità del motore delle app, quindi ecco i punti principali:

  1. non viene fornito di default con Django, ha un proprio framework web che è pitone ha un dispatcher di URL come Django e usa modelli Django Quindi se hai Django exp. lo troverai facile da usare
  2. Non è possibile eseguire alcun processo di lunga durata sul server, quello che fai è rispondere alla richiesta e che dovrebbe essere veloce altrimenti l'appengine lo ucciderà Quindi se la tua app ha bisogno di molti processi di elaborazione back-end non è il modo migliore altrimenti dovrai fare l'elaborazione su un server tuo
  3. La mia app quakewatch ha una funzione di abbonamento, significa che ho dovuto inviare per e-mail gli ultimi terremoti mentre accadono, ma non posso eseguire un processo in background nel motore di app per monitorare la nuova soluzione di terremoti qui è utilizzare un servizio di terze parti come pingablity.com che può connettiti a una delle tue pagine e che esegue l'e-mail di abbonamento ma anche qui dovrai fare attenzione a non passare molto tempo qui o a dividere l'attività in più parti
  4. Offre funzionalità di modellazione simili a Django ma il backend è totalmente diverso ma per un nuovo progetto non dovrebbe importare.

Ma nel complesso penso che sia eccellente per la creazione di app che non richiedono molta elaborazione in background.

Modifica: ora le code delle attività possono essere utilizzate per eseguire l'elaborazione batch o le attività pianificate

Modifica: dopo aver lavorato / creato una vera applicazione su GAE per un anno, ora la mia opinione è che a meno che tu non stia creando un'applicazione che deve scalare a milioni e milioni di utenti, non usi GAE. Mantenere e svolgere attività banali in GAE è un mal di testa a causa della natura distribuita, per evitare la scadenza superata di errori, contare le entità o fare query complesse richiede un codice complesso, quindi un'applicazione piccola e complessa dovrebbe attenersi a LAMP.

Modifica: i modelli devono essere appositamente progettati tenendo conto di tutte le transazioni che si desidera avere in futuro, poiché le entità solo nello stesso gruppo di entità possono essere utilizzate in una transazione e rende il processo di aggiornamento di due gruppi diversi un incubo, ad esempio trasferire denaro da utente1 a utente2 nella transazione è impossibile a meno che non si trovino nello stesso gruppo di entità, ma renderle dello stesso gruppo di entità potrebbe non essere la soluzione migliore per frequenti aggiornamenti .... leggi questo http://blog.notdot.net/2009/9/Distributed-Transactions- on-App-Engine


6
Ora il processo batch può essere eseguito su GAE
Anurag Uniyal,

2
Controlla anche la nuova API Python della coda attività nei documenti App-Engine.
Jason Rikard il

11
Molte di queste informazioni sono obsolete - Django 0.96 è ora integrato in GAE dal 17 luglio 2009.
Ine

3
Djanjo 1.0.x è ora incluso anche in GAE. Puoi scegliere quale revisione di Django desideri.
Laurent,

5
Solo un altro aggiornamento, Django 1.1 è ora disponibile con GAE e versioni precedenti.
SingleNegationElimination,

36

Sto usando GAE per ospitare diverse applicazioni ad alto traffico. Come nell'ordine di 50-100 req / sec. È fantastico, non posso raccomandarlo abbastanza.

La mia precedente esperienza con lo sviluppo web è stata con Ruby (Rails / Merb). Imparare Python è stato facile. Non ho fatto confusione con Django o Pylons o qualsiasi altro framework, ho appena iniziato dagli esempi GAE e ho creato ciò di cui avevo bisogno dalle librerie webapp di base fornite.

Se sei abituato alla flessibilità di SQL, l'archivio dati può richiedere un po 'di tempo per abituarsi. Niente di troppo traumatico! La più grande regolazione si sta allontanando dai JOIN. Devi abbandonare l'idea che la normalizzazione è cruciale.

Ben


23

Uno dei motivi convincenti che ho riscontrato per l'utilizzo di Google App Engine è la sua integrazione con Google Apps per il tuo dominio. Fondamentalmente ti consente di creare applicazioni web gestite e personalizzate che sono limitate agli accessi (controllati) del tuo dominio.

La maggior parte della mia esperienza con questo codice è stata la creazione di una semplice applicazione di tracciamento tempo / attività. Il motore del modello era semplice e tuttavia ha reso molto accessibile un'applicazione multipagina. L'API di sensibilizzazione accesso / utente è altrettanto utile. Sono stato in grado di creare un paradigma di pagina pubblica / pagina privata senza troppi problemi. (un utente accederebbe per vedere le pagine private. A un utente anonimo veniva mostrata solo la pagina pubblica.)

Stavo entrando nella parte del datastore del progetto quando sono stato portato via per "lavoro reale".

Sono stato in grado di realizzare molto (ancora non è ancora stato fatto) in pochissimo tempo. Dato che non avevo mai usato Python prima, questo era particolarmente piacevole (sia perché era un nuovo linguaggio per me, sia perché lo sviluppo era ancora veloce nonostante il nuovo linguaggio). Mi sono imbattuto in ben poco che mi ha portato a credere che non sarei in grado di svolgere il mio compito. Invece ho un'impressione abbastanza positiva della funzionalità e delle caratteristiche.

Questa è la mia esperienza con esso. Forse non rappresenta altro che un progetto giocattolo incompiuto, ma rappresenta una prova informata della piattaforma, e spero che ti aiuti.


Quasi identico alla mia situazione - a parte il "lavoro reale", ma comunque qualcosa che devo fare e avere funzionale alla fine.
agartzke,

Anch'io. Inoltre, il grande vantaggio è che l'installazione dell'ambiente di sviluppo è un gioco da ragazzi (stai programmando entro un minuto). Stessa cosa per le distribuzioni.
Jilles,

12

L'idea "App Engine running Django" è un po 'fuorviante. App Engine sostituisce l'intero livello del modello Django, quindi preparati a passare un po 'di tempo ad abituarti al datastore di App Engine che richiede un modo diverso di modellare e pensare ai dati.


Un buon punto: sembra che per impostazione predefinita riprenda il modello di Django, ma non necessariamente il resto.
agartzke,

7

Ho usato GAE per costruire http://www.muspy.com

È un po 'più di un progetto giocattolo ma non troppo complesso. Dipendo ancora da alcuni problemi che Google dovrà affrontare, ma lo sviluppo del sito Web è stato nel complesso un'esperienza piacevole.

Se non vuoi occuparti di problemi di hosting, amministrazione del server, ecc., Lo consiglio vivamente. Soprattutto se conosci già Python e Django.


7

Penso che App Engine sia piuttosto interessante per i piccoli progetti a questo punto. C'è molto da dire per non doversi preoccupare dell'hosting. L'API ti spinge anche nella direzione della creazione di app scalabili, il che è una buona pratica.

  • app-engine-patch è un buon livello tra Django e App Engine, che consente di utilizzare l'app di autenticazione e altro ancora.
  • Google ha promesso uno SLA e un modello di prezzi entro la fine del 2008.
  • Le richieste devono essere completate in 10 secondi, le richieste secondarie ai servizi Web devono essere completate in 5 secondi. Ciò ti costringe a progettare un'applicazione veloce e leggera, scaricando l'elaborazione seria su altre piattaforme (ad esempio un servizio ospitato o un'istanza EC2).
  • Altre lingue arriveranno presto! Google non dirà che però :-). I miei soldi sono su Java dopo.

a febbraio 2009 molte delle limitazioni di cui sopra sono state attenuate.
Husayt,

3
Se qualcuno può modificare questa risposta, sarebbe bello riflettere che Java è davvero la prossima lingua disponibile.
JasonSmith,

1
@jhs Il tuo commento lo fa bene!
pomeriggio

E ora è supportata anche la lingua Go!
davewasthere,

6

A questa domanda è stata data una risposta completa. Che è buono. Ma forse vale la pena menzionare una cosa. Il motore dell'app di Google ha un plug-in per l'ide di eclissi che è una gioia lavorare con.

Se fai già il tuo sviluppo con Eclipse, ne sarai così felice.

Per eseguire la distribuzione sul sito Web del motore dell'app Google, tutto quello che devo fare è fare clic su un piccolo pulsante - con il logo dell'aeroplano - super.


4

Dai un'occhiata al gioco sql , è molto stabile e in realtà ha spinto i limiti del traffico a un certo punto in modo che fosse strozzato da Google. Non ho visto altro che buone notizie su App Engine, oltre a ospitare la tua app su server controllati da qualcun altro.


Il gioco sql è passato da Google App Engine a un server privato.
systempuntoout il

4

Ho usato GAE per creare una semplice applicazione che accetta alcuni parametri, formati e invia e-mail. È stato estremamente semplice e veloce. Ho anche fatto alcuni benchmark delle prestazioni sul datastore GAE e sui servizi memcache ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). Non è così veloce. La mia opinione è che GAE sia una piattaforma seria che impone una certa metodologia. Penso che si evolverà in una piattaforma veramente scalabile, dove le cattive pratiche semplicemente non sono ammesse.


4

Ho usato GAE per il mio sito di giochi flash, Bearded Games . GAE è un'ottima piattaforma. Ho usato modelli Django che sono molto più facili rispetto ai vecchi tempi di PHP. Viene fornito con un ottimo pannello di amministrazione e ti dà registri davvero buoni. Il datastore è diverso da un database come MySQL, ma è molto più facile da lavorare. Costruire il sito è stato facile e diretto e hanno molti consigli utili sul sito.


3

Ho usato GAE e Django per creare un'applicazione di Facebook. Ho usato http://code.google.com/p/app-engine-patch come punto di partenza in quanto ha il supporto Django 1.1. Non ho provato a usare nessuno dei comandi manage.py perché ho pensato che non avrebbero funzionato, ma non ci ho nemmeno guardato dentro. L'applicazione aveva tre modelli e utilizzava anche il pyfacebook, ma questa era l'estensione della complessità. Sto costruendo un'applicazione molto più complicata di cui sto iniziando a scrivere un blog su http://brianyamabe.com .


Ho iniziato a utilizzare manage.py per eseguire il server e anche per eseguire alcuni test unitari. L'esecuzione del server funziona correttamente, ma poiché la mia applicazione funziona come app di Facebook non è poi così utile (ho bisogno di un server ospitato a cui fa riferimento Facebook). Anche il test unitario ha funzionato e ha funzionato anche con i dispositivi. Tuttavia, non sono stato in grado di far funzionare gli apparecchi che facevano riferimento ad altri modelli. Non ho ancora capito se si tratta di un problema con il mio dispositivo o un problema con l'app-engine-patch.
byamabe,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.