Not long ago, choosing Linux in the data center meant a tradeoff. You had to give up some capabilities in exchange for freedom from Microsoft lock-in. But that has changed. These days the features of Windows and Linux stack up against each other very competitively. For the most part, administrators can choose Linux or Windows today without losing out. Some differences, however, must be considered. In this article, I look at several of those differences.
One of the most broadly touted strengths of Windows is the uniformity of its presentation and its management tools. This is even truer with Windows Server 2003, in which the vast majority of the server's administrative functions can be handled from one console window, and a whole slew of servers can be similarly overseen.
The administrative tools available for different Linux implementations vary widely depending on what you're administering. You can easily find a plethora of management tools for any given aspect of Linux. The management tools available for the Apache Web server, for instance, include both a commercial product (Hyperic HQ) and a number of free and open source tools (e.g., Webmin, which can be used to administer not only Apache but just about any Linux service as well). Because the protocols and behaviors of almost everything in Linux are documented openly, it is fairly easy to create management tools for Linux.
If you want management tools from and for professionals, Dell Inc. has a set of tools for Linux server management called OpenManage, and Novell Inc. has the venerable ZENworks. Both are now being merged into a single package called (appropriately enough) ZENworks 7 Linux Management, Dell Edition, which allows an administrator to oversee multiple SUSE Linux or Red Hat Enterprise Linux installations (the two Linux distributions that Dell supports most strongly) from a single console.
If you're already familiar with Unix, you face little, if any, culture shock with Linux. Most of the familiar tools (vi / emacs, sendmail, etc.) are present or can be added painlessly. Unix users who switch to Windows will be dismayed at how much of the system focuses around using the GUI as opposed to the command line, but you'll find command-line or scriptable equivalents for almost every administrative action; they're just not usually incarnated in traditional Unix ways. Likewise, a Windows admin who moves to Linux may be unhappy with the lack of a standard GUI for a given administrative action. But, with some work, you can usually set one up. (Most major distributions now have GUI interfaces for their management functions, so this is less of an issue than it has been in the past.)
In short, the kind of manager(s) you have will certainly be a strong influence on the kind of management you'll want and the OS you choose -- a conceit that will resonate through almost every other category discussed here.
Costs and support
The upfront cost of Windows is usually more than Linux, although the cost for each will vary widely depending on what you purchase. The Premium Support edition of Red Hat Enterprise Linux ES (one of several editions) has a list price of $799; Windows Small Business Server 2003 Premium Edition runs $1,499 but includes SQL Server 2000 and Exchange 2003 as part of the package. Note that you can also get a lesser version of Small Business Server for $599 or so, and the highest-end version of Red Hat Enterprise Linux is $2,499.
The raw dollar cost of Windows may be higher, but it can be argued that Windows tends to pay for itself in terms of long-term ease of administration -- the major exception being administering Active Directory (and products that can't live without it, such as Exchange), wherein a knowledgeable and prudent administrator is definitely required.
Many common server-grade editions of Linux exist that don't cost anything upfront, but the most widely touted and used -- Red Hat Enterprise Linux and Novell SUSE Linux, to name two popular ones -- command a premium price tag for support. In some cases, as with Red Hat Linux, the cost of purchasing a commercial version of Linux is primarily the cost of buying a subscription for manufacturer support for the product. If you're comfortable with Linux -- and you know what you're doing and don't need a server-grade distribution to do the vast majority of server-level tasks like file and print sharing or Web serving -- many do-it-yourself distributions like Slackware (one of the most celebrated and longest-lived of Linux distributions) were built for precisely this need. Plus, they don't cost anything other than the price of the media if you buy a CD copy.
If you want to evaluate whether Windows is a good fit without shelling out for the cost of it upfront, Microsoft has a free six-month trial version of Windows Server 2003 that can be upgraded seamlessly to the full version. Both platforms enjoy a strong community of support from their users on USENET newsgroups, mailing lists, discussion boards and other forums; the vast majority of common questions have an answer that can be found there.
Windows and Linux both enjoy more-than-decent hardware support. Linux has been ported to a staggering variety of processors and platforms and, as a result, can be used on virtually any computer found in a given data center. Windows, by contrast, currently exists only in versions for the Intel x86, Itanium and x64 processors, but because those machines make up the vast majority of commodity data-center hardware, that may not be a major drawback.
Many hardware vendors package editions of each operating system as default preloads, which make it easy to build a data center with the desired OS right out of the box. Dell, for instance, offers a choice of Red Hat Enterprise Linux AS, SUSE Linux Enterprise Server or Windows Server 2003 R2 (among others) as preloads for its current (July 2006) line of PowerEdge rack servers, with the assumption being that any hardware bundled with those machines will also work with the listed operating systems.
The vast majority of data center hardware developers also offer certified Windows and binary Linux drivers for their products. But not all hardware vendors offer open source hardware drivers for Linux -- although whether that would be a problem depends largely on how badly you need such things or anticipate such a need. Some people prefer an open source driver as a simple contingency against future obsolescence or as a way to build a driver for a platform not supported with binary-only drivers.
The driver issue serves as a good example of Linux's closely-knit user community at work. The Phoronix Linux Compatible Hardware List tabulates all the hardware that's known to work well with Linux. And, David Welton maintains a Linux Incompatibility List that documents devices that are explicitly not compatible or only marginally compatible with Linux, such as the Dell Perc3 Adaptec RAID controller. Note that these lists are far from all-inclusive and are constantly being revised.
It used to be a chore to get Windows and Linux servers to even speak to each other in the same organization. Things have improved a great deal in the last couple of years in both directions. Microsoft has Windows Services for Unix 3.5, which allows sharing of not only data and scripts but also security credentials between Windows and Unix systems (including functions like NFS and password synchronization across platforms). Linux has Samba 3, which allows Linux systems to use Windows file and print services transparently and now also includes Active Directory integration. Neither of these solutions come at much of a cost besides the time and effort to implement them: Samba is a free/open source release, and Services for Unix is a free download.
The choice of operating system in a data center should always reflect need and suitability to the task. Sometimes that need is just a reflection of what's already there for the sake of easy interoperation; i.e., Linux to work with existing Unix/Linux systems or Windows to expand on an existing Windows installation.
If you need an OS that can be heavily customized and freely reworked down to the kernel as part of your operational model, and you can devote the manpower to do that, Linux is the best choice.
If you already have Windows experience and want to continue working with what's comfortable, or you want to take advantage of specific native Windows features, then opt for Windows.