Progressive delivery with GitOps

Another scenario in which GitOps is applied is in the progressive delivery of applications. Progressive delivery is a set of deployment strategies that developers use to gradually release new system changes. By gradually releasing and observing new system changes, a progressive delivery strategy can reduce the impact of any issues within the new release.

There are several strategies that fall under the umbrella of progressive delivery. However, there is an overarching pattern present within most of them. The pattern consists of the following steps:

  1. Automate the deployment of new changes to the system.

  2. Run the new system version alongside the existing system for some time.

  3. Divert live traffic or generate synthetic traffic to the new system version.

  4. Observe the behavior of the new system version.

  5. Route additional traffic to the new system version if it exhibits successful behavior.

  6. Roll back the new system version if it exhibits unsuccessful behavior.

Progressive delivery strategies expect a high degree of automation within a system's continuous delivery pipeline, and monitoring capabilities provide substantial visibility into the system's operations.

Progressive delivery strategies

Under the umbrella of progressive delivery strategies, we'll find strategies such as canary deployments, A/B testing, and blue/green deployments. These strategies adhere to the core pattern described above but will differ in how they route traffic between the existing system and the new version being tested.

  • Canary deployments: A small percentage of traffic is initially routed to the new application version (known as a canary) and monitored. As monitoring indicates the successful behavior of the new version, traffic is incrementally increased until the eventual promotion of the new version.

  • A/B testing: The new application version runs with experimental features alongside the existing application, and a percentage of traffic is diverted to the new version. Business metrics are monitored to determine which version of the feature is most effective, and the most beneficial features are promoted.

  • Blue/green deployment: The new application version is released to an environment identical to production, and test traffic is run against it. Upon successful completion of the tests, traffic is diverted from the current version of the system to the new version.

Flagger

Get hands-on with 1200+ tech skills courses.