share
Stack OverflowHas Django served an excess of 100k daily visits?
[+1222] [29] Roee Adler
[2009-05-20 05:07:55]
[ python django web-applications scalability ]
[ https://stackoverflow.com/questions/886221/has-django-served-an-excess-of-100k-daily-visits ]

I'm building a web application with Django. The reasons I chose Django were:

Now that I'm getting closer to thinking about publishing my work, I start being concerned about scale. The only information I found about the scaling capabilities of Django is provided by the Django team (I'm not saying anything to disregard them, but this is clearly not objective information...).

Has an independent development team reported building a Django-based site that reliably handles an excess of 100k daily visits?

(2) If you haven't already, I recommend reading the section on scaling in The Django Book: djangobook.com/en/1.0/chapter20 Or the newer version: djangobook.com/en/2.0/chapter12 - monkut
(16) Might want to fix "speed was the main factor" to clarify if you're talking about execution speed or development effort. It sounds like development effort, which makes sense. - S.Lott
Maybe OT, but you can use pypy to speed up django. - pevik
(6) @ajkumar25, AFAIK disqus uses django blog.disqus.com/post/62187806135/…. - alekosot
yes, it can! Django is developed for scalable projects. - Maria Irudaya Regilan J
(2) It's interesting that this question has the highest number of up votes for Django on SO. After all these years and improvements Django has made, it seems it still has a reputation of not being scalable. - Daniel Holmes
you should read stackoverflow.com/a/891041/1371778 answer its not about framework or language its about architecture facebook/flickr use php and Instagram/pinterest use django and uber use all - Saurabh Chandra Patel
[+991] [2009-05-20 07:41:16] Van Gale [ACCEPTED]
  1. "What are the largest sites built on Django today?"

    There isn't any single place that collects information about traffic on Django built sites, so I'll have to take a stab at it using data from various locations. First, we have a list of Django sites on the front page of the main Django project page [1] and then a list of Django built sites at djangosites.org [2]. Going through the lists and picking some that I know have decent traffic we see:

  2. "Can Django deal with 100,000 users daily, each visiting the site for a couple of hours?"

    Yes, see above.

  3. "Could a site like Stack Overflow run on Django?"

    My gut feeling is yes but, as others answered and Mike Malone mentions in his presentation, database design is critical. Strong proof might also be found at www.cnprog.com if we can find any reliable traffic stats. Anyway, it's not just something that will happen by throwing together a bunch of Django models :)

There are, of course, many more sites and bloggers of interest, but I have got to stop somewhere!


Blog post about Using Django to build high-traffic site michaelmoore.com [22] described as a top 10,000 website [23]. Quantcast stats [24] and compete.com stats [25].


(*) The author of the edit, including such reference, used to work as outsourced developer in that project.

[1] http://www.djangoproject.com/
[2] http://www.djangosites.org/
[3] http://instagram.com
[4] http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances
[5] http://pinterest.com/
[6] http://www.alexa.com/siteinfo/Pinterest.com
[7] http://bitbucket.org/
[8] https://blog.bitbucket.org/2015/02/05/bitbucket-2014-in-review/
[9] http://disqus.com
[10] http://pyvideo.org/video/418/pycon-2011--disqus--serving-400-million-people-wi
[11] http://curse.com/
[12] http://www.quantcast.com/curse.com
[13] http://tabblo.com/
[14] http://www.quantcast.com/tabblo.com
[15] http://nedbatchelder.com/blog/200902/infrastructure_for_modern_web_sites.html
[16] http://chesspark.com/
[17] http://www.alexa.com/siteinfo/chesspark.com
[18] http://pownce.com/
[19] http://www.alexa.com/siteinfo/pownce.com
[20] http://www.slideshare.net/road76/scaling-django
[21] http://www.eprintcenter.com
[22] http://web.archive.org/web/20130307032621/http://concentricsky.com/blog/2009/oct/michaelmoorecom
[23] http://www.alexa.com/siteinfo/http%3A%2F%2Fmichaelmoore.com
[24] http://www.quantcast.com/michaelmoore.com
[25] http://siteanalytics.compete.com/michaelmoore.com/

