GoCD's current roadmap and the work being done towards it
GoCD's current roadmap consists of two main parts:
  1. Better support for cloud deployments (cloud-native GoCD support).
  2. Better user experience.
These two parts are explained below. Apart from this, GoCD as a product continues to evolve along these values:

Better support for cloud deployments (cloud-native)

Container systems (almost single-handedly Docker) have changed how applications are built. The fact that applications can now be shipped and shared in a standardized manner with dependencies defined or bundled in a standardized manner changes both the development side and the operations side. Applications can now be defined in terms of container images and the interactions between containers.

Container orchestration systems (such as Kubernetes and Mesos) are in the middle of a major shift in how applications are deployed and managed. They are the shipping infrastructure equivalent of the virtual world and by the abstractions they provide, they make it easier to deploy, manage and monitor entire fleets of containerized applications across multiple nodes, physical or virtual. Quite often, these nodes are in the cloud and these orchestration systems provide reasonable abstractions over them.

All of these changes inevitably affect the CD workflow. The good news is that in many cases, it becomes simpler. The processes and underlying workflows will still need to be considered and modeled. Though the generic nature of GoCD allows these changes to be modeled today, GoCD will be extended to embrace these changes and make them easier and more streamlined.

Most of this work will focus on Kubernetes as the first implementation, since it seems to be the most mature and accepted container orchestration system. All of the work will be done as generically as possible, so that GoCD is not tied irrevocably to Kubernetes. Extension points will be identified, so that the Kubernetes-related work can be inside plugins, so that these ideas can be extended to other orchestration systems.

The work will be based on these high-level ideas:
  1. Running GoCD natively on Kubernetes: Involves ...
    1. Running the GoCD server in Kubernetes.
    2. Running automatically scaled elastic agents in Kubernetes.
  2. Better support for the Docker workflow: Involves ...
    1. The idea of building an image and propagating it across multiple environments till production.
    2. This involves allowing build artifacts to be natively published to artifact repositories (such as a Docker Registry, Artifactory or S3).
  3. Deployments to Kubernetes: Involves ...
    1. These can be modeled using simple commands (and that is encouraged).
    2. More support for generating deployment yamls and helm charts with the correct versions.
    3. Ability to monitor deployments (they might be done asynchronously by Kubernetes).
  4. More content around CD in this new world. It's not always as straightforward as you think.

More details can (soon) be found here.

On the commercial side, this might include automatic scaling of nodes (not just containers) across different cluster systems (GCE, Azure, OpenShift, Mesos, etc) to save cost.

Better user experience

This involves a refresh of the GoCD user experience (not just the user interface). Based on many interviews with users of GoCD and other solutions, there has been a lot of feedback gathered about changes to the user experience of GoCD. These changes will take the form of:
  1. Better discoverability of features.
  2. Improved movement through the app (easier to get to what you need).
  3. Better use of colors and icons.
  4. Better wayfinding (headers).
  5. Rewrites of significant parts of the application to provide new data or existing data in a better form.
... and more.

You might be able to see of this already, on the VSM (Value Stream Map) pages. If you haven't had a chance to provide feedback or ideas, more details can (soon) be found here.


Though not part of this roadmap, there are other aspects such as better credential management, better plugin management, more granularity in permissions, etc. which will continue to be worked on. This roadmap just talks about the bigger pieces and it will be changed to reflect changing priorities.

About the roadmap:

The idea of this roadmap is to mention and explain the plans for GoCD in the near-term. It does not mention timelines explicitly, because none of this is set in stone. This can be changed based on your ideas and feedback. The goal is that the work mentioned above will be in progress or will start soon. The roadmap document itself will be updated as often as needed.

Last updated: Dec 7, 2017