Now blogging at diego's weblog. See you over there!

server platforms: choice, or lack thereof

One of the things we're doing in the process of upgrading our infrastructure is getting a new public server and a development server. And one of the biggest questions is (as usual) which platform to base it on.

The first problem that comes up is that pre-install choices for OSes are pretty much limited to either Red Hat Linux or Windows Server 2003 (In some cases Windows 2000 Server). For obvious reasons, the development server should be a copy of the deployment server, which means that if, if you have different providers, you have to settle for the "intersection" between the various offerings.

Note: all of these comments are taken from the POV of multiplatform server applications (Java, Perl, etc) with small server clusters. That is, if I say, "Windows and Linux are roughly similar in X" it means roughly similar in that context. Java in particular is sort of an equalizer in that sense, in fact helping Microsoft by taking Windows Server more up to par (who would have thought?). Additionally, it's only been in the last few years that Sun has been more aggressive in ensuring parity between platforms, there was a time (say, 6, 7 years ago) when Sun's Windows VM was the best all-around VM (remember it took a while for Sun to implement Java native threads on Solaris?). I have no doubt that in other contexts, for other types of webapps or webservices, or at different scales (say, deploying 100 servers instead of 10) both the parameters and the results of comparing these choices would be quite different.

Some might say that Windows "is not an option", but I prefer to make decisions based on objective information when possible (with personal preference a factor, of course, but not an overriding one), and I think it depends on how much money/resources you've got to deal with it. As far as one Internet server is concerned Windows is more expensive than Linux but not by a huge amount (as a comparison, pre-installs Windows 2003 Server for Euro 700, and RH9 for Euro 170). But when you deploy it in an internal network you have to start thinking about Client Access Licenses (CALs) which cost $50 a pop or more, installation licenses, and so forth, and this is where the "resources" come in: if you install Windows you need someone to spend a lot of time figuring out licensing and making sure that you are using the licenses properly, etc. So aside from Windows being more expensive, it's also more difficult to manage from the licensing point of view. Additionally, going beyond a few servers complicates matters even further. Needless to say, startups usually will not have the time for that. I know we don't.

A few years ago I deployed+used Windows Server in the company I was working for then and it worked okay (that is, it did what it had to do, nothing earth-shattering). The company was basically using Windows on the client (IE was the primary target platform) and that sort of dictated that the servers be Windows as well, particularly because there weren't that many servers. Downsides were mainly that you had to keep up with the neverending stream of security updates and the licensing stuff, but in that case there was a person who took care of the IT infrastructure.

I haven't used Windows 2003 Server, but Windows 2000 was pretty stable (Again, all of this in the context of multiplatform server apps that connect to an SQL DB in the backend). I think it's interesting that now that Windows is more on par in terms of stability and features (clustering, remote terminal, etc) with Linux what really becomes a bigger barrier of adoption is both the price and the "management" of licenses. Linux is just easier in that sense: make as many copies as you want, install as many servers as you need, with as many clients as you like. Microsoft is, in effect, shooting itself in the foot (for a certain segment of the audience at least) by making their licensing more convoluted than it should be.

Now, though, the comparison has become a little more complicated, since Red Hat has discontinued Red Hat Linux and split the process in two. On one hand we've got Fedora, which is sort of the "spiritual heir" of RH9, and on the other hand you've got Red Hat Enterprise Linux (RHE for short) which is their commercial offering. RHE comes in three flavors: WS (Workstation), AS (small-medium server) and ES (enterprise servers). As far as servers are concerned, the main differences between AS and ES are (btw, the information on RH's site isn't nearly as clear as it should be):

  • AS supports only x86, while ES also supports Itanium, AMD64, and others.
  • AS supports only one processor, while ES supports 1+.
  • ES has round-the-clock tech support, while AS's is more limited.
  • ES supports more than 8GB of memory on x86, while AS does not.
The problem with any of these options is, of course, that you have to pay a subscription that on the surface rivals the price of Windows Server. I say "on the surface" because the licensing is simpler, you basically pay the subscription, you get the updates when you want, and that's it. One subscription per install, and everything else is pretty much Linux as usual, which is substantially simpler (and so less costly) than Windows. (Btw, Russ also had some comments yesterday on his views on the Red Hat transition).

Ah, but why not go with another Linux distro you say? SuSE? Gentoo? or Debian? (Debian has lots of fans :)). Why not FreeBSD? Well, here we are back to what I mentioned at the beginning, that many providers pre-install either Windows or Red Hat. They don't preinstall, say, SuSE, or whatever.

Fine, you'd say: get a clean machine and install your favorite free distro yourself.

Which is an option, yes, but, but... if you are getting dedicated servers that are pre-installed on a remote location you're faced with the prospect of either a) going to the remote location to do the reinstall or b) doing the reinstall remotely, without being at the console. Both are possible (maybe b is not in some cases) but neither is very appealing, especially when you want to work on what you need rather than spend time making the OS boot properly. If we had more time to work on that things might be different, but that's not the case.


For the moment, Red Hat is a better option for this kind of usage, since there is an upgrade path (even if it's convoluted) to either RHE or Fedora (although Fedora might be too much in flux as a distro to base a production system on--I guess that time will tell). If these moves by Red Hat make some hardware or Internet providers pre-install systems other than Red Hat there might more choice in the future (for when you need things to "just work"). And, if Microsoft changed their Licensing scheme to be something like "here, sign this two-page contract and pay us $500 a year and you get your updates and you can use this with as many clients as you want, etc" (kind of like what Sun did with their new licensing scheme) then Microsoft would be more of a contender in this area I think.

Oh, and btw, either Mac OS X Server or Solaris are indeed good options, but the hardware is simply more (sometimes a lot more) expensive, at least here in Europe, which makes it difficult to justify cost-wise. I hope that someday I'll understand why, if everything is built in factories all over the world, shipping stuff to Dublin instead of doing it to Palo Alto, CA makes prices jump 40%. Oh yeah, and software is more expensive too. I guess that the bits get tired from all that swimming and have to be compensated somehow. :-)

Categories: technology
Posted by diego on January 31, 2004 at 12:25 PM

Copyright © Diego Doval 2002-2011.