Canary release helps developers smoothly upgrade applications to a later version. EDAS supports canary traffic adjustment on a single application and end-to-end traffic adjustment on multiple applications.
You can implement traffic adjustment on a single application and multiple applications based on the following two methods: HTTP and HSF.
- Upgrade of a single application
New versions are continuously released in the application iteration process. Before a new version is officially released, you can use canary traffic adjustment to verify the new version on a small number of instances by collecting the user experience data. This way, you can check metrics, such as features, performance, and stability, of the new application version before you perform a full upgrade.
- Multi-application troubleshooting
When your HSF microservice applications that are deployed in EDAS fail, you can use the end-to-end traffic adjustment to route specific traffic to an application for troubleshooting problems in the application. This ensures that the entire microservice application runs as expected.
Entry application and traffic adjustment rule
In the end-to-end traffic adjustment, you must first specify the entry application. Then, you must specify the traffic adjustment rule for each application by HTTP and HSF. The following figure describes the features of the entry application and the canary traffic adjustment rule.
- For HTTP traffic, the canary release traffic is identified only after it accesses
the entry application. If the traffic complies with the rule, it is marked as the
canary release traffic. In simple terms, the system identifies only the canary traffic.
- This feature identifies the canary traffic only for the allocated HTTP traffic. End-to-end traffic adjustment cannot route HTTP canary traffic. The system identifies canary traffic based on HTTP traffic on the entry application and routes HSF canary traffic that is generated in each subsequent step.
- The HTTP traffic adjustment rule for a single application is different from the end-to-end traffic adjustment in that the rule is used for application groups. The rule identifies the canary traffic and routes it to the application groups.
- For the HSF traffic, the canary traffic is identified and routed before it reaches
the entry application. If the entry application has an instance in the current canary
instance group, the canary traffic is directly routed to the canary instance group.
Otherwise, the canary traffic is routed to the default group of this entry application.
In simple terms, the system identifies the canary traffic and routes it.
You can specify a canary release rule in a similar way as the traffic adjustment rule of a single application. The difference is that you can specify multiple rules for the canary traffic.
- You must specify the traffic protocol type for each rule. The traffic supports two protocol types: HTTP and HSF.
- Each rule can have multiple rule conditions that are in the AND or OR relationship.
Traffic adjustment environment
EDAS manages canary releases by defining a traffic adjustment environment. A traffic adjustment environment includes the entry application and identification rules. It is also a logical space that contains application instance groups that are deployed in the traffic adjustment environment. Therefore, you can add or remove an instance group that is a non-default group of an application to or from a traffic adjustment environment.
The EDAS end-to-end traffic adjustment solution implements canary release and traffic adjustment through the console. It provides the following flexible features:
- You need only to prepare instance resources for the applications that require canary release. You do not need to build an entire service system.
- The solution allows you to enable canary release for multiple applications and specify different rules of canary traffic adjustment for different applications. The solution even allows one application to be involved in multiple rules for canary traffic adjustment at the same time.
- The solution supports link-based canary release. This indicates that the solution allows multiple applications to be deployed in the same traffic adjustment environment. The canary traffic identified by the upstream process can pass through immediate application instances that do not require canary release. The canary traffic can still be routed to the corresponding canary application instance in the downstream process.