views:

187

answers:

5

what is the best system to run django on, operating sysyem, database, web server etc considering robustness, simplicity, maintence cost, maintence reliability, pricing, upgrades for the application and upgrade of the django and other system component

any body knows?

+1  A: 

The Google App Engine hits most of your requirements, mainly those about costs, maintenance, robustness and reliability. However that does not imply it is the best platform to run Django on, but it is one option for you.

If you want to consider this option, you may want to start by checking out the following:

Daniel Vassallo
+2  A: 

I'll lay my head on the chopping block and suggest, that, probably, Apache with mod_wsgi for django and some other web server (lighttpd?) for static content, would be the most generic solution.

There are lots of options besides this one, Google App Engine being one of them, though, all of them are specific to the application you are going to deploy and the way it is going to be used.

shylent
+1: Apache, mod_wsgi, MySQL. Works for us.
S.Lott
Funny, that I had completely forgotten to mention the database backend :P I guess it is the way, that django makes you forget about it (if you are not using engine-specific stuff). In fact, everything I've written using django so far, was prototyped using a sqlite3 backend and then reconfigured to use a "real" database server with no changes in source code whatsoever.
shylent
+1  A: 

It should be stressed that Google App Engine is fundamentally different from a typical Django environment. This issue differs from a "Debian vs some other distro", "PostGre vs MySQL" or "lighttpd vs nginx" type choice since choosing App Engine most probably will require you to write code specific to it or make modifications in your existing code base.

You should look at what Google AppEngine provides and requires (and what not) and consider whether App Engine is suitable for your application. It might be an uneasy u-turn if you see that App Engine is not the correct choice after you are halfway through.

shanyu
I agree 100% - However I thought that GAE could fit as an answer, mainly because the OP asked about costs, maintenance, robustness and reliability... but not about flexibility, issues with portability, vendor lock-in, etc.
Daniel Vassallo
I agree that GAE qualifies as a valid answer. Nevertheless I wanted to inform OP that there are important issues lurking beyond his question's scope.
shanyu
A: 

It's impossible to tell which is the best system to run Django on, but IMO: if you anticipate lot's of pageviews, go with nginx/lighttpd for webserver instead of Apache if you don't need those fancy Apache modules.

However, since I'm used to apache, it was faster for me to configure the site to run on Apache and switch to nginx when performance problems occured.

fest
+5  A: 

I recommend:

  • Nginx to serve static content, and proxy requests to Apache
  • Apache + mod_wsgi to run Django
  • PostgreSQL as a database
  • Debian/Ubuntu, they have great python packages

Here is a deployment guide with all these.

Tobu
Apache/mod_wsgi is about the only way to serve WSGI apps in production that ISN'T a major pain to set up.
LeafStorm