Hey, those numbers don't indicate direct Django use; many big companies use a range of frameworks; if you take most fortune 500 companies, they are using everything; but that's because they use it in many different teams and areas of the company; no necessarily the central front. - Oliver Dixon
You could add YouTube to the list too - Robo
1
[+287] [2009-05-20 11:16:35] S.Lott

We're doing load testing now. We think we can support 240 concurrent requests (a sustained rate of 120 hits per second 24x7) without any significant degradation in the server performance. That would be 432,000 hits per hour. Response times aren't small (our transactions are large) but there's no degradation from our baseline performance as the load increases.

We're using Apache front-ending Django and MySQL. The OS is Red Hat Enterprise Linux (RHEL). 64-bit. We use mod_wsgi in daemon mode for Django. We've done no cache or database optimization other than to accept the defaults.

We're all in one VM on a 64-bit Dell with (I think) 32Gb RAM.

Since performance is almost the same for 20 or 200 concurrent users, we don't need to spend huge amounts of time "tweaking". Instead we simply need to keep our base performance up through ordinary SSL performance improvements, ordinary database design and implementation (indexing, etc.), ordinary firewall performance improvements, etc.

What we do measure is our load test laptops struggling under the insane workload of 15 processes running 16 concurrent threads of requests.


(3) Also curious: is your DB running on the same machine, or a separate server? - Jarret Hardie
(19) One VM with Apache, Django and MySQL. mod_wsgi. RHEL. - S.Lott
(1) You make a good point - if you think of your website traffic as a queue, then how many responses can you serve per hour? If you keep the response time short, you can serve more, and so have 'greater scalability' - it doesn't really matter if you use Django, Twisted, Rails or technology from the planet Zod. - Ralph Bolton
(4) I've worked with Django for years, and I've never seen this kind of performance in anything other than a toy app that's mostly read-only. What is the nature of the your application? Anything with templates or middleware or sessions or database connectivity is never going to support 120 hits per second without a massive amount of caching to bypass all of that. - Cerin
(2) i think number 432,000 is misleading. its totaly depend on what you are doing with that user request - Saurabh Chandra Patel
I think server design also plays a role. There are multiple dynamics. Not just concurrent users. - Parth Joshi
2
[+184] [2010-08-01 12:03:20] Neil

Not sure about the number of daily visits but here are a few examples of large Django sites:

Here is a link to list of high traffic Django sites on Quora [19].

[1] http://disqus.com/
[2] http://djangocon.blip.tv/file/4135225/
[3] http://bitbucket.org
[4] https://web.archive.org/web/20110521024332/http://code.djangoproject.com/wiki/DjangoSuccessStoryBitbucket
[5] http://lanyrd.com/
[6] http://lanyrd.com/colophon/
[7] http://support.mozilla.com/
[8] https://github.com/mozilla/kitsune
[9] https://addons.mozilla.org/
[10] https://github.com/mozilla/addons-server
[11] http://python.mirocommunity.org/video/1866/djangocon-2010-switching-addon
[12] http://www.theonion.com/
[13] http://www.reddit.com/r/django/comments/bhvhz/the_onion_uses_django_and_why_it_matters_to_us
[14] http://www.guardian.co.uk/
[15] http://www.guardian.co.uk/info/developer-blog/2011/feb/08/computing-apps
[16] http://instagr.am/
[17] https://pinterest.com
[18] http://www.rdio.com/
[19] http://www.quora.com/Django/What-is-the-highest-traffic-website-built-on-top-of-Django

3
[+110] [2009-11-16 04:00:13] jacobian

What's the "largest" site that's built on Django today? (I measure size mostly by user traffic)

In the US, it was Mahalo [1]. I'm told they handle roughly 10 million uniques a month. Now, in 2019, Mahalo is powered by Ruby on Rails.

Abroad, the Globo [2] network (a network of news, sports, and entertainment sites in Brazil); Alexa ranks them in to top 100 globally (around 80th currently).

Other notable Django users include PBS, National Geographic, Discovery, NASA (actually a number of different divisions within NASA), and the Library of Congress.

Can Django deal with 100k users daily, each visiting the site for a couple of hours?

Yes -- but only if you've written your application right, and if you've got enough hardware. Django's not a magic bullet.

