Application Gray Release Plan

Function Description

Gray release is mainly to select some users according to a certain strategy and let them experience the new version of the application first. By collecting feedback from these users on the new version of the application, and commenting on the new version’s functions, performance, stability and other indicators, the decision is made Continue to enlarge the scope of the new version until the full upgrade or roll back to the old version. Gray release can ensure the stability of the overall system, and problems can be discovered and adjusted at the initial gray level to ensure its impact.

The gray release strategy can smoothly and controllably adjust the traffic load of the old and new versions.

Grayscale Publishing Practice

Practice based on A/B testing

The A/B testing strategy itself is a practice of gray release. Before continuing below, please be sure to read and master A/B testing practice

Grayscale publishing practice based on weight

In the A/B test case, we mainly emphasize the precise control of the client request by clearly identifying the client request. Of course, not all scenarios need such precise control, or we only need to control from the dimension of traffic. For example, start with 10% traffic to switch to the new version, and then gradually increase this weight. Under normal circumstances, until the old copyright is less heavy 0. Both internal and external services support weight-based routing control.

External service

Still add the following two HTTP access policies through Application Gateway -> Access Policy:

Domain NameWeightService
www.test.com90External Services
www.test.com10External Service 2

Gradually reduce and increase the weight as needed.

Internal service

Also set the following parameters through the network management plug-in, and the weight will take effect when the PREFIX DOMAINS HEADERS are exactly the same.

  • PREFIX: URL prefix path configuration, such as /api
  • DOMAINS: Intranet requests domain name configuration, forwards the configured domain name to downstream applications, only supports first-level domain
  • WEIGHT: Forwarding weight setting, range 1~100. It is specified that under the same combination of DOMAINS and PREFIX, the total weight is 100. The larger the value, the higher the weight.
  • HEADERS: HTTP request header settings, multiple parameters are separated by ;, you can decide which downstream application to request according to the different parameters in the request header
  • LIMITS: TCP speed limit, set the value to 0 to fuse

Existing defects and improvement plan

The main defects and plans are consistent with those described in the A/B testing document.