2009-04-06 4 views
12

Sono un principiante nello sviluppo di siti web di Django. Eseguo piccoli siti di discussione simili a SO.Google App Engine è migliore di Webfaction per un principiante in Django dev?

Ho un account su Bluehost che è stato un incubo nello sviluppo di Django. Ho scoperto che Webfaction e Google App Engine sembrano essere le scelte migliori per Django.

Tuttavia, non sono sicuro quale sia il migliore per me.

Google App Engine è migliore di Webfaction nella gestione di siti Web di piccole dimensioni?

+0

Webfaction e Google App Engine sono "le scelte migliori per Django "? Da quando? Trovo che il mio VPS abbia un lavoro straordinario con una flessibilità maggiore di quella offerta da WebFaction o GAE. – Oli

+2

Sì, ma i VPS sono molto più costosi degli host condivisi. Per una piccola app che utilizza WebFaction, puoi deprimere $ 102 oltre al costo di un dominio e sei buono per un anno. Anche un VPS economico costa il doppio per un piano simile. – LeafStorm

risposta

14

Webfaction:

Inoltre:

  1. Grande accesso alla shell. Possibilità di installare i moduli Python o qualsiasi altra cosa che potrebbe essere necessaria. Ti piacerà il check-out del codice sorgente dalla shell per aggiornare la tua produzione (non c'è più bisogno di FTPing!)
  2. Ottime prestazioni e affidabilità
  3. Grande supporto + ricchezza di informazioni sulla knowledge base di aiuto e nei forum. (DIMENTICARE bluehost o qualsiasi altra cosa tu abbia mai provato). Sono stato sorpreso dalla quantità di risposte che ho trovato a quelle che pensavo sarebbero state domande difficili.
  4. È possibile utilizzare il database regolare e si può fare join (vedi App Engine meno # 2)

Minus:

  1. Impostazione di distribuzione iniziale può essere un po 'complicato le prime volte in tutto (come ci si può aspettare dalla shell).
  2. Growing-scaling può essere costoso e probabilmente non sopravviverà beign "slashdotted"

App Engine

Inoltre:

  1. libero di iniziare con
  2. database iniziale è più facile da configurare.
  3. La distribuzione è un gioco da ragazzi
  4. Applicazione di "buoni" principi di progettazione dall'inizio che ti aiutano con # 5. (Come limiti rigidi, db denormalizzazione, ecc.)
  5. Scalabilità (ma questo non è gratuito - è necessario pensare al futuro).
  6. Nessuna manutenzione: backup automatici, sicurezza gratuita, registrazione + dashboard centralizzato, gli aggiornamenti software sono automatici.

Minus:

  1. Configurazione Django su App Engine non è così semplice, così come abituarsi a questa configurazione. Il framework webapp di google è debole.
  2. Il modello di database richiede un po 'di tempo per avvolgere la tua mente. Questo non è il server SQL della tua moma. Ad esempio devi denormalizzare il tuo DB dall'inizio e non puoi fare Joins (a meno che non siano self join)
  3. Le solite cose a cui sei abituato non sono sempre lì. Alcune cose come test e importazione di dati non sono più così facili.
  4. Sei legato a App Engine e la migrazione dei dati su un altro DB o server, mentre non impossibile, non è facile. (Non che tu faccia spesso migrazione di dati! Probabilmente mai)
  5. Limiti rigidi nelle richieste, risposte e dimensioni dei file (l'ultima volta che ho sentito parlare di 1MB).
  6. App Engine attualmente supporta solo Python 2.5.

Non riesco a pensare ad altro finora. Attualmente sono con Webfaction e sto testando anche App Engine. Non ho alcuna difficoltà ad andare da Django-Webfaction al modo di pensare di App-Engine. Tuttavia, non sono sicuro che l'installazione di AppEngine -> server standalone sia altrettanto semplice.

Riferimenti

Talks:

3

Non posso parlare per Google App Engine, ma come utente Django piuttosto recente ho recentemente trasferito il mio sito di sviluppo su un server WebFaction e devo dire che sono rimasto estremamente colpito. Sono estremamente amichevoli nei setup di Django (tra gli altri) e lo staff di supporto ha risposto prontamente a qualsiasi piccolo problema. Consiglierei sicuramente loro.

Per altri host di Django, controlla Djangofriendly.com.

2

Sono uno sviluppatore di Google App Engine, quindi non posso dire molto sulla webfaction, ma per quanto ho usato la configurazione di un'app Web con app-engine è piuttosto semplice¹. Il personale di supporto tuttavia non è abbastanza buono.

1- http://code.google.com/appengine/articles/django.html

+0

@Diones: Riesci a vedere i tuoi file Django nel terminale in Google App Engine? Mi piacerebbe vedere quali file sono nel mio progetto in Google App Engine nel terminale. –

+0

Per quanto ne so, no. Ma non ho mai provato. – Diones

+1

Ci sono librerie di visualizzatori di sorgenti che le persone hanno scritto. Ma App Engine non è il controllo del codice sorgente: se devi farlo, UR Doin It Wrong. –

1

La cosa da ricordare su GAE è che funziona in modo diverso rispetto un pitone installazione standard e le applicazioni che hai potrebbe non funzionare bene (o affatto) in tale ambiente. La più grande differenza è il database. Sebbene vi siano vantaggi per il database non relazionale disponibile con GAE, è necessario trattarlo in modo diverso e ci sono molte cose che il codice potrebbe aspettarsi che il database sia in grado di farlo.

Se stai partendo da zero su un'app, entrambe le piattaforme funzionerebbero bene. Se hai un'applicazione Python esistente, il suo funzionamento su GAE richiederà un notevole lavoro.

4

Se hai già scritto la tua applicazione django, potrebbe essere davvero difficile installarlo su Google App Engine, poiché dovrai adattare il tuo modello di dati. GAE utilizza una grande tabella, un archivio (chiave, dati) anziché un modello relazionale tradizionale. È ottimo per le prestazioni, ma rende la programmazione più difficile (ad esempio, non incorporano gestori di relazioni molti a molti).

Inoltre, la maggior parte delle app disponibili per django non funziona su GAE poiché queste app utilizzano il modello di dati relazionali. Il problema più ovvio è che la grande app di amministrazione di Django non funzionerà. Inoltre, GAE tende a farti utilizzare account Google per l'identificazione. Questo può essere aggirato, ma ancora una volta, non usando app django prontamente disponibili. Questo potrebbe essere ottimo per te, ma può essere una seccatura (ad esempio, molti nomi utente sono già stati presi su google).

Quindi, il mio ultimo consiglio è che, se sei un principiante, dovresti evitare GAE.

Se sei residente in Europa, djangohosting.ch è anche una buona scelta, invece della webfazione.

+0

È meglio usare un servizio di hosting che si trova in Europa se il mio target di riferimento è l'Europa? Quali sono i vantaggi di avere un host vicino ai miei clienti? –

+0

Avrai tempi di risposta migliori, per te, ma anche per i tuoi utenti. Prova ad accedere ai siti in Australia (siti universitari per esempio), sentirai il dolore. – madewulf

+0

@madewulf: Sai come si differenzia l'hosting tra Webfaction e djangohosting.ch? –

3

Un po 'in ritardo con la mia risposta, ma tuttavia ... Sono un principiante di Django e ho il mio first Django App installato e funzionante su GAE. Era lo App Engine Patch che lo faceva accadere. Usandolo hai l'admin di django e molte altre app disponibili già disponibili. Se vuoi provarlo, vai alla versione trunk. Questo progetto è ragionevolmente ben documentato e ha una community reattiva.

+0

@Alexander: le risposte eccellenti non sono mai troppo tardi :) Grazie per la risposta! –

+0

@Alexander: hai usato un codice Django esistente? Sembra che l'affermazione di Madewulf "la maggior parte delle app disponibili per Django non funzioneranno su GAE dato che queste app usano il modello di dati relazionali" non è più vera. –

+0

Ho codificato la mia app da solo. Madewulf ha ragione: trasferire l'app Django esistente su AE richiede uno sforzo, anche con l'aiuto di AEP. Basta guardare nel gruppo di discussione del progetto. Alcuni framework sono già stati portati e alcuni sono scritti da zero come http://gae-full-text-search.appspot.com/ dagli autori di AEP. Gli autori stanno per costruire un porto nativo di Django per AEP, vedere http://code.djopoproject.com/wiki/AppEngine Sfortunatamente, questo non è un compito a breve termine. –