Table of contents

The GDS Way and its content is intended for internal use by the GDS community.

Use continuous delivery

Continuous delivery helps you implement changes like new features into production quickly and safely.

Using continuous delivery has multiple benefits.

Iterate code frequently

It’s cheaper and easier to deliver small changes to production, meaning you can get feedback from users quickly.

Low-risk releases

Frequent small changes make it easier to diagnose problems, and the cost of fixing them is much lower than with large releases.

Quality software builds

Automated test suites allow you to quickly identify regressions in your software. This means you can focus on exploratory, usability, performance and security testing.

Maintainable code

Building and releasing software in small pieces helps you focus on writing small composable bits of code. This means your code is easier to maintain and update.

Essential concepts

With continuous delivery use frequent integration with the master branch, automatic build promotion and production monitoring.

Frequent integrations with master branch

With continuous integration you integrate with a master branch at least once a day, for example using source-control branching models like Trunk-Based Development.

If your team’s environment is regulated, and you need evidence that you review all code changes, raise and merge frequent small pull requests. For example, Fourth Wall Helpful, a client-side pull request and build status monitor for Github repositories, could help you build a team culture to support this practice.

Use approaches like feature-flagging or modular architectures to deploy partially complete features. This reduces the size of changes going to production and encourages your team to build modular, configurable systems.

Automatic build promotion

You can quickly distinguish between good and bad builds with automatic build promotion. By deploying builds that have to pass multiple test jobs downstream of the initial build process you can get quicker feedback if the build fails.

Use production monitoring and alerting

You can understand the effect of your changes on production using production monitoring and alerting. Monitoring essential parts of your system allows you to see if changes have any unintended impacts and to respond quickly in case of problems.

How to measure continuous delivery

It’s important to set performance metrics for your service and monitor its status.

Accelerate: The Science of Lean Software and Devops: Building and Scaling High Performing Technology Organizations suggests 3 metrics that correlate with high performing teams:

  • lead time to change
  • mean time to recovery
  • frequency of releases

You could use these metrics to understand how effective your build and release process is and measure any changes.

Further reading

Find out more about continuous delivery from:

This page was last reviewed on 24 April 2019. It needs to be reviewed again on 24 October 2019 by the page owner #gds-way .
This page was set to be reviewed before 24 October 2019 by the page owner #gds-way. This might mean the content is out of date.