In order to easily distribute a complicated piece of software, we created a virtual machine appliance. We developed an automated and modular build process.
Capistrano can facilitate the use of Chef Solo for configuring and managing servers. This allows us to provision and manage servers in different environments.