I’ve been following an interesting discussion within the Jericho Forum on distributing and separating applications on a cloud server.
The conventional approach today is to use VM as the unit of separation and VM images as the unit of distribution. There’s nothing intrinsically wrong with this, but VMs are very big and slow to move around, and the degree of control you get is pretty coarse.
Is there a better approach? It looks like there is – the union filesystem, unionfs. This allows a set of directories scattered around a filesystem to be mounted in a single directory. So, all the files and directories modified by a single application installation can be mounted in a single place so the people responsible for the application can see it as a single whole. To uninstall, just unmount the filesystem.
There are facilities to mount several applications in the same directory, and there are experimental filesystems to mount tar archives as filesystems.
Of course, all this is just on Unix…