Page 1 of 2
If you haven’t heard of virtual appliances then you are in for a rewarding time.
The basic idea is that you can create a machine, a virtual machine, that does a particular job simply by copying its virtual hard disk image and a few other setup files. The machine is then booted and ready to use – i.e. an “appliance” rather than general purpose configuration. This is a simple but powerful idea that is even more powerful with the rise of cloud computing. You can take a virtual appliance and run it on your own hardware or upload it to a server in the cloud and run as many copies as you can afford to pay for.
The overall advantages should be obvious but just in case let’s spell them out:
- As a machine image, an appliance is usually a small download – often much smaller than the package of software needed to create it from scratch.
- Once you have virtual machine software installed on a server you can set up an appliance in a few minutes.
- You can remove an appliance by deleting it and add more appliances as required simply by setting up additional virtual machines.
- An appliance can be moved or duplicated to another server simply by a file copy and a few configuration steps.
- It can even be moved to a remote server running in the cloud making one form of scalability easy to achieve.
- Backups are just a matter of either taking a snapshot or copying the virtual machine file.
The only downside to using an appliance is that it is tempting to overload the server that has the job of running the multiple virtual machines involved!
However, even a fairly small machine can manage to run at least two appliances while doing a job of its own. Of course it does all depend on what the appliances are and how heavy the loading is but you have very little to lose.
You can set up an appliance and see if the performance is adequate. If it isn’t you simply move the appliance to another hardware platform without having to install everything from scratch. Of course it should be obvious that such a set up has a huge potential to simplify testing and experimentation in general not to mention as a way to distribute applications without having to worry about the operating environment.
The Open Source connection
At this point you might be thinking that Exchange or some other Microsoft server might be very useful as an appliance – however the problem of licensing raises its head.
You have to supply a key when you install most Microsoft servers and they have to be activated. The need to buy a new copy of each software component when you attempt to set up a server is a big disadvantage when it comes to appliances. The result is that the whole idea loses some of its appeal.
So much so that while Microsoft makes virtual appliances versions of some of its servers available they are generally test and trial ware. Once you know you want the server you have to do everything properly and set up the server for real including purchase it, entering a key and activating it.
What all this means is that even if you are exclusively a Microsoft network and programmer it’s time to look at the Linux alternative.Open source software makes virtual appliances a real alternative. Of course if you are already addicted to Linux then this will seem like an unnecessary point and you should skip the next section which explains why Linux isn't an issue.
Linux appliances fulfil the promise of the approach in being free to install as many times as you like. If the idea of trying to get to grips with a new operating system worries you it’s worth saying that in many cases these really are packaged as “black box” appliances. You don’t need to delve very deep into the operating system to get useful work out of them. In fact if you have a router, NAS storage appliance, or a network security box then the chances are that you are already using a Linux as an appliance – an appliance running on special hardware.
Don’t think of Linux virtual appliances as a move to Linux, think of them more as software boxes to do a particular job. For this reason you don’t even have to move to Linux to host them. Use a Windows operating system, even a desktop operating system like Windows XP to 7, to host a virtual machine of your choice and start installing appliances.
Types of VM
Virtual Machines or VMs are almost magic. They install like any other application under an operating system such as Windows, Linux or the Mac. Once you have the VM installed you can then go on to install another "guest" operating system and any applications you need to build the machine you require. The VM looks to the guest operating system as if it was raw hardware - often referred to as "bare metal".
The two most commonly used VMS are VMware or Microsoft’s own Virtual PC, and generally you can find an appliance ready to run for both - although the less common appliances may only run under VMware. As both virtual machine systems are free to download and use this is hardly an issue as if the appliance you want is only available on one of them you can simply download the required VM and try it out.
A third alternative is the opensource Oracle VM VirtualBox which does the same sort of job as the other two but now it is owned by Oracle it is promised to be the basis of an enterprise class VM system. VirtualBox is clearly a VM to keep an eye on.
There is another sort of VM that is worth knowing about - but only if you are very serious about getting the maximum performance out of the hardware A native mode VM installs on a machine before any other software or operating system. With hosted VMs such as VMware, Virtual PC or VirtualBox the VM runs under a host operating system which acts as an intermediary for the VM i.e. it gets between the VM and the hardware. In the case of a native mode VM the VM talks directly to the hardware and all of the operating systems that run under it use it as the intermediary between themselves and the hardware. This allows the VM to optimise the way things work and native mode VMs have a reputation for being efficient but harder to install and use. The best known native mode VM is Xen - an open source project. If you want to make maximum use of the VM idea then Xen is worth finding out about.
The whole idea of cloud computing is nothing more than hosting appliances on the web . For example the Amazon EC2 (Elastic Compute Cloud) is essentially a network of a machines that can be used to run a VM in a given format. To use EC2 all you need is a disk image of the machine you want to run, upload it to the EC2 system and start it running. Being virtual you can run as many copies of the appliance as you require - without having to invest in the necessary hardware. Of course you do have to pay for computing cycles used but this is better than having to make a big investment in hardware that is only used at peak demand.