views:

95

answers:

2

I'm about to start a new django project with friends. This project includes a website, API to mobile applications, clearing and billing, internationalization aspects etc...

What are the pros and cons for using Google App Engine vs. a regular web hosting solution?

Of course GAE documentation praises their support for django, but I would like to hear from people with first hand experience.

Here's a general discussion regarding pros\cons for GAE. I'm more interested in the details regarding django (and related libraries) support.

+1  A: 

Its free quotas are quite generous, so you wouldn't be paying anything until your website starts receiving a considerable amount of visits. Which makes it ideal for a project like yours, where you might not know whether it's going to be a success.

tomlog
+5  A: 

What sold me on Google App Engine vs hosting a Django app were the following points:

  1. No DB Admin: We didn't have to worry about administering and managing a database. This was super productive for a two man team.
  2. The Datastore Makes Sense: Given that we had no RDBMS experience, the GAE Datastore just made a lot of sense: It is a big hash table with transaction support. Definitely less complex -usage wise- than a traditional database.
  3. No Sysadmin Skills Needed: Not sure about you, but we did not have mad sysadmin skills. We just wrote a simple Python script that compressed our JavaScript and CSS and deployed. That was good enough.
  4. Easy Deployment and Versioning: The online interface allows you to test out a new version before making it the default. So if the new version breaks, you can easily roll to an older version.
  5. Easy Scalability: We enabled billing for up to $4 a day, which gave us a lot of CPU cycles and a huge email quota. We didn't have to worry about servers going down. Again, this give you peace of mind if you're a small team.

You also get easy access to cron, offline tasks and email. Oh, and you can also use Django's templating engine, which is one of my favorite bits of Django.

Cons:

  1. No FTP support: A lot of enterprises still use FTP. You can only make HTTP/S requrests with GAE, so you can't serve or upload FTP files.
  2. 3000 files per app: Your app cannot have more than that. But for the Python version, you can bundle up extra libraries in zip files and use zipserve to serve them. I usually also sprite up small images into one and compress JavaScript and CSS and lump them into one file each.
  3. No expensive calculations: All requests have to finish up in 30 seconds. But GAE gives you Cron and task queues, so if you need to do super expensive calculations, then you'll have to break them up.
  4. Only pure Python libraries: So you can't use cPickle for example.
  5. No legit image processing: They image processing API does provide a subset of PIL, but if you need to do heavy lifting you'd better take it outside (of GAE).

I would highly recommend GAE if you have a small team - which sounds like you do, and you do not like to mess around with configuring servers. .

Best of luck!

mahmoud
That's a good set of pros (albeit not django specific). Do you happen to know of cons too?
Jonathan
No legit image processing. Also, you can only use and upload libraries that are pure Python; so no cPickle for example. Other than that, it really is quite awesome.
mahmoud
@mahmoud - could you add the cons to the answer? Once you do I'll mark it as accepted.
Jonathan
Ok. I've organized the cons.
mahmoud