There are so many open projects in the cloud space that one would think it's a solved problem.
Here's a list off the top of my head:
1. Docker - Container implementation.
2. Kubernets - Manage a cluster of Linux containers.
3. Mesos - Manage a cluster of resources (not just containers, I'm guessing there are some feature overlap with Kubernets).
4. CoreOS - An OS specialized in running containers.
5. RethinkDB, CouchDB, Cassandra - Distributed databases
6. Ceph, GlusterFS - Distributed file systems
7. RabbitMQ, NSQ, NATS - Distributed queue systems.
8. Manage VM's in a Data center ?? - I don't know any projects in this space.
What's missing is an interface to manage all these together. Maybe this is the direction OpenStack should be heading?