1. A method comprising: on a virtualization platform, creating a first runtime instance of a virtual appliance; wherein the virtual appliance comprises a solution stack of software components selected from a reference architecture; responsive to satisfaction of at least one performance criterion, dynamically scaling-out the solution stack to one or more additional runtime instances of the virtual appliance; and wherein the dynamically scaling-out comprises distributing a subset of the solution stack to each of the first runtime instance and the one or more additional runtime instances.