I have a bit of a suggestion based off of this that I think would increase the uptake of DreamCloud. Other cloud providers have already started doing this sort of thing, such as AWS.
The idea is to have a Docker cloud built on-top of DreamCompute and DreamObjects using something like Deis (http://docs.deis.io/en/latest/) to provide a really nice workflow. This would allow you to push both Heroku style applications and Docker containers into a Git repository and for it to be automatically deployed to your own DreamCloud hosts.
Essentially I see it working like this: (Please note that Deis is not multi-tenant and would need to be modified to suit this)
The control plane for Deis is installed as a shared DreamHost service within the standard DreamHost panel. This would provide each user with a private Git repository that they can push projects to. The user would need to provide a DreamObjects bucket in order to push built Docker containers to (This could be automatically created upon first use) and a DreamCompute account. The user would configure the hosts that they want to use on their DreamCompute account. (E.g. 2x 1vCPU / 1GB hosts with 12GB of storage each, spread across two availability zones) These instances would be automatically managed and restarted by the DreamHost Docker Cloud service.
Upon the user pushing a new application to the Git endpoint, Deis would automatically build the project and deploy it to the user's DreamCompute instances. The user can then scale these as required. (E.g. One server per availability zone.) DreamHost would have to provide a shared load balancer service that could connect to the instances via a new DreamCloud network and therefore only requiring private IP addresses. The user could then configure a CNAME to the load balancer's endpoint which could be automatically picked up by the load balancer through the DreamHost panel and routed to the correct instances / application.
So what does this require from DreamHost ?
- A second availability zone
- Auto scaling with health checks
- Shared load balancers
- Shared Deis service
- Deis modifications for multi-tenancy (Please consider the following: https://github.com/deis/deis/blob/master/docs/managing_deis/security_considerations.rst)
- DreamHost panel modifications
- DreamCloud instance templates