Application Gray Release Plan
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.
|www.test.com||10||External Service 2|
Gradually reduce and increase the weight as needed.
Also set the following parameters through the network management plug-in, and the weight will take effect when the
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.