Lately, I have been using Docker Swarm... build containers on a private deployment machine with all dependencies, and deploy them to production machines in a load-balanced, isolated environment that is fault tolerant.
Works nicely and I don’t have to worry about subsequent package updates for other apps breaking existing ones.
Cheers!