Could a site like StackOverflow run on Django?

Yes (but see above).

Technology-wise, easily: see soclone [3] for one attempt. Traffic-wise, compete pegs StackOverflow at under 1 million uniques per month. I can name at least dozen Django sites with more traffic than SO.

[1] http://mahalo.com/
[2] http://globo.com/
[3] http://code.google.com/p/soclone/

(2) Can you please estimate approximate price for 5000 hits per second, assuming its like linkedin, using Django. Assume an average programmer has built the site and ofcourse added caching. Assume that algorithms etc(to make things fast) not used as I donno them yet. - user2349115
(10) @user2349115 by the time your application gets 5000 'hits per second' you'll have enough background knowledge to understand why that's the wrong question to ask. - Kye
My ninjas (wrappalyzer browser extension) say that mahalo is ruby on rails powered now in March 2019. - Manuel Fedele
4
[+87] [2009-05-21 01:36:22] razenha

Scaling Web apps is not about web frameworks or languages, is about your architecture. It's about how you handle you browser cache, your database cache, how you use non-standard persistence providers (like CouchDB [1]), how tuned is your database and a lot of other stuff...

[1] http://couchdb.apache.org/

(2) Web framework do matter! Look how fast tornado compared to other python webframework: tornadoweb.org/documentation#performance - Joshua Partogi
(1) I didn't downvote, but I suppose you went a little off the topic as they where discussing the merits of django and you cannot use every database, tune your database and use couchdb at its max in every given framework. Unless you don't, of course, rewrite big chunks of it. - ZJR
(9) @ZLR i don't believe I went off-topic. He asked if Django can scale, I said yes, because almost all modern web frameworks, regardless the language, can scale if you use the right architectural approach - razenha
(1) Yeah, blocking vs nonblocking IO does matter, as per the Tornado example. Although having said that, Tornado's not a web framework, but your application will need to be written in a way that takes advantage of nonblocking IO. - Rob Grant
With Tornado it's very easy to write blocking IO code. And that doesn't give hight concurrency. Framework actually doesn't matter. - Shiplu Mokaddim
5
[+82] [2009-05-20 06:33:46] Paolo Bergantino

Playing devil's advocate a little bit:

You should check the DjangoCon 2008 Keynote [1], delivered by Cal Henderson [2], titled "Why I hate Django" where he pretty much goes over everything Django is missing that you might want to do in a high traffic website. At the end of the day you have to take this all with an open mind because it is perfectly possible to write Django apps that scale, but I thought it was a good presentation and relevant to your question.

[1] http://www.youtube.com/watch?v=i6Fr65PFqfk
[2] http://en.wikipedia.org/wiki/Cal_Henderson

(4) Also, Flickr wasn't built in a day. - Deniz Dogan
(37) It appears that several of the issues Cal harped on are now standard features: docs.djangoproject.com/en/dev/topics/db/multi-db - Dolph
6
[+53] [2009-05-20 05:22:37] Bayard Randel

The largest django site I know of is the Washington Post [1], which would certainly indicate that it can scale well.

Good design decisions probably have a bigger performance impact than anything else. Twitter is often cited as a site which embodies the performance issues with another dynamic interpreted language based web framework, Ruby on Rails - yet Twitter engineers have stated that the framework isn't as much an issue as some of the database design choices they made early on.

Django works very nicely with memcached and provides some classes for managing the cache, which is where you would resolve the majority of your performance issues. What you deliver on the wire is almost more important than your backend in reality - using a tool like yslow is critical for a high performance web application. You can always throw more hardware at your backend, but you can't change your users bandwidth.

[1] http://www.washingtonpost.com/

(1) Isn't only part of washingtonpost.com run on Django? The Django frontpage seems to indicate it's only projects.washingtonpost.com/congress - Xiong Chiamiov
(3) You are perhaps confusing the Washington Post with the Washington Times. I believe the Times is all on Django, but it is a much smaller paper. - Eli
7
[+32] [2009-05-20 06:27:28] Daniel Roseman

I was at the EuroDjangoCon conference the other week, and this was the subject of a couple of talks - including from the founders of what was the largest Django-based site, Pownce (slides from one talk here [1]). The main message is that it's not Django you have to worry about, but things like proper caching, load balancing, database optimisation, etc.

