This is a question from ServerFault that was there and then was no longer there because it's rampant flame-bait and got mod-hammered. But sometimes flame bait can make for good blog-posts, so here it is. Unattributed since the source no longer exists and I don't want to embarrass the asker.
As someone who has a good amount of experience with basic server setup
exclusively on Linux, I'm wondering why anybody would want to use
Windows.
I'm not asking this to make it into some snide comment, I just don't see any advantages.
The big things I think I would miss are:
- SSH access. As far as I know, the only real way to remotely access a
Windows service is via RDP or VNC or something similar, which is a lot
more work if all I want to do is restart a service.
- Open source software. From my experience, almost all open source
server software is made for Linux. While some, like Apache, can also be
run on Windows, a lot of the times it feels like it was added as an
afterthought.
- Easy configuration. I've never used Windows tools, but I love being able to
apt-get install libapache2-mod-whatever
.
While package systems aren't technically part of Linux, most popular
distributions use yum or aptitude or some packaging system which makes
it a lot easier to handle updates.
Again, I've not used Windows extensively as a server, so please forgive me if some of these points are inaccurate.
A valid question. We had a thread much like this one on the LOPSA mailing list a while ago. And really, to a Linux admin, Windows looks like an expensive, opaque, and above all annoying way of doing what Linux can do in its sleep. This view is very couched in the observer's biases.
The consensus of the web this year is that if you want to do large scale web-application infrastructures, Linux is where it is at in spades. During my job hunt there were exceedingly few job-postings for Linux admins that mentioned something other than Web or DB duties. Web, DB, load-balancing, routing, orchestration, caching layers, it's all there and very well documented.
So why WOULD you use use Windows?
The number one reason I know of...
Because the application you're using requires it.
At WWU we had quite a number of off-the-shelf products require a Windows server because they were .NET applications. FLOSS versions may exist, but that's not what our users wanted. They wanted this piece of software that they picked out and is kinda standard in their industry, not some half baked open source project out of some other University.
Or for my current employer, a number of the key processing tasks we need to do are most accurately accomplished on Windows. The open source versions of these software packages get close enough, but part of what distinguishes us from our competitors is that we get closer then that.
The number two reason...
Because that's what you know.
This was why WWU was running Blackboard on Windows servers, even though it's a Tomcat application at the core. I'm pretty sure the reason for this is because what came before Blackboard was also running on Windows and our Windows admin inherited the new environment, not that the Linux admin said "Not it!" faster than the Windows admin. I know that admin found Linux confusingly opaque and convoluted.
The number three reason...
Because you don't have time/skill to maintain it yourself, and/or you're willing to pay someone else to do it for you.
If that application comes in a box, wrapped in an installation wizard, and comes complete with phone-home abilities to pull updates, notify the vendor (and later you) of problems, a lot of the effort in keeping that application going has now been outsourced to the vendor. Few FLOSS-stack products can do that, they need some skilled time to keep 'em up. To an organization looking to fire-and-forget, this kind of software is really attractive.
Now on to some of the asker's specific concerns regarding remote access, scalability, and software installs. Below the fold.