Deis Workflow, Now Stable!

9 Jun 2016

I am proud to announce the first stable release of Deis Workflow. This means the Deis community now considers Workflow suitable for production deployments. Deis Workflow is the first PaaS built on Kubernetes to reach this milestone.

Deis Workflow is the new name for our open source PaaS, and is the second major version of what we are now calling Deis v1.

According to Docker Hub, Deis v1 has been downloaded over 6.5 million times.

Deis v1 is trusted in production by hundreds of companies, including Mozilla, The RealReal, Hearst Corporation, and dozens of others.

What did we change in version two?

Well, the most significant thing we did was re-platform from CoreOS Fleet to Kubernetes. The switch to Kubernetes gives us a stable cluster manager, a better scheduler, a smaller overall footprint, and a great Kubernetes community to work with.

Developer, Serve Thyself

Developers want to move fast.

Deis Workflow allows developers to go from code to cloud in seconds. Just as important: with Deis Workflow, developers don’t need to understand Docker, Kubernetes, or containers to get started.

With support for multiple build formats, Workflow evolves with developers as they become more sophisticated:

  • Buildpacks allow developers to git push code. Workflow figures out how to turn it into a Docker container.
  • Dockerfiles allow developers to git push code that includes a customized Docker runtime environment.
  • Docker images allow developers to use pre-built Docker Images to facilitate more sophisticated CI/CD integrations.

This flexibility allows developers to do more, and lets ops focus on things like security, monitoring, load testing, and capacity planning.

Same Car, New Engine

Deis Workflow features the same CLI, REST API, and user experience that made the first version so popular. So what has changed? Stability and scale.

As our users began to push Docker and CoreOS to their limits, we derived the need for a more robust scheduler and engine.

This led to a detailed evaluation of Docker Swarm, Mesos, and Kubernetes.

We integrated each orchestrator into the Deis project as a "technology preview" to elicit feedback from our large community of users. We also sent patches to upstream projects as we became familiar with each code base.

When the dust from our evaluation settled, Kubernetes was left standing.


It came down to this:

  • Reliable by design: under the hood, Kubernetes is powered by control loops that constantly push the world toward a desired state, defined by declarative APIs.
  • Loosely coupled: Kubernetes' use of labels and label selectors allow it to model living, breathing systems that consist of many types of objects, with many different versions.
  • Well-defined scope: like most great software projects, the Kubernetes project values what it won't do as highly as what it does do.

After refactoring Workflow components to lean on Kubernetes as much as possible, the result has been a stability increase that must be experienced to be believed.

Modular Meets Standalone

Deis Workflow consists of many components which run as microservices inside a Kubernetes namespace.

In brief:

  • controller: workflow API server
  • builder: Git server and source-to-image component
  • dockerbuilder: the builder for Docker based applications
  • slugbuilder: the builder for buildpack based applications
  • slugrunner: the runner for buildpack based applications
  • fluentd: backend log shipping mechanism for logs
  • postgres: the central database
  • registry: the Docker registry
  • logger: the (in-memory) log buffer for logs
  • monitor: the platform monitoring components
  • router: the HTTP(S) edge router
  • minio: the in-cluster, ephemeral, development-only object storage system
  • workflow-e2e: end-to-end tests for the entire platform

We are extremely proud of the level of modularity and reusability we’ve achieved. We love hearing stories of how, for example, teams are using our edge router without the rest of Workflow.

But we’re not done yet!

The deconstruction won’t stop until every component runs, standalone, inside Kubernetes, without requiring the rest of Deis Workflow.

Expect more progress on this front soon, as we continue to improve Workflow.

What Are You Waiting For?

Workflow is the best way to get developers into the world of Docker and Kubernetes. It's also incredibly easy to install. Once Kubernetes is running, it takes less than five minutes to get up and running with a production-grade Workflow installation.

Check out the Deis Workflow quickstart.

Posted in Workflow, Release, Announcement

triangle square circle

Did you enjoy this post?