I've been following PaaSs built on docker for a while, and it seems like the new swarm mode in version 1.12 makes them pretty much obsolete. I was a huge fan of deis (deis.io), but it seems like they are pivoting away from docker to do something different (deis.com). At this point, think docker has become big enough such that building a platform on top of it is pretty much redundant, but something like this may prove useful for more modular container systems such as rkt.
My brief skim over the Swarm announcement was that, while it focuses on the orchestration problem, it's not a fully-fledged PaaS. It's somewhere closer to where Kubernetes is working.
Essentially, you turn on a swarm and then ... oh, I still need routing. And service injection. And I need something to build the app. Something to hold the images. I guess I need standard debugging interfaces. Standard performance measurement. And ... and ... and ...
PaaSes require a lot of engineering.
Disclosure: I work for Pivotal on the fringes of one such PaaS, Cloud Foundry.
At Pivotal we dogfood the latest releases of Cloud Foundry by deploying it to Pivotal Web Services: our public, we-make-money-from-this, there-are-legal-and-marketing-consequences-for-fucking-up cloud service.
By and large, nobody notices when we do it. BOSH is pretty good at that stuff.
Deis isn't pivoting away from Docker and has always required additional pieces of infrastructures that are not strictly Docker (Kubernetes in v2 and CoreOS in v1). I haven't tried Swarm but I'd be surprised if it came close to Kubernetes in terms of stability and community support given the latter had a good head start and is backed by Google which uses it in production.
The use of "today" there has me curious, has any relevant Google product ever run on Kubernetes? I was under the impression that Kubernetes was a productized descendant of Borg (which is what Google has always run everything relevant on).
This project has not been updated since February. Cursory searches are not showing more active forks. It might be interesting to look at the code for educational purposes, but I wouldn't recommend building on this.
There's quite a few options in this area. I've recently started using dokku for personal projects. My current plan is to migrate to deis in future if/when I want multiple nodes.
If you're only targetting 2-3 systems for redundancy (each the same apps), you could configure them exactly the sime behind a load balancer, then have each deploy just run to all 2-3. Did this as a POC early last year.
In that case, it was using Azure Tables and an ElasticSearch cluster. Also, you'd probably want to manage databases used by multiple systems outside your dokku anyway, but I would just assume use a DBaaS offering given an option is suitable, I have less desire to manage a database/backups, etc.
Cloud Foundry predates pretty much everything else. It was decided in the early days to support the full buildpack lifecycle as defined by Heroku, to the point that a lot of Heroku buildpacks run on Cloud Foundry with no or minimal changes.
Disclosure: I work on buildpacks for Pivotal, the majority donor of engineering to Cloud Foundry.
Really pleased to see that they've open-sourced this work! I interviewed at Ooyala back in 2013 when they were just getting started on this project so it's quite satisfying to see how far they've taken this project!
This looks cool. I'm using dokku to do that and I'm very satisfied with it, but I would like something closer to core docker experience, which would make it easier to integrate with other tools/process (like swarm, which not to have on dokku is a big problem).
This is where I want to see docker go, being able to handle zero downtime deployment without pain, good luck!
Unfortunately, none of those services or projects existed when we first started building Atlantis at Ooyala. I haven't been at Ooyala for a while now, so not sure what their plans are for this project now that open source tooling with wider support exists.
I hear similar questions about Cloud Foundry: "why did you write Diego instead of using Kubernetes?" -- because Kubernetes didn't exist. "Why BOSH instead of Terraform?" -- Terraform didn't exist (and has different opinions, anyhow). "Why Garden instead of Docker?" -- Docker just didn't exist. And so on.
I call it NIYS: Not Invented Yet Syndrome.
Disclosure: I work for Pivotal, which donates the majority of engineering on Cloud Foundry.