Docker based Platform as a Service (PaaS) Deis has announced integration with Docker Hub as a source for container images. This complements their existing integration with Git. The open source platform is built on Docker and CoreOS to present a Heroku inspired workflow.
The new ‘deis pull’ command can retrieve Docker images from Docker Hub or a private registry. This avoids the need to build images locally then git push them into Deis, and makes the project a more natural fit into the rest of the Docker ecosystem. A screencast of 'Deis Pull in Action' shows off the new feature. Deis CTO Gabrield Monroy also gave a ‘sneak peak’ of the new capability in his Dockercon presentation ‘Evolution of a Docker PaaS’.
The use of Docker by Deis makes it an unopinionated PaaS in terms of languages or frameworks, as it can run anything that runs in a Linux container. Where it is opinionated is in the use of the twelve-factor app methodology (which has been previously covered in a presentation by Craig Kersteins of Heroku). Deis takes care of aspects like scaling, version management, rollback and log management. State management is explicitly not offered, so applications need to connect to databases or other state management systems outside of Deis.
Deis can run on local VMs using Vagrant, and there are also install scripts for infrastructure as a service providers such as Amazon, Rackspace and DigitalOcean. The platform can also be run on bare metal hardware, with OpDemand, the commercial entity behind Deis, providing support and services for those wanting to build and manage their own Deis environment.
In addition to using CoreOS as its underlying Linux distribution Deis harnesses fleet, the ‘distributed init system’ project from the CoreOS team that brings together local system management daemons (systemd) and the etcd distributed key value store (which incorporates the Raft consensus algorithm). Deis makes use of fleetctl to manage its clusters.
Deis has also announced that it’s working with the Mesosphere team to use the Mesos scheduler via its Marathon framework for long running applications. The project also has plans to integrate with Docker’s libswarm API so that it can take advantage of multiple back end orchestration systems.
Deis isn’t the only Docker based PaaS, with Flynn being the other popular contender. Other PaaS systems like CloudFoundry and Apcera Continuum are also pursuing deeper Docker integration so that Docker images can be deployed and managed alongside of more traditional language/framework based applications.