Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Google App Engine better than Webfaction for a beginner in Django dev? [closed]

I am a beginner in developing websites by Django. I run small discussion websites similar to SO.

I have an account at Bluehost which has been a nightmare in developing by Django. I have found that Webfaction and Google App Engine seems to be the best choices for Django.

However, I am not sure which one is the best for me.

Is Google App Engine better than Webfaction in running small websites?

like image 496
Léo Léopold Hertz 준영 Avatar asked Apr 06 '09 17:04

Léo Léopold Hertz 준영


3 Answers

Webfaction:

Plus:

  1. Great shell access. Ability to install python modules, or anything else you might need. You will love checking out source code from shell to update your production (no need for FTPing anything anymore!)
  2. Very good performance and reliability
  3. Great support + wealth of info on help knowledge base and in the forums. (FORGET bluehost or anything else you ever tried). I was surprised by amount of answers I found to what I thought would be difficult questions.
  4. You can use regular database and you can do joins (see app engine minus #2)

Minus:

  1. Setting up initial deployment can be a bit tricky the first few times around (as is to be expected from shell).
  2. Growing-scaling can be expensive and you probably will not survive beign "slashdotted"

App Engine

Plus:

  1. Free to start with
  2. Initial database is easier to setup.
  3. Deployment is a breeze
  4. Enforcement of "good" design principles from the start which help you with #5. (Such as hard limits, db denormalizing etc)
  5. Scalability (but this does not come free - you need to think ahead).
  6. No maintanence: auto backups, security comes for free, logging + centralized dashboard, software updates are automatic.

Minus:

  1. Setting up Django on App Engine is not so straightforward, as well as getting used to this setup. The webapp framework from google is weak.
  2. Database model takes a little bit of time to wrap your head around. THis is not your moma's SQL server. For example you have to denormalize your DB from the start, and you cannot do Joins (unless they are self joins)
  3. The usual things you are used to are not always there. Some things such as testing and data-importing are not that easy anymore.
  4. You are tied down to App Engine and migrating your data to another DB or server, while not impossible, is not easy. (Not that you do data migration that often! Probably never)
  5. Hard limits in requests, responses and file sizes (last time I heard about 1MB).
  6. App Engine currently supports Python 2.5 only.

Can't think of anything else so far. I am currently with Webfaction and am testing App Engine as well. I have no difficulty going from Django-Webfaction to App-Engine way of thinking. However, I am not sure if the AppEngine -> Standalone servers route would be just as easy.

References

Talks:

  • Guido on Google App Engine http://www.youtube.com/watch?v=CmyFcChTc4M
  • Task Queues in App Engine: http://www.youtube.com/watch?v=o3TuRs9ANhs
like image 134
Andriy Drozdyuk Avatar answered Nov 13 '22 16:11

Andriy Drozdyuk


I can't speak for Google App Engine, but as a rather recent Django user myself I recently moved my development site over to a WebFaction server and I must say I was extremely impressed. They are extremely friendly to Django setups (among others) and the support staff answered any small problems I had promptly. I would definitely recommend them.

For other Django-friendly hosts, check out Djangofriendly.com.

like image 3
Paolo Bergantino Avatar answered Nov 13 '22 16:11

Paolo Bergantino


If you have already written your django application, it may be really difficult to install it on Google App Engine, since you will have to adapt your data model. GAE uses big table, a (key,data) store, instead of a traditional relational model. It is great for performance but makes your programming more difficult (no built in many-to-many relationship handlers, for example).

Furthermore, most apps available for django will not work on GAE since these apps use the relational data model. The most obvious problem is that the great admin app of django will not work. Furthermore, GAE tends to make you use google accounts for identification. This can be circumvented but again, not using readily available django apps. This could be great for you, but it can be a hassle (for example, lots of user names are already taken at google).

So, my final advice is that, if you are a beginner, you should avoid GAE.

If you are based in Europe, djangohosting.ch is also a good choice, instead of webfaction.

like image 3
madewulf Avatar answered Nov 13 '22 16:11

madewulf