Django actually has hooks for most of those things - caching, in particular, is made very easy.

[1] http://immike.net/files/scaling_django.pdf

8
[+26] [2009-05-20 05:23:35] jess

I'm sure you're looking for a more solid answer, but the most obvious objective validation I can think of is that Google pushes Django for use with its App Engine [1] framework. If anybody knows about and deals with scalability on a regular basis, it's Google. From what I've read, the most limiting factor seems to be the database back-end, which is why Google uses their own...

[1] http://en.wikipedia.org/wiki/Google_App_Engine

Promoting Django/Python may be more related to Google's policy of promoting Python as its choice of 'Other' language after C++? - GuruM
When I had to use GAE, it was pretty close to something like Tornado... - Luis Masuelli
9
[+20] [2016-01-21 15:14:58] Mushahid Khan

As stated in High Performance Django Book [1] and Go through this Cal Henderson [2]

See further details as mentioned below:

It’s not uncommon to hear people say “Django doesn’t scale”. Depending on how you look at it, the statement is either completely true or patently false. Django, on its own, doesn’t scale.

The same can be said of Ruby on Rails, Flask, PHP, or any other language used by a database-driven dynamic website.

The good news, however, is that Django interacts beautifully with a suite of caching and load balancing tools that will allow it to scale to as much traffic as you can throw at it.

Contrary to what you may have read online, it can do so without replacing core components often labeled as “too slow” such as the database ORM or the template layer.

Disqus serves over 8 billion page views per month. Those are some huge numbers.

These teams have proven Django most certainly does scale. Our experience here at Lincoln Loop backs it up.

We’ve built big Django sites capable of spending the day on the Reddit homepage without breaking a sweat.

Django’s scaling success stories are almost too numerous to list at this point.

It backs Disqus, Instagram, and Pinterest. Want some more proof? Instagram was able to sustain over 30 million users on Django with only 3 engineers (2 of which had no back-end development

[1] https://highperformancedjango.com/
[2] https://www.youtube.com/watch?v=i6Fr65PFqfk

10
[+18] [2016-04-25 15:32:16] Arun V Jose

Today we use many web apps and sites for our needs. Most of them are highly useful. I will show you some of them used by python or django.

Washington Post [1]

The Washington Post’s website is a hugely popular online news source to accompany their daily paper. Its’ huge amount of views and traffic can be easily handled by the Django web framework. Washington Post - 52.2 million unique visitors (March, 2015)

NASA [2]

The National Aeronautics and Space Administration’s official website is the place to find news, pictures, and videos about their ongoing space exploration. This Django website can easily handle huge amounts of views and traffic. 2 million visitors monthly

The Guardian [3]

The Guardian is a British news and media website owned by the Guardian Media Group. It contains nearly all of the content of the newspapers The Guardian and The Observer. This huge data is handled by Django. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

YouTube [4]

We all know YouTube as the place to upload cat videos and fails. As one of the most popular websites in existence, it provides us with endless hours of video entertainment. The Python programming language powers it and the features we love.

DropBox [5]

DropBox started the online document storing revolution that has become part of daily life. We now store almost everything in the cloud. Dropbox allows us to store, sync, and share almost anything using the power of Python.

Survey Monkey [6]

Survey Monkey is the largest online survey company. They can handle over one million responses every day on their rewritten Python website.

Quora [7]

Quora is the number one place online to ask a question and receive answers from a community of individuals. On their Python website relevant results are answered, edited, and organized by these community members.

Bitly [8]

A majority of the code for Bitly URL shortening services and analytics are all built with Python. Their service can handle hundreds of millions of events per day.

Reddit [9]

Reddit is known as the front page of the internet. It is the place online to find information or entertainment based on thousands of different categories. Posts and links are user generated and are promoted to the top through votes. Many of Reddit’s capabilities rely on Python for their functionality.

Hipmunk [10]

Hipmunk is an online consumer travel site that compares the top travel sites to find you the best deals. This Python website’s tools allow you to find the cheapest hotels and flights for your destination.

Click here for more: 25-of-the-most-popular-python-and-django-websites [11], What-are-some-well-known-sites-running-on-Django [12]

[1] https://www.washingtonpost.com/
[2] https://www.nasa.gov/
[3] http://www.theguardian.com/international
[4] https://www.youtube.com/
[5] https://www.dropbox.com/
[6] https://www.surveymonkey.com/
[7] https://www.quora.com/
[8] https://bitly.com/
[9] https://www.reddit.com/
[10] https://www.hipmunk.com/
[11] https://www.shoop.io/en/blog/25-of-the-most-popular-python-and-django-websites/
[12] https://www.quora.com/What-are-some-well-known-sites-running-on-Django

11
[+16] [2012-01-10 21:29:53] Milind

I think we might as well add Apple's App of the year for 2011, Instagram [1], to the list which uses django intensively.

[1] http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of

12
[+12] [2009-05-20 05:24:22] coulix

Yes it can. It could be Django with Python or Ruby on Rails. It will still scale.

There are few different techniques. First, caching is not scaling. You could have several application servers balanced with nginx as the front in addition to hardware balancer(s). To scale on the database side you can go pretty far with read slave in MySQL / PostgreSQL if you go the RDBMS way.

Some good examples of heavy traffic websites in Django could be:

  • Pownce [1] when they were still there.
  • Discus (generic shared comments manager)
  • All the newspaper related websites: Washington Post and others.

You can feel safe.

[1] http://en.wikipedia.org/wiki/Pownce

(2) Just sayin... dead social networks make a bad scalability example :) - ZJR
(3) I don't think the Pownce dead is related to a scalability issue. - Kedare
13
[+9] [2009-11-16 18:51:51] mazelife

