Search documentation
karat

+

K

Roll-off strategies

This page describes the roll-off strategy options for recalls in greater detail.

Apollo will only roll Entities off recalled Releases when all constraints are satisfied, which may not be immediately after issuing a recall.

If you need to roll an Entity off a recalled Release immediately, you can issue a command.

Roll forward

By default, Apollo will attempt to roll forward to a newer Release. For a particular Entity on a recalled Release, Apollo will wait until a Release satisfying all the conditions is available and then propose rolling off to that Release. The conditions for the Release are:

  • Not older than the specified minimum Release
  • On the Release Channel that is tracked by the Entity in question
  • Not recalled

Until the above conditions are met, the Entity will remain on the recalled Release.

Allow Apollo to downgrade

In some cases, Apollo is not able to roll an Entity forward to a newer Release. When you toggle on Allow Apollo to downgrade, Apollo will roll an Entity back to a previous Release when rolling forward is not possible.

With this strategy, you specify a minimum Release that is older than the recalled Release(s). If Apollo is unable to roll forward, then it will roll Entities back to a Release that is greater than or equal to the minimum Release.

The Allow Apollo to downgrade option is selected.

The Release specified in this strategy is usually the oldest Release that is known to be good. Note that Apollo will try to get the Entity to the latest possible Release that meets the roll off strategy and passes all relevant constraints. For example, if the current, recalled Release is 1.2.3 and you allow Apollo to downgrade with minimum a version of 1.2.1, then any Release above 1.2.1 (inclusive) and not recalled will be considered. If Release 1.2.4 is available and not recalled that Release will be prioritized.

Once the Entity is rolled back, Apollo continues to manage the Entity as normal, and will continue proposing upgrades to newer, non-recalled Releases.

When to allow Apollo to downgrade

Allowing Apollo to downgrade to a previous Release is a good way to remediate affected Entities as quickly as possible, especially if you want to remediate Entities before a new Release is published. However, you should consider the tradeoff between remediating an issue and keeping newer functionality available for users.

For example, you may discover an issue that affects recent Releases of your Product, which introduce functionality that users are now relying on. If the issue you discover is minor, you may prioritize keeping that functionality available. In this case you can issue a recall for these Releases and not allow Apollo to downgrade. The affected Entities will remain on a recalled Release until you publish a new Release that fixes the issue.

Conversely, if the issue you discover is major, such as serious performance degradation or security remediation, you may decide that taking away new functionality is worth it to allow Apollo to roll off affected Entities quickly. In this case you can issue a recall for these Releases and allow Apollo to downgrade to a previous Release.

Freeze all version changes

With this strategy, you instruct Apollo to stay on the current Release and not recommend Plans to upgrade Entities that are running one of the Releases part of this recall. This is useful when you identify an issue and want to prevent the Release from being deployed to new places, but are unsure of the nature of the issue and cannot yet determine a safe Release.

If you want to roll frozen Entities off a recalled Release before the expiry date, you can edit the recall and toggle off Freeze all version changes.

The freeze all version changes option is selected.

When you want to freeze all version changes, you will need to specify an expiry date. After that date, all Entities will be rolled off their current Release.

Test roll-off on specific Environments

With this strategy, you specify a set of Environments and instruct Apollo to roll off the Entities in those Environments only. For every Environment that is not specified in this strategy, Apollo will keep them on their current Release and not recommend any Plans to upgrade Entities.

This is useful when you are testing whether your fix works or whether rolling to a particular Release is safe. This strategy allows you to perform roll-off only on specific Environments and observe the effects of roll-off without affecting the whole fleet.

The test roll-off on specific environments option is highlighted.

After you have completed testing on these Environments, you can edit the recall to specify the appropriate roll-off strategy for all Releases.