Why, Microsoft, Why?

I've had the unfortunate luck to partially inherit sysadmin duties for the web team at Mentor (along with Joshua) after one our coworkers left.  While I don't necessarily mind a sysadmin role, almost all of the infrastructure is Windows.  The sole exception is our Subversion server, which is Linux, and only because I migrated everything of the existing Windows box last year sometime.  That migration was done specifically for the mod_python support that Linux provided to gain a significant performance benefit for Trac.

So today, I'm trying to help the boss install this Scrum management application on one of our internal servers.  It's an ASP.NET application (horror of horrors, I know), and the server doesn't have the WWW Publishing Service installed.  It's got IIS for the mail server, but all the apps on there are standalone JEE apps, and we just let the container serve directly to the network.  Simple process, go into Add/Remove Programs, hit the Windows Components button, find the right item, check it's box and hit next.  Ha!

Apparently the Cluster Service (which we didn't ask for) requires MSDE to be installed, and while it's listed in the installed programs, it was apparently not installed enough.  So we spend like an hour trying to find this stupid MSI that it needed.  My question is, why the heck can't Windows go get this package automatically.  When I install Apache via 'yum' (on Linux), it magically goes and gets everything it needs, all by itself.  And keep in mind that we have to pay money in order to use Windows and IIS!

Eventually we gave up, hit Cancel about ten times to skip the Cluster Service, and the rest installed.  We installed the app (which needed the ability to create it's own database, I might add, refusing to accept an already-created one – WTF?) and it didn't work.  Little did we know that while we could go edit the ASP.NET settings in the web site properties, that doesn't mean anything.  The properties just sit there until you go install the ASP.NET Windows component.  Next question: why the hell can you use a Windows-provided dialog to configure a service that isn't installed?  Surely dependency management is something they understand up in Redmond, and things like making configuration dependent on the software to be configured seems reasonable?

I haven't been around Windows servers in a good number of years, but this kind of lunacy is just what I remember from when I was.  No visibility into what's going on and/or why, plenty manual work to get things juuuuuuuuuuust right and then no way to save that stuff in SVN in case it breaks, and horribly fragmented everything.

Fortunately, we're slowly replacing IIS on all our other boxes with Apache so we can at least version the config and use such radical tools as copy and paste.  We've just about eliminated JRun in favor of Tomcat.  Once CommonSpot is gone from our last property still using it we'll be free of that burden.  We still have huge investment in MS SQL Server, but beyond that, we'll actually be in a position to start switching servers to Linux, which will be awesome.

The success of the SVN server (perfect uptime, great performance, easy configurability, etc.) has definitely shown the utility of a programmer-friendly OS and toolset over what Windows provides.  Hopefully that carries sufficient weight to justify migrating other infrastructure where there's not a specific platform advantage to exploit.

4 responses to “Why, Microsoft, Why?”

  1. thinman

    It's not automagic in MS because there would then be a legion of unemployed and unemployable certifed MS experts filling the blogosphere with all their ignorance and misinformation. Wait. That happens NOW. Nevermind. I don't know why. But it must've sounded like a good idea in their production and engineering meetings.

  2. Alan McCollough

    What version of Windows Server are you working with? Now before you vent too much on MS, rest assured, if you were to plop an MS sysadmin in front of a linux console and told him to admin it, you'd get even more ranting, ya know it's true.

    Now, if you've got a Win2000 box, ugh. W2k3 is imho, pretty great. W2k8, haven't seen it yet. If you're not in a clustered environment, I'm not seeing why your precedessor has Cluster Server running. But yeah, what version of Windows Server is this?

  3. Jake Munson

    I am FAR from a Microsoft fan (click the "Microsoft" category on my blog to find plenty of MS bashing), but I do think IIS has text config files in Win2k3. A couple of years ago I took an IIS training class, and I remember a lot of discussion about XML config files. I don't know if those are comprehensive, like the Apache config files, but they might cover most stuff, and you could throw them into Subversion.

    Ok, after I wrote the above, I decided to do some searching and found what I was talking about. Microsoft calls it the IIS Metabase, which is "a plaintext, XML data store that contains most IIS configuration information". They also mention that the stuff that isn't in the Metabase is in the registry, and you could back that up in SVN as well. Here's what I found:
    http://tinyurl.com/ed5rn

    That said, if I were in your shoes, I'd be anxious to switch to Apache as well. But maybe this information will help you limp along in the mean time. :)