Deis Workflow, now in Beta!
We are excited to announce that we have recently cut a beta release for the next major release of Deis! As many of you know, for 2.0 we’ve decided to re-platform the PaaS from CoreOS’s Fleet onto Kubernetes. This gives us a stable cluster manager, a better scheduler, a smaller overall footprint (potentially a single machine!), and a great Kubernetes community to work with. This lets us focus our efforts on making it as easy as possible to deploy and scale your applications.
To borrow from the late, great David Bowie, beta brings along with it some Ch-ch-ch-ch-changes!
Change that Name!
Through the development process we’ve been using “v2” as the moniker for the big re-platform onto Kubernetes. To help differentiate the PaaS product from the company, we’ve decided to call the platform that you know and love Deis Workflow. Going forward Deis Workflow will be the PaaS layer that lives atop Kubernetes. Installed via
helm install deis/workflow-beta1 with documentation living at github.com/deis/workflow.
New Project Structure
One of the goals for Workflow is to ensure that each of the components which combine to provide the
git push UX, are also re-usable on their own. As with the alpha release, the project has moved away from a single, monolithic repo.
Here is a high-level mapping from v1 components to Workflow components:
- Documentation lives at deis/workflow
- Controller which serves the API lives at deis/controller
- CLI client lives at deis/workflow-cli
- Builder has been decomposed into: deis/builder, deis/slugbuilder, deis/slugrunner and deis/dockerbuilder
- The edge router lives at deis/router
- In-cluster Docker registry lives at deis/registry
- Database can be found at deis/postgres
One of the huge benefits in moving to Kubernetes is that Deis Workflow can lean on many of the facilities in the underlying cluster manager. This has greatly simplified many aspects of the platform. We have also used this opportunity to simplify other aspects of the platform:
- Deis Workflow no longer needs direct access to etcd for configuration and coordination. Instead, we use Kubernetes annotations, environment variables and direct API interactions between components.
- In-cluster Ceph is no longer required!
- Deis Workflow now comfortably fits on a single machine, which is great for development and testing!
Beta Functionality and New Features!
Deis Workflow beta is now functionally compatible with Deis v1 including log aggregation, Dockerfile support, certificate support, limits and tags.
Along the way, we were able to quickly sneak in some neat new features:
- Wildcard support for domain routing
- Wildcard support for TLS termination
- Single-server dev and test Deis Workflow now possible
- Development environment for each component is now Dockerized
- Canary release train, so you can follow development
As we have been developing Deis Workflow, we’ve been using a wide variety of “zero-to-Kubernetes” options:
- Kubernetes upstream: with vagrant, and AWS
- Google Container Engine
- CoreOS Kubernetes Distribution on AWS: kube-aws
- And a few of our own local solutions: krancour/micro-kube and TheNewNormal/kube-solo-osx
There are many options for zero-to-Kubernetes, both large and small. As we approach a stable release we will start to codify our recommendations for dev, staging and production configurations. We’d love to hear from you about your priorities and experience when planning your Kubernetes environment. File an issue or jump in our new #community slack channel!
See Workflow in Action
We recorded a quick demo of Deis Workflow in action. See the basic developer experience and how Workflow operations map to the underlying Kubernetes resources. See Buildpack, Dockerfile and Docker Image-based pulls in action:
Now is a great time to start kicking the tires of Deis Workflow. Follow our quick start guide to get up and running.
The Deis Team