Why does digg need so many servers?
twitter.com
twitter.com
My counting may be off by 1-2, but last I checked Reddit is coming up on them traffic-wise (http://siteanalytics.compete.com/reddit.com+digg.com/), and only has 7 employees? And I'm pretty sure Reddit doesn't have 500 servers either, although I could be wrong.
Both sites offer very similar functionality.
While past its peak, Slashdot only has 18 servers. (http://slashdot.org/faq/tech.shtml#te050)
Digg has scaled to the size of a company that, for a couple of years now, has considered itself just on the tipping point of "something big happening." As in there being a sea change in the way everyone consumes their news, and Digg is at the center. You'll need lots of employees when that happens, right? I think Digg has partly grown fat due to non-existent leadership; the struggle between Jay Adelson and Kevin Rose was been well-documented, and having your two lead guys check out for at least a year is not a good way to run a business. A lot of the people there are "sales", which I guess helps Digg stay profitable, but I don't really think you need as many as they have. Five community managers on a community that is supposed to manage itself is also excessive.
I expect the truth of the matter lies somewhere in the middle of Reddit and Digg. More than Reddit so you're not stagnant, less than Digg so you're not fat.
So the fact Reddit-the-software isn't changing that much doesn't seem like that big an issue, it's more like infrastructure. A major redesign would be negatively disruptive to the communities that are building there. Not that there aren't great things Reddit could do but isn't, but I think they are doing well at the most important stuff. If Reddit had 68 employees they not only would be fat, they'd probably fuck up a good thing.
I agree that altering Reddit now is probably not a good idea, and they don't need a large headcount, but it's good that Reddit isn't answering to shareholders directly, because if it wasn't for Digg's implosion, their growth would have been far too slow.
Digg has had $40m in funding [http://www.crunchbase.com/company/digg] and so unless it sells for $200m+ the investors will most likely see it as failure. Kevin Rose seems to be advising people to take less money [http://www.zdnet.com/blog/weblife/kevin-rose-10-tips-for-ent...] or no money, presumably because Digg was over-funded, at least for it's current position.
Digg is a discussion site, not an operating system -- what is the value in "rolling out new software"?
Digg's value is in the quality of the discussion and community; "innovation" that doesn't improve that is pointless. Look at HN: it remains nearly as minimalist as always, and mostly receives occasional tweaks and performance improvements.
Once Digg hit critical mass, they were killed by the signal to noise ratio. I stopped visiting the site a couple of years ago because of that.
The reason why HN thrives is that the signal to noise ratio is still quite high, and while there is diversity in the submissions, you can probably group them into a few common themes.
Personally, I'm in general agreement with you. And you can rebase the whole argument: take MetaFilter, with 4 people on the payroll (and not all technical). What is everyone at Reddit doing?
I think the perceived value of rolling out new software is that Digg had hoped it would draw in more uses and entice existing users to become more active. If you're running a website that is largely user generated content and is also stagnant, how do you inject new life into it without adding new features? I'm genuinely curious.
Communication. I'm always surprised that so few people who do software (I'm talking management at companies) are familiar with the mythical man month. Adding employees to a software project always yields diminishing returns due to the increase in communication required.
I remember not too long ago before they moved to EC2 everything fit in just a few racks. Of course, their traffic has expanded significantly recently.
A lot of the "web scale" noise has come from dealing with these gerbil sized instances.
Think through the ramifications of each of these page flows:
1. Give me this question and everybody who commented on it.
2. Give me every post that this user is following has made over the last n days.
That's why.
There are a couple of ways you can go about this, the first is the database: Join the network of people against the land of content and bring it back. This doesn't work (as an aside this is what people mean when they say web scale, it has nothing to do with web traffic, it's social graphs) your database will cry. All though not at first, in development it works fine, and you feel fine, and for a while you're ok, but you start growing....
Another way you can go about it is by denormalizing. In this world you store a pointer to each content item for each user. So anytime I do something all the people [following|watch|connected|friended] to me get a record indicating I did this. This works, but now you have lots of data (lots and lots of data!) spread all crazy around. You need some kind of system to push that data out to everybody. It's those last two that drive up your hardware usage, it's not necessarily web boxes, but it's boxes in the background broadcasting the events out to the world, and the datastores to hold it all. Depending on how your web code works you could also have a lot of overhead on the webservers putting all that stuff together.
My experience here comes from building the social features into toolbox.com. A good example is this page http://it.toolbox.com/people/george_krautzel/posts-connectio... That's all the posts from users connected to our CEO (all 750k of them). Getting that to return in near real time is super fun (and you can probably tell that I went down the DB join path before it all fell apart).
Are they compute nodes? Are they webservers(5)? Webservers and appservers(10)? Web, app, database(12)? Web, app, database, back-end processing(15)? How much redundancy is built in(30)? Staging environments(60)? Development environments(120)? Standard IT infrastructure like DNS and email(125)?
"We run over 500 servers" sounds a lot like "we have 500 servers in our datacenters" not "it takes 500 servers to handle 200MM page views."
A friend of mine's company has a tough time keeping up with 500,000 page views a month using more equipment. They're using PHP and MySQL.
- What do the sites do?
- How optimised are they?
- How much static/cachable content is there?
Really there is too little data for this comparison.
Both are equally unoptimized outside of the database queries which I believe are fairly well optimized.
No real cacheble content on either outside of the usual suspects (JS, CSS, some images)
Requests/Pages per server is a bad metric to determine efficiency when every persons problems are so different.
If your utilization is so low why do you have the additional servers?
Apples and orangoutangs.
Free coffee would be enough to get me to say something nice about Microsoft products?
I work at Microsoft?
EDIT: Then again Facebook is using 60000 servers at the moment.
We use PHP and Apache, so the gloating about ASP being way more efficient than PHP seems to be unfounded.
there could be many reasons
It would be more interesting you have facts to refute my statement than downvotes.