To step through a hands-on experience in using the information covered in this presentation, see Application to Appliance: A Hands-on Guide at the rPath Wiki (wiki.rpath.com).
To discuss Conary and appliance development with other community users, visit the rPath Forum (forum.rpath.com).
Presenter Stephanie Watson, 1996 graduate of NCSU, is a technical writer and traininer with rPath, Inc., and may be contacted by email at stef@rpath.com.
What makes a software appliance?
A "software appliance" is application software plus just enough operating system to run that software on server class harware or as a virtual machine (making it a "virtual appliance"). Furthermore, the software appliance has an administrative interface that does not require familiarity with the underlying operating system in order to perform ongoing maintenance.
On the receiving end, a customer of a particular software application can focus on a hardware purchase or virtual machine allocation sufficient for the appliance without budgeting for a separate operating system installation to support the application. After receiving installation media, the customer can step through a quick install and straightforward configuration and have a successfully deployed server in an hour or two. Besides the simple administrative interface, customers can have confidence that appliance updates will work without concern about compatibility with custom configurations.
By reducing the time and cost of installing, configuring, and maintaining the server software, the software customer can experience a larger value in the software purchase itself.
On the development end, software developers can spend less research and development resources on OS compatibility and certification and put more effort into the core application. The vendors can also, in turn, assure that support is focused on the application and not flooded with issues created by custom configurations on one of several server OS environments.
In terms of system administration, software that is installed on a general-purpose operating system may require hours of setup and configuration. Appliances, though, are designed to be installed and configured within minutes with the underlying operating system automatically configured and optimized to run the application software.
Server management is also simplified with appliances. Updates to software on a general-purpose OS may require extensive planned downtime with a large window for troubleshooting updates. An appliance is designed to update either automatically or with the click of a single button in a GUI, and updates are not likely to conflict with the deployed configuration.
In addition to simplified deployment and updates, appliances are designed to eliminate the need for OS familiarity when troubleshooting and performing regular maintenance. In the appliance model, a user should need little more than a basic custom GUI (such as a web interface) to perform administrative tasks.
Software developers can also see benefits by working in an appliance model. When software is developed for a general-purpose operating system, developers may have to develop code to work for several contrasting OSes. Also, they must "certify" the software to work in each OS, which can be costly in addition to time-consuming, and which can present an obstacle for smaller companies wishing to break into the server software market. Even when the software is certified, providing updates does not guarantee that those updates will work on all systems, and the software vendor will still need to provide extensive support when updates go awry. Appliance updates can be tested and released with confidence that custom configurations on deployed appliances will not create conflicts with those updates..
Virtualization is a growing trend to better make use of hardware resources and to conserve money and energy used to run servers in a corporate environment. Appliances are the ideal way to provide software for virtual environments. Virtual appliances are software appliances deployed as virtual machines on one of several common hypervisors. Virtual appliances take up less resources by having just enough OS to run the application. Also, virtual appliances can be deployed quickly as needed in a virtual environment.
rPath's rBuilder is the first product designed to take a binary set of packages and create images ready to launch in any of several virtual envirnments.
![]() |
+ | ![]() |
= | ![]() |
loadSuperClass('group-appliance=conary.rpath.com@rpl:1')
class GroupExample(ApplianceGroupRecipe):
name = 'group-example'
version = '0.1'
def addPackages(r):
r.add('example-application')
loadSuperClass('group-appliance=conary.rpath.com@rpl:1')
class GroupExample(ApplianceGroupRecipe):
name = 'group-example'
version = '0.1'
# Set the label from which to obtain rAPA
rapaLabel = 'raa.rpath.org@rpath:rapa-3'
def addPackages(r):
r.add('example-application')
# Add a package for any rAPA customizations
r.add('rapa-customizations')
loadSuperClass('group-appliance=conary.rpath.com@rpl:1')
class GroupExample(ApplianceGroupRecipe):
name = 'group-example'
version = '0.1'
rapaLabel = 'raa.rpath.org@rpath:rapa-3'
def addPackages(r):
r.add('example-application')
r.add('rapa-customizations')
# Replace a rAP package with a shadowed and
# modified version, custom to the appliance
r.replace('core-rap-package')