Novell has launched a new Web service called SUSE Studio that simplifies the process of building Linux-based software appliances. It provides a convenient interface for creating custom versions of Novell's SUSE Linux distribution with specialized configurations. The service is part of Novell's broader SUSE Appliance Program initiative.

Enterprise software deployment comes with a lot of serious technical challenges. Getting a complex piece of server software up and running on backend infrastructure often requires system administrators to wrestle with dependencies and configuration issues. Software appliances are increasingly viewed as a compelling solution to this problem.

A software appliance is a preconfigured stack that includes a software program and its dependencies bundled with a minimal operating system image that can get the program up and running with the smallest possible resource footprint. This concept is often referred to as "Just Enough Operating System" (JeOS).

SUSE Studio allows users to build software appliances on top of SUSE Enterprise Linux or OpenSUSE. It offers several templates that can be used as a starting point, including a minimal JeOS template, a server template, a minimal X11, KDE, and GNOME templates. After selecting a base template, users can customize it and add additional software.

SUSE Studio can output software appliances in several formats, making it easy to generate images that can be deployed on physical hardware, virtualized environments, or cloud computing services. It can build virtual disks in the standard formats supported by VMware and Xen, it can generate ISO files for making installable Live CDs, and it can generate raw disk images that can be written directly to physical hard drives or removable media such as USB thumb drives and SD cards. Novell says that support for Amazon EC2 images is coming soon.

SUSE Studio provides a simple and elegant Web interface for customizing the software that is bundled in the distro image. Users can browse and search the official SUSE repositories and select individual packages that they wish to add. SUSE Studio will automatically compute the required dependencies and include those too. Users can also add additional third-party repositories or upload their own SUSE-compatible RPM files. As you add and remove packages, you will be able to see the disk footprint of the appliance. This is particularly useful when building images for USB thumb drives or netbooks with limited drive capacity.

In addition to being able to select custom package sets, users can also upload their own files and specify where those should reside on the generated filesystem. These are applied as an overlay, so it's possible to selectively overwrite files that are included in various packages.

SUSE Studio provides a dashboard for customizing the appliance. You can specify network settings and default localization settings. It's also possible to create system user accounts with specific passwords and groups. If the appliance includes MySQL, you can upload a SQL dump to populate the database with default content. It's even possible to customize appliance branding by setting a custom logo image and wallpaper.

After SUSE Studio generates an appliance, you can perform a live test directly in your browser. This is possibly the most impressive feature of SUSE Studio. When you click the test drive link for an appliance, SUSE Studio will run it in a remote virtualized environment and display it to you in your browser window through an interactive Flash VNC client. This allows you to test the appliance before you download and deploy it. The test drive feature has basic networking support so that you can test Web applications that are running in the appliance.

The SUSE Studio user interface is extremely well-engineered. The whole experience is polished, intuitive, and painless. It's much easier than working with Ubuntu's vmbuilder command line tool. It's also slightly better organized than rPath's rBuilder, which we looked at last year.

Novell developer Cornelius Schumacher has written a blog entry with additional technical details about the service. He says that it's largely a Ruby on Rails application that was built on top of SUSE's Kiwi command-line appliance tools. He also discusses some of the ways that he is using it personally for appliance building.

"For my personal work Studio has become an important tool. I used it for example to create the Marble Live CD, or for my hackweek project, the KDE SDK," he wrote. "It's also a nice way to try out software or create an updated openSUSE version, for example with the latest KDE."

SUSE Studio is a top-notch tool for building virtual appliances. It showcases the flexibility of the Linux platform and makes distro customization trivially easy. To take SUSE Studio for a spin, you can register at the website.

Further reading