You pretty much just defined the goal of Docker. And it's already incredibly close to what you describe.
shards = []
boot 'ec2', 'us-east-1', (server) ->
shards.push server.start 'mongod_docker_image'
boot 'ec2', 'us-west-1', (server) ->
shards.push server.start 'mongod_docker_image'
setTimeout ->
shard.stop() for shard in shards
, 5 * 60 * 1000
Does this exist yet? I started writing my own earlier today with Docker because I haven't found anything yet.The plan is to cook a single ami that can be deployed ad infinitum. The image only has a slave application on it that receives and runs Docker images.
A Docker AMI Generator exists. DigitalOcean offers an out of box Docker host. OpenShift will replace cartidges with Docker. OpenStack can provision Docker containers. Other PaaS/IaaS are in the works.
Running a registry is as simple as `docker run samalba/docker-registry`.
Pushing to that registry is very simple, especially if you have a reverse proxy ( I use hipache. Mine is registry.stinemat.es )
So, assuming those first 3 are in use in a 'convenient' way (as defined by you) - your request exists today. That matter of convenience will grow.