Review : Cherry Picks of the Month: Sliced Bread
This month’s edition of Cherry Picks of the Month has a review of a very special product that will definitely turn many heads. It is one of those products that you proudly claim to be “the best thing since the invention of sliced bread.” At least I think so! 🙂 But first things first:
DISCLAIMER: I am a QA Engineer at rPath, the company behind the technology here presented. This post belongs solely to my person and is not, in any shape or form sponsored by my employer.
Now that I have gotten that out of the way, let us dive head first into software appliances and why you should pay attention to them.
Wikipedia tells us that “A software appliance is a software application combined with just enough operating system (JeOS) for it to run optimally on industry standard hardware (typically a server) or in a virtual machine.” In other words, it is a lean and mean (usually?) GNU/Linux machine stripped down to its bare minimum configuration with a single (or combination of) application that does a very specific job. A good example of this would be a network firewall which is probably the most common type of software and hardware appliances out there.
So what is the big deal, right? Anyone with enough knowledge and time can install an operating system, gut it of all the pieces you don’t need and get it small enough to fit your needs, right? You could then take the application being developed by the other IT guys and manually install it to arrive at a software appliance right. And if you find out that there is a dependency required to run that application, you can always download the source and compile it to make it work. What? The version you installed is not the same used by the IT guys? Ok, you can search for the proper version and compile it again, not a problem. And what if a major security update of one of the underlying components becomes available the day you’re finished building your appliance? Guess you’ll have to download it and install it.
Do you see any problems with building your systems this way? What if you needed literally 1000 of them tomorrow? Do the words “time constraint”, “dependency hell”, and “Seppuku” mean anything to you? If you see yourself nodding affirmatively, then let me introduce you to rBuilder Online, the easiest and most efficient way to build a software appliance, and keep your sanity intact.
In a nut shell, rBuilder Online is a 100% free online “software appliance manufactery” maintained by rPath. A true window to the technology developed by the rPathians, rBuilder Online allows you to create, develop, maintain and (most importantly) deploy software appliances from the comfort of your chair. A very basic appliance can be built and deployed in literally minutes, all requiring only the use of your mouse and some simple decisions such as what platform you want to use (several are currently available, all built with the highly advanced conary package management system), what type of images you want to generate (i.e. ISOs, VMware, Xen, Citrix, EC2, etc) and what packages to include besides the bare minumum. The flash animation below shows how I created a product called GeekDeck based off the rPath Linux 2 platform, chose to generate an EC2 image and added the Apache web server as one of its components (if you cannot see it, please visit this link).
The combination of these choices are all put together into what is called a group, a very detailed compilation of all the packages that make up our product, with dependency tracking down to the file level! Let me say that again: Every file of every single package that make up this product, from the very basic component to its kernel and the packages we added atop is tracked and mapped in the same style a versioning control system does. What that means is that for every customer you ship your product, you will know exactly what files and what versions of these files (and its dependencies and its’ versions and the dependencies of the dependencies and so on and on) are installed on their system. And if tomorrow you rebuild your group and add new content to it, your customers will be able to update their systems and they will get only what you specified on your group! Say goodbye to dependency hell!
It is well worth mentioning that every single appliance gets a web-based appliance management interface that will allow you to not only manage services and configure settings of your system but also keep it up to date with newer versions of your product. Also, rBuilder allows you to manage the content of your product by promoting it to different labels giving you control to move it through different phases of a release cycle, say moving a well defined group from a Development label through QA and eventually Production.
By the way, the EC2 image I built for this demo can be launched from rBuilder Online. Make sure to have a valid Amazon EC2 credentials ready.
I could go on and on about some other cool features that are built in and available free of charge on rBuilder Online, but I’ll stop it here and let you do some research of your own. Better yet, you could opt out of using the community version of rBuilder and instead try the brand spanking new rBuilder Appliance. It is like having your own software appliance at your fingertips! 🙂
Og Maciel is a QA Engineer for rPath and a long time contributor to the translation efforts of several upstream projects. When not spearheading new projects or communities, he likes to fish, watch ice hockey and spend time with his 2 lovely daughters in Chapel Hill, North Carolina.