So can I run linux instances on this DevStack cluster that I can run VM's on so I can host docker containers. I feel that two levels of virtualization is not enough for me and would like three or four.
What you describe is accurate. In fact, there's one level more because the Linux instance you run is already running as a nested guest. So in your scenario there's 3 hypervisors involved (Amazon Xen, Ravello HVX, KVM) and then your Docker host.
More seriously, I am very bullish on Docker myself. But I see it as a supplement rather than a replacement for virtualization.
There is a Docker driver for Nova as well, so it's possible to use OpenStack's Devstack and Nova projects to directly spawn containers. Unfortunately, it abstracts away the Docker API, although you can use Docker-in-Docker if you wish to maintain the ability to use other orchestration tools (which, incidentally is the same model as running containers on VMs)
Eventually this should all be manageable by libswarm for various combinations of containers on baremetal, containers on containers, or containers on VMs.
The use case we're trying to solve here is a tad different though: it's to provide virtual infrastructure for the "first level" i.e. in the case of Docker the outer container host. For Docker the answer could be EC2, since Docker itself doesn't need VT. However that precludes you from using KVM in any layer below, which in turn means Linux only and fairly simple networking (no multicasting even in VPC, and hence no VXLAN for example)
We very much wanted to create something to assist OpenStack developers in developing OpenStack itself. It should be especially useful for projects such as Nova, Neutron and Ironic.
Well, from a customer point of view it's just a regular hypervisor / guest setup.
The levels below are required to make an IaaS cloud look more like the datacenter. The underlying assumption is that the bigger flexibility you have in datacenter deployments is beneficial, especially when we talk about any application not specifically designed for the cloud.
I may be mistaken, but aren't the larger EC2 machines priced fairly linearly with the improved resources? i.e. a machine with 2x the resources typically costs 2x as much?
If this is the case then can someone let me know the use case? Is this for better manageability? Or is it to overcommit (i.e. run 3x 4gb ram nodes on 8gb of ram).
Other then that I can't see the advantage over dynamically spinning up & down nodes as required directly on AWS.
I'm struggling to understanding where OpenStack fits in and what features it provides over a stock Ubuntu install or perhaps a CoreOS cluster? Does it provide a consistent platform to deploy apps on?
This is more a generic OpenStack question. But the way I look at it, OpenStack is the "fabric" that can be used to create a large, distributed IaaS cloud such as Amazon EC2. People are also using it to create on-premise, private clouds. CoreOS on the other side is very much focused on Linux containers (Docker).