Container based virtualization can revolutionize the way we deliver software. They simplify
- running the exact same software stack in all environments
- running the exact same software stack on all servers (even on our development machines)
- do rapid deployments and rollbacks, as often as we want
- do canary or red/green deployments
- better utilize available resources
Docker (www.docker.io) makes it easy to manage LXC containers (the same technology Heroku is using behind the scenes) and enables us to build our own "private Heroku" to test and deliver our software. And the best thing: you can decide yourself if you want to run them on bare metal servers, the cloud or any cheap VPS. You can even use those advanced deployment techniques when your site still fits on one physical server.