A couple of days ago I posted a link to a video I made with ‘s Tom Crabb about appliances and the role of Linux in them. Here are a few additional comments.
In your kitchen you have special appliances that, presumably, do individual things well. Your refrigerator keeps things cold, your oven makes them hot, and your blender purees and liquifies them. There is room in a kitchen for each of these. They work individually but when you are making a meal they each have a role to play in creating the whole.
You could go out and buy the metal, glass, wires, electrical gadgets, and so on that you would need to make each appliance but it is is faster, cheaper, and undoubtably safer to buy them already manufactured. For each device you have a choice of providers and you can pay more for additional features and quality.
In the IT world it is far more common to buy the bits and pieces that make up a final solution. That is, you might separately order the hardware components, the operating system, and the applications, and then have someone put them all together for you. If you have an existing configuration you might add more blades or more storage devices.
You don’t have to do this, however, in every situation. Just from a hardware perspective, you can buy a ready-made machine just waiting for the on switch to be flicked and the software installed. Conversely, you might get a pre-made software image with operating system and applications in place, ready to be provisioned to your choice of hardware. We can get even fancier in that the software image might be deployable onto a virtual machine and so be a ready made solution runnable on a cloud.
Thus in the IT world we can talk about hardware-only appliances, software-only appliances (often called virtual software appliances), and complete hardware and software combinations. The last is most comparable to that refrigerator or oven in your kitchen.
Appliances in the IT world are not new. Datapower, for example, goes back almost a decade with XML processing. There have also been appliances for security, search, spam detection and elimination, and many other specific applications. So we’re well past the pioneer stage, and now we’re focused on ease of creation, deployment, and value.
Let’s focus on the virtual software appliances. Since the image is created to solve one class of problem, it really shouldn’t contain every possible feature in the operating system or possibly even in the applications that run on top of it. It should be just the right size and tuned for just the right use. This makes a simpler environment that takes up less room, is easier to maintain, and might be faster or more efficient.
That means that if you had the ability to package just the parts of the operating system that you needed and dropped the rest, your custom appliance will fit your job better without extra stuff thrown in. Getting back to my kitchen analogy, if all you are going to do is make scrambled eggs, that $300 stove will work as well as the $5000 one. Why pay for or install the high end model if you aren’t going to use all the features?
This is where Linux really shines when making virtual software appliances. Linux is composed of hundreds of packages and you can pick and choose among them to create just the base operating system you need. Now many of them are related, so you do need an understanding of which groups of packages you need to install to get the functionality you need. This can be done manually or more easily via a tool like Novell’s SUSE Studio. Either way, Linux gives you as little or as much as what you want to get the job done.
Beyond the operating system, the applications deliver and define the appliance. IBM’s Lotus Foundations puts together functions like email, calendars, contacts, file sharing, and backup into one appliance. Moreover, since the whole idea of appliances is to give you just what you need, you can create and use a basic model today and perhaps later grow up to another more advanced version with more functions or capabilities for more users.
An appliance might have one main application on top of the operating system or it may have several. If there is more than one, they need to work together and they need to interoperate with other software the user has on other machines. Open standards are therefore very important and should be on your appliance checklist when vetting your choices. Note that some people may start with appliances and then “grow up” into larger installations or, I expect, move to the cloud.
Ultimately your datacenter may have several appliances in addition to more general purpose hardware and software. Think of your kitchen: it has a range of specialized devices as well as multifunction ones. Your needs and budget determine the mix, the quality, and the quantity.
Pick and choose your appliances carefully. Focus on Linux as the operating system in the appliances because of its range of configurations, flexibility, security, performance, scalability, and general quality of service. Then worry about the applications, how they work together, and how well they employ open industry standards to plug into the rest of your critical infrastructure.