Docker scheint mir ein sehr vielversprechendes Model zu sein. Anstatt eine komplette VM zu verwenden, benutzt man ein Docker-Image, um Services verfügbar zu machen.

They are complementary. VMs are best used to allocate chunks of hardware resources. Containers operate at the process level, which makes them very lightweight and perfect as a unit of software delivery.

Das ganze dann noch mit einem NGINX als Reverse-Proxy verbunden & schon kommt Freude auf. Hier findet sich übrigens ein Starter-Tutorial zu diesem Vorhaben.