I have built couple of client-side API mash-ups. I have only worked as an intern on a big (in terms of users) web application. I am planning to build a Django application on AWS for a large user base. Though I can build a quick prototype on Django, I just have no experience to learn from.<p>What are the common 'gotchas' in building a scalable application in Django on AWS? I intend to learn from industry experiences. Please tell your personal experience and give some pointers to blog posts or books.
Unless you're talking about a million concurrent users or something, Django actually scales pretty well for medium concurrency.<p>Here's some basic advice though
(1) Cache stuff. Django has a built-in cache framework, but sometimes I even cache stuff in the process (It's not best practice at all, mind you, and every pro will tell you to stay away from that)<p>(2) Use the ORM properly! For example, never do something like len(MyModel.objects.filter(arg='blah')) to do things like count entries or see if entries exist. Instead use .count() or .exists()<p>(3) Unless it's something complicated, I would just use something like Heroku. Easy to scale resources up and down as well as deploy. I typically use AWS S3 as my static host and Heroku as my Django host.
new relic (<a href="https://newrelic.com/" rel="nofollow">https://newrelic.com/</a>) + load testing with funkload has been helpful for me so far, but we shall see...