Skip to content

Latest commit

 

History

History
145 lines (114 loc) · 5.78 KB

File metadata and controls

145 lines (114 loc) · 5.78 KB
title:Roadmap
description:The Deis project roadmap

Deis Roadmap

The Deis Roadmap is a community document created as part of the open :ref:`planning`. 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 :ref:`Release Schedule, <release_schedule>` roadmap items are designed to provide a sense of direction over many releases.

Etcd Hardening

We have recently seen various issues with etcd performance, which can cause issues with Deis. We will focus on re-evaluating our implementation and use of etcd in Deis, with a focus on performance and reliability.

This feature is tracked as GitHub issue #4404.

Rigger

We want the provisioning process of CoreOS hosts to be as smooth as the deisctl experience when users install and start Deis. We've started working on a tool called Rigger which provisions hosts and deploys Deis on any supported provider.

We're still defining the interface between Rigger and the provider-specific provision logic. We'd love input from the community on this discussion in #4345.

New Default Scheduler

Deis now has support for Docker Swarm, Apache Mesos, and Google Kubernetes as application schedulers. With the known limitations of fleet (primarily, not being a resource-aware scheduler), we should investigate using a different scheduler as our default.

This feature is tracked as GitHub issue #4222.

Permissions and Teams

Deis deployments in larger organizations require more fine-grained control over users and permissions. Implementation of teams and improved user permissions are tracked in separate issues:

Monitoring & Telemetry

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.

Stateless Logger

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.

Internal Service Discovery

To provide a better container networking experience, Deis must provide internal service discovery for components to coordinate.

This feature is tracked as GitHub issue #3072.

Update Service

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.

This feature is tracked as GitHub issue #2106.

Deis Push

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.

TTY Broker

Today Deis cannot provide bi-directional streams needed for log tailing and interactive batch processes. By having the :ref:`Controller` drive a TTY Broker component, Deis can securely open WebSockets through the routing mesh.

Service Broker

In Deis, connections to :ref:`concepts_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.