Skip to main content
Version: 58.0.0

a9s Deployment Updater

This section describes the operation of the a9s Deployment Updater component.

The a9s Deployment Updater is intended to provide an automated way to update existing Service Instances, so that a all Service Instances can run with the latest version of the used BOSH releases, stemcell or cloud config.

Overview

The a9s Deployment Updater is a BOSH errand that is part of each a9s Data Service deployment manifest as a dedicated Instance Group. The a9s Deployment Updater errand is not executed automatically during a deploy of a a9s Data Service but it is executed upon operator's request after the deploy task has finished.

The a9s Deployment Updater relies on the a9s Service Broker that is part of each a9s Data Service deployment to receive a list of Service Instances that should be updated or recreated. For each of these Service Instances, the corresponding endpoint in the a9s Service Broker is then called to trigger the desired action.

Strategies

The a9s Deployment Updater supports two different strategies to update Service Instances of a given a9s Service Broker. When a strategy is chosen, the a9s Deployment Updater requests a list of Service Instances with a specified state and that are known by the configured a9s Service Broker.

Update

For each of these Service Instances an update is triggered at the a9s Service Broker, which in the end leads to a bosh deploy.

The Platform Operator can configure the a9s Deployment Updater to use a specific number of Service Instances as canaries to ensure that the update will run successfully. Additionally, the a9s Deployment Updater can be configured to run the Service Instance updates in parallel.

For more information, see Strategy Configuration - Update.

Error Handling

When updating the Service Instances, one or all of the following three errors can happen:

  • The Application Developer has blocked automatic maintenance update: In this case the Service Instance is just skipped. These kind of Service Instances don't affect the success of the a9s Deployment Updater. The amount of affected Service Instances can be seen in the output of the BOSH errand. See also Allow Automatic Updates.
  • The Service Instance could not be updated because of an ongoing operation for this Service Instance: Depending on the configuration, the a9s Deployment Updater will reattempt to update the corresponding Service Instance once the others have been updated. In case the a9s Deployment Updater is not ultimately able to update all Service Instances, the a9s Deployment Updater will fail. The amount of affected Service Instances can be seen in the output of the BOSH errand. See also a9s Service Broker.
  • An unspecified error occurred while updating the Service Instance: In such a case the a9s Deployment Updater will stop updating further Service Instances and finish the currently executing updates only. As soon as all ongoing updates are finished, the a9s Deployment Updater will fail. The amount of affected Service Instances can be seen in the output of the BOSH errand.

Recreate

For each of these Service Instances a recreate is triggered at the a9s Service Broker, which in the end leads to a bosh recreate --fix.

The strategy recreate can be used for example if the Platform Operator wants to rotate the NATS certificates used by the BOSH director and its agents.

For more information how to configure the recreate strategy, see Strategy Configuration - Recreate.

info

The BOSH recreate command is executed with the option --fix. This way a Service Instance with an unresponsive agent is also recreated instead of erroring. For more information see the BOSH documentation.

Installation

The a9s Deployment Updater is already part of each a9s Data Service deployment manifest using the default values described in a9s Deployment Updater Properties.

If you want to change one of these values you have to apply an Ops file to the related a9s Data Service deployment manifest.

Running

The Platform Operator must run the a9s Deployment Updater manually to update the Service Instances of the respective a9s Data Service.

The name of the BOSH errand for the a9s Deployment Updater within the a9s Data Service deployments is deployment_updater. To execute it the bosh run-errand command must be used on the corresponding a9s Data Service deployment.

caution

Since the output size of a BOSH errand is limited, the a9s Deployment Updater writes most of the information, for example which Service Instances were updated and which couldn't be updated, into a log file and only dumps a summary to the BOSH errand's output. Thus, it is recommended that the a9s Deployment Updater is executed with --download-logs to have the logs of the a9s Deployment Updater available after the BOSH errand has finished.

Limitations

Number of BOSH director workers

When the a9s Deployment Updater is configured to run Service Instance updates in parallel, the Platform Operator has to consider the number of workers configured for the related BOSH director. The errand itself uses already one worker when running, that means this worker is not available for the Service Instance updates.