Here's a list of some relatively high-profile things built in Django:

  1. The Guardian's " Investigate your MP's expenses [1]" app

  2. Politifact.com (here's a Blog post [2] talking about the (positive) experience. Site won a Pulitzer.

  3. NY Times' Represent [3] app

  4. EveryBlock [4]

  5. Peter Harkins, one of the programmers over at WaPo, lists all the stuff they’ve built with Django [5] on his blog

  6. It's a little old, but someone from the LA Times gave a basic overview [6] of why they went with Django.

  7. The Onion's AV Club was recently moved from (I think Drupal) to Django.

I imagine a number of these these sites probably gets well over 100k+ hits per day. Django can certainly do 100k hits/day and more. But YMMV in getting your particular site there depending on what you're building.

There are caching options at the Django level (for example caching querysets and views in memcached [7] can work wonders) and beyond (upstream caches like Squid [8]). Database Server specifications will also be a factor (and usually the place to splurge), as is how well you've tuned it. Don't assume, for example, that Django's going set up indexes properly. Don't assume that the default PostgreSQL [9] or MySQL [10] configuration is the right one.

Furthermore, you always have the option of having multiple application servers running Django if that is the slow point, with a software or hardware load balancer in front.

Finally, are you serving static content on the same server as Django? Are you using Apache or something like nginx [11] or lighttpd [12]? Can you afford to use a CDN [13] for static content? These are things to think about, but it's all very speculative. 100k hits/day isn't the only variable: how much do you want to spend? How much expertise do you have managing all these components? How much time do you have to pull it all together?

[1] http://mps-expenses.guardian.co.uk/
[2] http://www.mattwaite.com/posts/2007/aug/22/announcing-politifact/
[3] http://prototype.nytimes.com/represent/
[4] http://www.everyblock.com/
[5] http://push.cx/2009/washington-post-update
[6] http://www.poynter.org/column.asp?id=52=150818
[7] http://en.wikipedia.org/wiki/Memcached
[8] http://en.wikipedia.org/wiki/Squid_%28software%29
[9] http://en.wikipedia.org/wiki/PostgreSQL
[10] http://en.wikipedia.org/wiki/MySQL
[11] http://en.wikipedia.org/wiki/Nginx
[12] http://en.wikipedia.org/wiki/Lighttpd
[13] http://en.wikipedia.org/wiki/Content_delivery_network

14
[+9] [2010-01-26 02:00:18] orokusaki

The developer advocate for YouTube gave a talk about scaling Python at PyCon 2012 [1], which is also relevant to scaling Django.

YouTube has more than a billion users [2], and YouTube is built on Python.

[1] https://www.youtube.com/watch?v=G-lGCC4KKok
[2] https://www.youtube.com/yt/press/statistics.html

(4) But youtube is not built with django. Python might be fast, but not so for django. - Joshua Partogi
(4) Yea, but the point was that as Django grows, it's sitting on a good foundation for speed re factoring and with Google out there working on projects like Unladen Swallow, it'll just get better. - orokusaki
15
[+7] [2009-09-29 01:27:05] Krystian Cybulski

I have been using Django for over a year now, and am very impressed with how it manages to combine modularity, scalability and speed of development. Like with any technology, it comes with a learning curve. However, this learning curve is made a lot less steep by the excellent documentation from the Django community. Django has been able to handle everything I have thrown at it really well. It looks like it will be able to scale well into the future.

BidRodeo Penny Auctions [1] is a moderately sized Django powered website. It is a very dynamic website and does handle a good number of page views a day.

[1] http://www.bidrodeo.com/

16
[+6] [2009-05-20 05:22:30] tomeedee

My experience with Django is minimal but I do remember in The Django Book they have a chapter where they interview people running some of the larger Django applications. Here is a link. [1] I guess it could provide some insights.

It says curse.com is one of the largest Django applications with around 60-90 million page views in a month.

[1] http://www.djangobook.com/en/1.0/appendixA/

(1) curse.com urls now end in .aspx... (dunno if they craft them) - ZJR
17
[+6] [2009-05-20 05:35:26] Beep beep

Note that if you're expecting 100K users per day, that are active for hours at a time (meaning max of 20K+ concurrent users), you're going to need A LOT of servers. SO has ~15,000 registered users, and most of them are probably not active daily. While the bulk of traffic comes from unregistered users, I'm guessing that very few of them stay on the site more than a couple minutes (i.e. they follow google search results then leave).

For that volume, expect at least 30 servers ... which is still a rather heavy 1,000 concurrent users per server.


(2) It appears from the podcast that SO uses just 3 servers. But SO is built using C#, not Python, so it rips. - S.Lott
(1) Obviously the question will be: How much powerfull servers are they? - mamcx
18
[+6] [2015-11-07 05:01:24] Anand Davis

I don't think the issue is really about Django scaling.

I really suggest you look into your architecture that's what will help you with your scaling needs.If you get that wrong there is no point on how well Django performs. Performance != Scale. You can have a system that has amazing performance but does not scale and vice versa.

Is your application database bound? If it is then your scale issues lay there as well. How are you planning on interacting with the database from Django? What happens when you database cannot process requests as fast as Django accepts them? What happens when your data outgrows one physical machine. You need to account for how you plan on dealing with those circumstances.

Moreover, What happens when your traffic outgrows one app server? how you handle sessions in this case can be tricky, more often than not you would probably require a shared nothing architecture. Again that depends on your application.

In short languages is not what determines scale, a language is responsible for performance(again depending on your applications, different languages perform differently). It is your design and architecture that makes scaling a reality.

I hope it helps, would be glad to help further if you have questions.


19
[+6] [2016-06-09 07:08:45] Ranju R

What's the "largest" site that's built on Django today? (I measure size mostly by user traffic) Pinterest [1]
disqus.com [2]
More here: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Can Django deal with 100,000 users daily, each visiting the site for a couple of hours?
Yes but use proper architecture, database design, use of cache, use load balances and multiple servers or nodes

Could a site like Stack Overflow run on Django?
Yes just need to follow the answer mentioned in the 2nd question

[1] https://pinterest.com
[2] https://disqus.com/

20
[+5] [2009-05-20 11:48:27] Mikhail Polykovskii

Another example is rasp.yandex.ru, Russian transport timetable service. Its attendance satisfies your requirements.


21
[+5] [2009-08-22 08:45:45] Anders Rune Jensen

If you have a site with some static content, then putting a Varnish [1] server in front will dramatically increase your performance. Even a single box can then easily spit out 100 Mbit/s of traffic.

Note that with dynamic content, using something like Varnish becomes a lot more tricky.

[1] http://en.wikipedia.org/wiki/Varnish_%28software%29

(1) Problem here is varnish will dramatically increase the performance of everything. And faster frameworks will still be faster. - ZJR
22
[+5] [2014-09-08 15:25:31] redsnapper

I develop high traffic sites using Django for the national broadcaster in Ireland. It works well for us. Developing a high performance site is more than about just choosing a framework. A framework will only be one part of a system that is as strong as it's weakest link. Using the latest framework 'X' won't solve your performance issues if the problem is slow database queries or a badly configured server or network.


23
[+4] [2014-11-09 12:15:29] gmourier

The problem is not to know if django can scale or not.

The right way is to understand and know which are the network design patterns and tools to put under your django/symfony/rails project to scale well.

Some ideas can be :

  • Multiplexing.
  • Inversed proxy. Ex : Nginx, Varnish
  • Memcache Session. Ex : Redis
  • Clusterization on your project and db for load balancing and fault tolerance : Ex : Docker
  • Use third party to store assets. Ex : Amazon S3

Hope it help a bit. This is my tiny rock to the mountain.


24
[+4] [2016-01-21 16:50:17] pulkit

If you want to use Open source then there are many options for you. But python is best among them as it has many libraries and a super awesome community. These are a few reasons which might change your mind:

  • Python is very good but it is a interpreted language which makes it slow. But many accelerator and caching services are there which partly solve this problem.

  • If you are thinking about rapid development then Ruby on Rails is best among all. The main motto of this(ROR) framework is to give a comfortable experience to the developers. If you compare Ruby and Python both have nearly the same syntax.

  • Google App Engine is very good service but it will bind you in its scope, you don't get chance to experiment new things. Instead of it you can use Digital Ocean [1] cloud which will only take $5/Month charge for its simplest droplet. Heroku [2] is another free service where you can deploy your product.

  • Yes! Yes! What you heard is totally correct but here are some examples which are using other technologies

    • Rails: Github, Twitter(previously), Shopify, Airbnb, Slideshare, Heroku etc.
    • PHP: Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp etc.

Conclusion is a framework or language won't do everything for you. A better architecture, designing and strategy will give you a scalable website. Instagram is the biggest example, this small team is managing such huge data. Here is one blog [3] about its architecture must read it.

[1] https://digitalocean.com/
[2] http://www.heroku.com
[3] http://instagram-engineering.tumblr.com/

Django development can be very fast. Django is the web framework for perfectionists with deadlines. - skywalker
The problem with Python is the non-static typed langauge introduces many bugs that would easily be picked up by something like TypeScript. - Oliver Dixon
25
[+4] [2016-03-14 20:56:00] JustDanyul

Even-though there have been a lot of great answers here, I just feel like pointing out, that nobody have put emphasis on..

It depends on the application

If you application is light on writes, as in you are reading a lot more data from the DB than you are writing. Then scaling django should be fairly trivial, heck, it comes with some fairly decent output/view caching straight out of the box. Make use of that, and say, redis as a cache provider, put a load balancer in front of it, spin up n-instances and you should be able to deal with a VERY large amount of traffic.

Now, if you have to do thousands of complex writes a second? Different story. Is Django going to be a bad choice? Well, not necessarily, depends on how you architect your solution really, and also, what your requirements are.

Just my two cents :-)


26
[+3] [2009-05-27 14:00:18] Ed Menendez

You can definitely run a high-traffic site in Django. Check out this pre-Django 1.0 but still relevant post here: http://menendez.com/blog/launching-high-performance-django-site/


27
[+3] [2010-01-08 10:15:00] siddu

Check out this micro news aggregator called EveryBlock [1].

It's entirely written in Django. In fact they are the people who developed the Django framework itself.

[1] http://everyblock.com

everyblock.com throwing 503 - Nishant Nawarkhede
EveryBlock has been merged into NextDoor. go.us.nextdoor.com/everyblock - exciteabletom
28
[+2] [2010-11-25 01:20:04] Ashwin

Spreading the tasks evenly, in short optimizing each and every aspect including DBs, Files, Images, CSS etc. and balancing the load with several other resources is necessary once your site/application starts growing. OR you make some more space for it to grow. Implementation of latest technologies like CDN, Cloud are must with huge sites. Just developing and tweaking an application won't give your the cent percent satisfation, other components also play an important role.


29