One of the most obvious benefits of free and open source software is the ability to download world-class software and implement it gratis on your system. But, sometimes, there is a big difference between theory and action.
I'm not talking about installing desktop applications like Firefox, OpenOffice.org, or GIMP. Most of the Linux distributions have by now made this process newbie-simple, and Windows and Mac systems have never had a problem with installation. Rather, I am talking about complex server systems, like Ruby on Rails, Tomcat, Joomla!, or Drupal. Regardless of platform, getting one of these instances running can range from a bit tricky to downright hair-pulling.
Naturally, if you're using a good Web hosting service, it's not too hard to sign up for, say, a Drupal- or Joomla!-based site and, with a little configuration, have your site up and running in a few hours. But, what if you need an instance in order to play around or, more seriously, learn about the guts of such a system without (a) messing up your machine's base settings and (b) paying for hosting fees.
This situation encompasses more than web content and development frameworks: perhaps there's an SDK you would like to learn about, or a CRM platform.
Regardless of your base platform--Windows, Linux, or OS X--installing and configuring something like Zenoss, SugarCRM, or Tracks can be very challenging.
So, what if you could get a fully configured system up and running within minutes, sometimes even gratis? Would that be worth something to you?
That's the promise of virtual appliances: a promise that's being delivered by a number of operations out on the Internet. Today, I want to focus on two such services I found in the past week while looking to install a Joomla! instance for my own continuing education.
Basically, my needs are simple: I want a local instance of Joomla! with which I can play around and learn more about, and test some new site template/configurations. Naturally, I could install Joomla! on my own machine, but that would involve also installing LAMP (or XAMPP, if I wanted to take the packaged shortcut), getting everything configured, and then making sure Joomla! was properly talking to the LAMP stack. This is all stuff I can do but, frankly, I wasn't too keen on spending the time and effort for something that right now isn't more than an mid-range hobbyist's project.
Plus, let's be honest, who does have the time, especially in a commercial venture where time==money?
It did not take me too long to find the first offering that met my needs: TurnKey Linux has, among several other free virtual appliance offerings, a full Joomla! instance running on top of a LAMP stack. Everything is put together for you: the Joomla! configuration, the PHPMyAdmin front-end, Postfix MTA configuration, and Apache, PHP, and MySQL modules for Webmin.
With TurnKey, all virtual machines (VMs) are geared to run on VMware and VirtualBox, and I found them to work just fine on Oracle's VirtualBox and the open source VirtualBox OSE flavors. (A note: make sure all of your VBox kernel drivers are up-to-date so you can get the bridged adapter to work. Unlike other client-oriented VMs, which can share the host system's network access table (NAT), all of the servers in a VM like this need their own IP addresses, so a NAT connection won't work.)
After you have the VM mounted in VirtualBox, the first time you run it you will step through some very basic Debian-looking configuration screens (all of the TurnKey appliances are Ubuntu-based). Nothing too strenuous, though at the end of the process you will need to make note of all of the IP addresses that plug into the various configuration systems. Once complete, use any browser in your host system to surf to these admin pages and then tweak your servers' settings.
The VMware process is similar, though there is a lot more VirtualBox documentation on the TurnKey site. Best of all, this is a community project, so all of the available VMs are free.
If you are interested in hosting these machines out on the Amazon EC2 cloud, there are links and instructions on how to accomplish this as well. Currently, all of the EC2 offerings are also free, though you will still have to pay the base US$.085/hour Amazon subscription fee. Currently, the TurnKey organizers are trying to float the idea of adding an additional percentage on top of that base subscription fee in order to recoup costs, but thus far they have yet to decide upon that ammount.
On the other side of the spectrum are the commercial offerings from JumpBox. Unlike TurnKey, many of the VMs offered by JumpBox are available at a cost. For instance, JumpBox for the Drupal 6.x Content Management System, available for VMware, Parallels, Hyper-V, VirtualBox, and the Amazon EC2 cloud, can be downloaded for a subscription starting at US$149/year, hosted beginning at US$35/month, or launched on the EC2 via Cloud Gear for US$.20/hour.
Right away, you may be thinking, why pay for JumpBox offerings at all? A few things stand out that may make JumpBox a little more attractive. First, they have more VMs to offer right now: 65 compared to TurnKey's 40. Second, not all of the offerings cost money: 19 of the VMs, including Joomla!, are available free of charge.
Third, from comparing JumpBox's Joomla VM to TurnKey's, the JumpBox version was a lot easier to set up from start to finish. While initially the VM mounting routines are identical, JumpBox is set to run as a pre-installed instance on a hard drive, which means no last-minute configuration settings to deal with. The process was much simpler and faster.
Ultimately, which choice you make will depend on what your use case will be. If you are, like me, simply looking for something as a playground/training center, then I believe TurnKey will be your better solution. Ditto for all experienced users/admins who have the skills to quickly set-it-and-forget-it any of these free VMs in a production environment.
JumpBox, in turn, seems a better fit for customers who need to deploy from a wider variety of virtual machines in production environments fairly quickly. While nothing seems to be an obstacle for the TurnKey VMs from fulfilling this role, the JumpBox systems are available on more virtual platforms and are much more polished in terms of end-configuration. This, in my opinion, makes them a better fit for a business use-case.
Either way, you should find any of these VMs an excellent starting point for exploring new systems or refreshing your skill set on more familiar systems without the pain of installation and configuration.