Monday, May 7, 2007

Virtual Appliances - The Good, The Bad & The Ugly

I was going through Dan Kusnetzky's blog and came across this interesting piece of writing on virtual appliances. Read on.

Every now and then, a supplier of an IT application or tool tells me about their plans to encapsulate their product into a virtual machine and deliver it to the market. Although this seems to be a great idea, this approach isn't always the best way to approach software distribution.

  • The Good — an encapsulated application or tool is easy to install. All that's necessary is to copy the virtual machine file and virtual machine "Player" to the target system and away you go. All of the chores involved with installing the operating environment, database software, application framework software and the application itself have already been done. If the application or tool is difficult to install properly, the vendor might be motivated to offer it as a virtual image rather than requiring its customers to go through a painful process.
  • The Bad — virtual machine files have a tendency to be large. If the supplier's intention is that organizations acquire this software by a download process, it may take quite some time and consume quite a bit of network resources from the time the button was clicked to the time the software has actually arrived safely. If the organization is in a region known for unreliable network service, this process may be a major obstacle. Since one size won't always fit everyone, the organization would be well advised to know how the virtual image differs from the software that is delivered in another way. It would also be wise to learn what steps are necessary to tune or optimize this software.
  • The Ugly — software licensing can rear its interesting head and make the organization adopting this software into a villain! Since an entire operating system, database software, application framework and application software may be part of this virtual machine image, it may bring along with it a licensing conundrum. It's very easy to make and run multiple copies of this virtual machine. It is also very easy to share this virtual image with partners and customers. A few key questions to consider are:
    • Does the organization need to acquire (and pay for) software licenses for each layer of software in each virtual machine that is stored or used on their network?
    • Does it have the right to share this software?
    • Does it have the right to modify this virtual image in any way before deploying it?

If all of this software is protected by an open source software license, the organization may not face additional charges or restrictions. If the company has a site license from each of the vendors of each of the layers of technology in the virtual machine image, if may be able to run multiple copies within the ways of their own facilities but not share the image with others.

It would be very wise for the organization's IT department to find out what licensing applies to a virtual image. It would be much better if the terms and conditions of use are known and the appropriate operational and administrative procedures defined before a virtual image is unleashed on the network.

Some suppliers of operating systems, database management software and application frameworks have such a complicated and confusing set of licenses for their products that the answers to these questions might be hard to find.

Is your organization using virtual appliances? What tasks are they performing? Has your IT department learned something that others should also know?

Saturday, May 5, 2007

A Virtual Appliance Powers Wiki!

MediaWiki is a virtual appliance that powers Wikipedia. It is a darn nice piece of software, well proven given the enormous community of use it sustains over at Wikipedia - and many, many other smaller sites. This appliance contains all the necessary software, including operating system, database and MediaWiki, to run a wiki installation as a "black box".

Visit the MediaWiki Project Page for more details. You may even download MediaWiki to create and manage content collaboratively.

Wednesday, May 2, 2007

Virtual Appliances

What exactly are virtual appliances? I am confronted with this question more often than not. This is how Wiki answers the question:
A virtual appliance is a minimalist virtual machine image designed to run under VMware, Xen, Microsoft Virtual PC, QEMU, Usermode Linux, CoLinux, Virtual Iron or other PC virtualization technology, providing network applications like firewalls or webservers. Virtual appliances are a subset of the broader class of software appliances. Like software appliances, virtual appliances are aimed to eliminate the installation, configuration and maintenance costs associated with running complex stacks of software. A key concept that differentiates a virtual appliance from a virtual machine is that a virtual appliance is a fully pre-installed and pre-configured application and operating system environment whereas a virtual machine is, by itself, without application software.

The VMware Technology Network (or the VMTN) draws an interesting analogy between computing appliances and virtual appliances. A computing appliance is a class of computer product which is designed with a specific function in mind and has limits on the ability to be configured beyond that specific function. Generally, the reason devices are called appliances is that they share some characteristics with more traditional household appliances. In that regard, computing appliances tend to be:
  • Designed to provide a specific set of functionality
  • Limited to specific vendor provided configurations
  • Closed and sealed devices
  • Not repairable or upgradable by the owner
  • Simple with a limited user interface
  • Intended for plug-and-play installation and setup
A virtual appliance is similar to a 'traditional' computing appliance and is designed with a specific function in mind. The major difference is that instead of being built on a physical computing device, a virtual appliance is built using virtual machine and can be run on any virtual platform. A virtual appliance starts with a pre-installed and pre-configured operating system. In addition to the base operating system, a virtual appliance contains a pre-installed and pre-configured application. The application may have multiple components and services to provide the required functionality.

The key benefit to building virtual appliances is that developers/vendors no longer need to build, test, and ship physical hardware devices while they still maintain the benefits of providing a ‘sealed’, purpose-built solution. The key benefits to users of virtual appliances focus around simplicity. Virtual appliances can be deployed in a user's environment quickly and easily with very little interaction.