Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google App Engine pros\cons for Django?

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.

like image 677
Jonathan Livni Avatar asked Aug 25 '10 11:08

Jonathan Livni


People also ask

What are the advantages of Google App Engine over Amazon EC2?

"Quick and reliable cloud servers", "Scalability" and "Easy management" are the key factors why developers consider Amazon EC2; whereas "Easy to deploy", "Auto scaling" and "Good free plan" are the primary reasons why Google App Engine is favored.

Which programming environment is used for Google App Engine?

The App Engine standard environment is based on container instances running on Google's infrastructure. Containers are preconfigured with one of several available runtimes. The standard environment makes it easy to build and deploy an application that runs reliably even under heavy load and with large amounts of data.


2 Answers

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!

like image 120
mahmoud Avatar answered Oct 11 '22 10:10

mahmoud


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.

like image 29
Tom van Enckevort Avatar answered Oct 11 '22 10:10

Tom van Enckevort