The Deis Roadmap is a community document created as part of the open Planning Process. Each roadmap item describes a high-level capability or grouping of features that are deemed important to the future of Deis.
Given the project’s rapid Release Schedule, roadmap items are designed to provide a sense of direction over many releases.
Today Deis cannot provide bi-directional streams needed for log tailing and interactive batch processes. By having the Controller drive a TTY Broker component, Deis can securely open WebSockets through the routing mesh.
- [ ] TTY Broker component
- [ ] Interactive Deis Run (
deis run bash
)- [ ] Log Tailing (
deis logs -f
)
Today Deis uses Fleet for scheduling. Unfortunately, Fleet does not support resource-based scheduling, which results in poor cluster utilization at scale.
Fortunately, Deis is composable and can easily hot-swap orchestration APIs. Because the most promising container orchestration solutions are under heavy development, the Deis project is focused on releasing “technology previews”.
These technology previews help the community try different orchestration solutions easily, report their findings and guide the future direction of Deis. Kubernetes, Mesos with Marathon, and Swarm will all be available for testing in Deis v1.9.
- [X] Swarm preview
- [X] Mesos preview
- [X] Kubernetes preview
A CP database like etcd is central to Deis, which requires a distributed lock service and key/value store. As problems with etcd directly impact platform stability, Deis must move to the more stable etcd2.
- [X] Switch to etcd2
- [X] Migration strategy for etcd 0.4.x -> etcd2
This feature is tracked as GitHub issue #3564.
Deis installations today use custom solutions for monitoring, alerting and operational visibility. Deis will standardize the monitoring interfaces and provide open source agent(s) that can be used to ship telemetry to arbitrary endpoints.
- [ ] Host Telemetry (cpu, memory, network, disk)
- [ ] Container Telemetry (cpu, memory, network, disk)
- [ ] Platform Telemetry (control plane, data plane)
- [ ] Controller Telemetry (app created, build created, containers scaled)
This feature is tracked as GitHub issue #3699.
For users running Deis in large environments, support is lacking for things like separating the control plane and data plane (application and routing mesh), running etcd on only a fraction of the hosts, and other architectural design customizations. Specifically, work is in progress for:
Users who have elected to run a Ceph-less cluster give up application logs since
deis-controller
has nowhere to store them. To alleviate this, we plan to implement an in-memory ring buffer
for the deis-logger
component, so that a reasonable period of recent logs is stored and can be queried with
deis logs
.
This feature is tracked as GitHub issue #4000.
Deis must support 100% automated, zero-downtime updates of the control plane. Like CoreOS, Deis clusters should be attached to an alpha, beta or stable channel and rely on an automatic update mechanism. To accomplish this, Deis plans to use the Google Omaha Protocol as implemented by CoreUpdate.
- [ ] Update client/agent
- [ ] Update server
- [ ] Automatic CoreOS upgrades
- [ ] CI Integration
This feature is tracked as GitHub issue #2106.
End-users should be able to push Docker-based applications into Deis from their local machine using deis push user/app
.
This works around a number of authentication issues with private registries and deis pull
.
- [ ] Docker Registry v2
- [ ] Deis Push
To provide a better container networking experience, Deis must provide an overlay network that can facilitate SDN and improved service discovery.
- [X] Overlay Network (flannel)
- [ ] Internal Service Discovery
- [ ] Migration Strategy
This feature is tracked as GitHub issue #3812.
In Deis, connections to Backing Services are meant to be explicit and modeled as a series of environment variables. Deis believes the Cloud Foundry Service Broker API is the best embodiment of this today.
- [ ] Deis Addons CLI (deis addons)
- [ ] PostgreSQL Service Broker
- [ ] Redis Service Broker
This feature is tracked as GitHub issue #231.