1

As part of my continuous deployment pipeline I deploy a canary and baseline, compare metrics from both and analyse the results to decide whether to promote the canary to production. In order to improve the metrics gathered I want to use Istio to mirror production traffic to both the canary and baseline deployments.

To this end I have the following virtual service and destination rule which mirrors traffic to my canary deployment:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: goldengoose
  namespace: goldengoose
spec:
  hosts:
  - "*"
  gateways:
  - goldengoose
  http:
  - route:
    - destination:
        port:
          number: 80
        host: goldengoose
        subset: prod
    mirror:
      host: goldengoose
      subset: canary
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: goldengoose
  namespace: goldengoose
spec:
  host: goldengoose
  subsets:
  - name: prod
    labels:
      track: prod
  - name: baseline
    labels:
      track: baseline
  - name: canary
    labels:
      track: canary

How can I also mirror traffic to the baseline so that both the baseline and canary recieve the same traffic as my production deployment?

dippynark
  • 2,743
  • 20
  • 58
  • There are some logic problem, if you will receive the same traffic to your dev env you will sent the response to end users from 2 places. But in case of pure canary deployment process you spreed traffic to 2 part and part of users receive response from prod-v1 some ffrom prod-v2. So Do you need the explanation how to make good canary deployment process, or how to create the load testing for your dev env? – Nick Rak Jan 21 '19 at 11:05

0 Answers0