Skip to content

Create a Canary Delivery Job

Workbench provides powerful canary delivery capabilities based on the open-source project Argo Rollout. Canary delivery allows the deployment of new application versions without affecting the old versions. According to predefined rules, traffic is progressively switched to the new version. Once the new version runs without issues, all traffic is automatically migrated from the old version to the new version.

Prerequisites

  1. Create a workspace and a user, the user needs to join the workspace and have the Workspace Editor role.

  2. Create an application and enable Canary Delivery, refer to Building Microservices Apps from Git Repo, Deploy Java Applications Based on Jar Packages.

  3. The cluster where the release object is located has installed the Istio and Argo Rollout components.

Install Istio

You can use the following two installation schemes to install Istio in the cluster according to different business scenario requirements.

Steps

  1. Enter the Workbench module, click Progressive Delivery in the left navigation bar, then click Canary Delivery -> Canary Delivery Job in the upper right corner of the page.

    Enter Creation Page

  2. Fill in the basic information according to the following requirements, then click Next.

    • Name: Fill in the name of the release task. Up to 63 characters, can only contain lower-case letters, numbers, and separators ("-"), and must start and end with a lower-case letter or number.
    • Cluster: Select the cluster where the release object is located. Ensure that Istio and Argo Rollout have been deployed in this cluster.
    • Namespace: Select the namespace where the release object is located, and the workload that has been deployed in this namespace and has the service mesh enabled.
    • Deployment: Select the specific release object.

    Basic Information

  3. Configure the release rules according to the following instructions.

    • Instance Quantity: The number of application replicas during the canary delivery job.
    • Traffic Management Type: Supports replica count, Istio, Nginx.
    • Traffic Routing: Only supports canary delivery based on weight.

    • Traffic Scheduling Strategy:

      • Current Stage Release Traffic Ratio: The traffic ratio increased for the canary version in each traffic cycle.
      • Wait Time After Reaching Traffic Ratio: The traffic increase cycle for the canary version, i.e., how long to wait before automatically entering the next canary traffic ratio.

        If set to 0 or left blank, the release task will pause indefinitely when it reaches this step.

      Replica Count

    • Traffic Scheduling Type: Based on Istio, it supports canary delivery based on weight and request characteristics, currently only supports canary delivery based on weight.

    • Traffic Scheduling Strategy:

      • Current Stage Release Traffic Ratio: The traffic ratio increased for the canary version in each traffic cycle.
      • Wait Time After Reaching Traffic Ratio: The traffic increase cycle for the canary version, i.e., how long to wait before automatically entering the next canary traffic ratio.

        If set to 0 or left blank, the release task will pause indefinitely when it reaches this step.

    • Monitoring Analysis: If enabled, the capabilities of Prometheus can be utilized for monitoring. According to the predefined monitoring indicators and collection intervals, automatic monitoring analysis is performed throughout the release process. If the defined rules are not met, it will automatically roll back to the old version, and the canary delivery fails. Based on Istio

    • Traffic Routing: Based on Nginx, only supports canary delivery based on weight.

    • Service: Select the Service object associated with the current release object

    • Ingress: Select the Ingress object associated with the current release object, used to configure the traffic scheduling strategy.

    • Traffic Scheduling Strategy:

      • Traffic for new version in each stage: The traffic ratio increased for the canary version in each traffic cycle.
      • Wait before directing more traffic: The traffic increase cycle for the canary version, i.e., how long to wait before automatically entering the next canary traffic ratio.

        If set to 0 or left blank, the release task will pause indefinitely when it reaches this step.

      Based on Nginx

  4. Click Create & Update App at the bottom of the page, then set the image address of the canary version in the pop-up box and click OK.

    At this time, the number of replicas of the original workload will be set to 0.

    Create & Update App

  5. The system automatically returns to the canary delivery job list page, prompting Successfully updated version.

    Successfully Updated

Comments