By David HM Spector, Bittersweet Labs
So your management has decided that Linux might be a good way for your organization to save money and increase efficiency. And what's more, they've tasked you with figuring out where Linux would be a good addition to your operations. Now what?
Linux can be a great boon to many businesses, but Linux in and of itself is not a panacea. Like any other system or service, bringing Linux into an organization requires careful consideration of which applications and services it's good for and where you might be better off going with something else. In addition to the applications/services question, there's the issue of ongoing support, operations, and maintenance. Fortunately, as Linux has matured technically, so have the kind and number of support options available to business wishing to deploy it. Let's start with the basics.
Linux has captured the attention and imagination of a large portion of the IT community because it offers a lot of advantages over traditional UNIXes and over Windows.
First, Linux as an OS is a standards-based, POSIX compliant system—it works just like other commercial UNIX systems, and porting software to it usually straightforward, if not trivial. Unlike most other UNIXes, however, Linux can run on machines as small as an embedded system, such as the gumstix platform, which is used for portable devices, all the way up to the IBM zSeries mainframe and even supercomputer clusters that show up on the TOP500 Supercomputer list. This means your organization can scale its Linux deployment to almost any size.
Next, since it's free of the burden of traditional per-user and per-CPU licensing costs, the OS itself has a much lower per-server cost. Even if you factor in professional support contracts from the top-tier Linux distribution vendors like RedHat and Novell/SuSE, the cost is a fraction of that of Windows or even Solaris.
Now add in the fact that Linux is a very safe operating system, with no known viruses and few vulnerabilities if correctly configured. The speed with which improvements come out and bug fixes are released when vulnerabilities are found is pretty amazing. The Register did an impressive analysis of this issue back in late 2004. The typical time between the discovery of a new critical software flaw and the release of a patch is substantially shorter in the open source universe than for proprietary operating systems like Windows.
Lastly, as a development and computation platform, Linux allows the flexibility of UNIX with access to all the cutting edge tools and services that are helping many companies make inroads in the Web services and high-performance computing spaces.
Linux's sweet spots
One of the biggest challenges in rolling out Linux into an existing environment is picking that "first app." A logical first place to look is an application that, although important and high profile, will not bring your business to its knees if you make a mistake.
An ever-increasing number of applications have been or are in the process of being ported to Linux by traditional software vendors like Computer Associates, IBM, and Oracle—and of course many tens of thousands of open source applications have been available for years. There are areas where a Linux solution almost deploys itself. Here are some good places to look in at Linux's traditional strong suits:
- Database servers
- Web servers
- Network attached storage (NAS)
- Compute servers
Linux databases include the open source standards, such as MySQL and PostgreSQL. Many Linux distributions come with these packaged and ready to go. Both databases are very capable and are being used on thousands of ecommerce sites around the world. If your business is looking for a faster and less expensive database, these might fit the bill. If more traditional databases are already in use, DB2, Oracle, and Syabase can all run on most major Linux distributions on several kinds of hardware platforms.
Most of the Web servers on the Internet run the Apache Web server, and moving almost any content from, say, a Microsoft IIS server to Apache is basically trivial. In addition, J2EE and other Java Server Containers are readily available.
You may be less familiar with the use of Linux as a NAS system. Out of the box, Linux supports the network file system, SMB/CIFS (Windows file sharing), AppleTalk, and Novell Netware. Given that you can connect large storage arrays directly to a Linux system, this could be an easy way to enhance your firm's storage options at a very low price point.
Linux can also run on high-performance hardware, and its efficiency allows you to squeeze even more performance from your hardware than with most other OSes. If you need additional power, for modeling or simulation, remember that many of the TOP500 supercomputers in the world are Linux clusters, and a large number of firms will build clusters to order.
Support and service
Linux is a reasonably easy system to maintain, but unless you have a large IT support group that is both familiar with UNIX and equipped to keep your systems up to date in terms of patches and upgrades, you'll want to get professional support.
There are several ways to find support services. You can "go local" and find a local Linux/UNIX consulting firm that also offers corporate support. For very small businesses that have just a few servers and don't have a large budget, this can be an attractive cost-saving solution. You'll want to heavily vet any potential firm by getting references from existing customers and checking certifications and background experience. There are also mid-level regional and nation Linux support firms. The Linux Documentation Project lists quite a few of them. And Linux Certification organizations like LPI can connect you with even more.
If you want the warm fuzzy feeling of going with a brand name, you could opt for the top-tier Linux distributors like Redhat or Novell. They offer reasonably priced per-server support contracts, which will allow you to automatically keep your systems up to date in terms of patches, etc. They'll also perform on-site management and maintenance, but these are expensive consulting offerings that only organizations with a lot of money to burn usually take advantage of.
Whichever way you go, make sure that you understand what you're getting. Just like the Windows (or Solaris, or HP/UX, or...) universe(s), running Linux isn't a gong to decrease your involvement in your own infrastructure support. It's just going to lower your overall costs and give you more options as you grow.
What to expect: The difference between Windows and Linux
Once you've done all your homework, figured out what your target applications are, and decided on a support strategy, what can you expect when running a Linux server as opposed to, say, a Windows server?
That's a fairly subjective question, since it depends upon the reasons for bringing Linux into your server room in the first place. For many organizations, the goal is to lower annual software licensing expense. For these groups, the expectation is purely a cost reduction proposition. However, there is a lot more from a functional perspective that defines the differences between Windows and Linux.
Performance: For purely computational application, Linux is a better performer in many instances. Windows has a lot of system-call overhead and other bottlenecks that Linux (and UNIX) systems don't have.
Portability: Applications written for POSIX-compliant systems are easily portable between systems. This means that Solaris or HP./UX applications can be, given the source code, ported quickly. The core of many Windows applications—as long as they don't depend on too many Windows-specific libraries (DLLs)—can usually be brought over as well. This portability gives organizations a great advantage when they need to scale up their system (for example, going from an x86 to an Itanium or even to an IBM zSeries version of Linux).
Development: This is a highly subjective area. If your development staff consists of "Windows people" and they're used to Microsoft Visual Studio or similar tools, the difference between Windows and Linux will be quite striking. A large number of development tools are available for Linux and there are some impressive integrated development environments (IDEs). But Linux is a descendant of the UNIX tool-building culture, so rather than one huge graphical application, Linux provides myriad tools that can be interconnected using scripts and other mechanisms. It takes some getting used to for those "raised" on GUI IDEs, but overall, the Linux/UNIX development model is far more powerful and flexible than any other.
Management: The management of Windows systems is primarily done through graphical tools and wizards. This means that if your admin is offsite, you will need to have some sort of remote terminal server capability or an application like Timbuk2 to administer your Windows servers.
By contrast, Linux is a UNIX system, so everything can be configured from a command prompt, requiring only access to a terminal program. Of course, as Linux and the other UNIXes have matured, a lot of GUI tools have been developed to make administration easier for those who are less inclined toward the command line.
The actual management of Linux is more about initial configuration and monitoring log files. The same organizations that can recommend Linux consultants can also help with certification programs to bring sys admins up to speed in these areas.
Linux is no different from any other system: You need to take care of the basics:
- Identify appropriate target applications
- Have a detailed plan for support, maintenance, and upgrades
- Make sure that your staff is trained and/or certified
Once you get over the initial transition, you will find that adding Linux to your server room has tremendous benefits and gives your organization a lot of flexibility and growth options for the future.