When we originally designed this, we made the assumption that by freezing the dependencies that we could, the possible changes would be isolated in lower-risk, more slowly moving c
In order to easily distribute a complicated piece of software, we created a virtual machine appliance. We developed an automated and modular build process.
The landscape in this area (building Virtual Machines / Virtual Appliances / Cloud Images) is very rapidly changing, and new options are popping up every day.
LVM allows volumes to be dynamically resized online—no rebooting is required. This presumes, of course, that LVM is set up initially when the virtual host is created.