Tools for Building Appliances

An appliance is a pre-configured application and operating system bundle. Configuration options are controlled for ease of use and installation.
Management
Appliances can be managed with on-board management tools, and can integrate with corporate wide management consoles. These options allow for easy integration of the appliance into the virtualization environment.
Updates
Appliances are updated via standard package management tools.

Thincrust is a set of tools and metadata which make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy appliances. These appliances can be virtual or traditional "bare metal" appliances. The thincrust tools extend and utilize existing fedora tools, which are focused around best practices for appliance development and delivery. With these tools anyone with basic scripting experience can build appliances.

There are many versions of appliances. Some are database driven web applications combined with an operating system, while others are small embedded operating systems (e.g. toasters). Therefore, Thincrust will look to provide tooling and metadata to address the common patterns seen in appliance development for various scenarios. In addition, it will look to collect best practices to aid developers in their work.

Components

  1. Appliance Operating System (AOS):
    Minimal operating system definition. This is often referred to as a JeOS
  2. Appliance Creation Tool (ACT):
    A tool which generates bootable appliances images based on a kickstart file
  3. Appliance Configuration Engine (ACE):
    A boot time tool which can be used to configure an appliance at initial deployment, and to re-configure based on updates or "movement" of the binary (e.g. new ip address)
  4. Conversion Tools:
    Tools which allow developers to convert images between libvirt (xen/kvm), vmware, and ec2 environments.