
Stack Exchange’s Architecture in Bullet Points - sagarun
http://blog.serverfault.com/post/stack-exchanges-architecture-in-bullet-points/
======
IgorPartola
I'd be interested in finding out why they chose to go with Windows-based web
servers. Administering 12 production nodes would not be fun and doing so over
remote desktop seems like a pain to me.

<offtopic>I recently discovered puppet and I am just way too excited about
what I can do with it.</offtopic>

~~~
solutionyogi
StackOverflow is done in ASP.NET MVC. They were one of the earliest adopters
of ASP.NET MVC. It would make sense to go with Windows servers as Mono w/
Linux may not be up-to-date with latest C#/ASP.NET code. BTW, as they are part
of BizSpark program, they would have got the server licences for cheap.

And I am genuinely curious as to why you think 12 Windows servers are pain
compared to 12 Linux boxes?

~~~
mistermann
He seems to think you have to log on via remote desktop to administer.

~~~
vegai
Out of honest curiousity, how _do_ you administer them?

~~~
gaius
The same way as you administer _any_ cluster.

~~~
wlll
Using SSH? That's what I've used to administer every server I need to for many
years.

The last time I had to work on windows servers SSH wasn't really an option
though so we used remote desktop. This was on win2k servers though so things
may have changed.

I think the question deserves a better reply than the glib "The same way as
you administer any cluster." Is the answer really SSH? Or something else?

~~~
barake
The introduction on the Powershell Wikipedia article is a good overview [1].
Powershell can also be used remotely, and various Microsoft products provide
cmdlets (basically utilities) to use from the shell.

There are a few ways of dealing with IIS7: * Remotely using IIS Manager [2] *
.NET-style configuration files - think httpd.conf * Powershell cmdlets *
AppCmd.exe

SQL Server has Management Studio in various flavors, SqlCmd.exe or Powershell
cmdlets.

The only time I log in to servers is to run installers or when laziness takes
hold. These various tools work well enough that Microsoft offers Windows
Server Core which only provides CLI access (and Powershell in the most recent
version).

[1] <http://en.wikipedia.org/wiki/PowerShell> [2]
<http://www.iis.net/download/IISManager> [3]
[http://learn.iis.net/page.aspx/334/install-and-configure-
iis...](http://learn.iis.net/page.aspx/334/install-and-configure-iis-7-on-
server-core/)

------
simonw
Interesting that they've moved to Lucene.net for search - I remember hearing
them say that full text search is one of the reasons they were so happy with
SQL Server.

~~~
spolsky
ugh, no, I can't imagine ever saying that. Full Text Search in SQL Server is
very badly integrated, buggy, deeply incompetent, and I hate it. Hate it hate
it hate it hate it hate it.

~~~
simonw
I'm not sure where I got that impression then. Thanks for the correction!

------
chrisaycock
Here's an earlier explanation about their caching set-up using Redis:

[http://meta.stackoverflow.com/questions/69164/does-
stackover...](http://meta.stackoverflow.com/questions/69164/does-
stackoverflow-use-caching-and-if-so-how)

~~~
kprobst
I'd be interested to know what _platform_ they're running Redis on. Is it
Windows or Linux?

Edit: Oh, the article link mentions it's running on CentOS. I was looking for
that in the parent's link.

------
lurchpop
Congrats to them. 12 page servers and only 2 dbs is super lean for ~100m
pageviews. They seem a bit bloated on eng staff though.

Off topic, but more proof how inaccurate Alexa is. I have a service that gets
1/10th of their p/v and is almost 3k points higher.

~~~
Encosia
To be fair, Alexa doesn't purport to rank by page views.

------
rodh257
I like posts like these, provide a good blueprint for other .NET sites to use
as a guide if they end up exploding in popularity like Stack Overflow.

