diff --git a/README.md b/README.md index 3c4801ed..8a931f81 100644 --- a/README.md +++ b/README.md @@ -181,17 +181,32 @@ For more details on how the canary analysis and promotion works please [read the ### Features -| Feature | Istio | Linkerd | App Mesh | NGINX | Skipper | Gloo | Contour | CNI | -| ------------------------------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| Canary deployments (weighted traffic) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | -| A/B testing (headers and cookies routing) | :heavy_check_mark: | :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | -| Blue/Green deployments (traffic switch) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | -| Webhooks (acceptance/load testing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| Manual gating (approve/pause/resume) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| Request success rate check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | -| Request duration check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | -| Custom metric checks | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | -| Traffic policy, CORS, retries and timeouts | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | +**Service Mesh** + +| Feature | App Mesh | Istio | Linkerd | Kubernetes CNI | +| ------------------------------------------ | ------------------ | ------------------ | ------------------ | ----------------- | +| Canary deployments (weighted traffic) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | +| A/B testing (headers and cookies routing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | +| Blue/Green deployments (traffic switch) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Blue/Green deployments (traffic mirroring) | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_minus_sign: | +| Webhooks (acceptance/load testing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Manual gating (approve/pause/resume) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Request success rate check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | +| Request duration check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | +| Custom metric checks | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | + +**Ingress** + +| Feature | Contour | Gloo | NGINX | Skipper | +| ------------------------------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| Canary deployments (weighted traffic) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| A/B testing (headers and cookies routing) | :heavy_check_mark: | :heavy_minus_sign: | :heavy_check_mark: | :heavy_minus_sign: | +| Blue/Green deployments (traffic switch) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Webhooks (acceptance/load testing) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Manual gating (approve/pause/resume) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| Request success rate check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_check_mark: | +| Request duration check (L7 metric) | :heavy_check_mark: | :heavy_check_mark: | :heavy_minus_sign: | :heavy_check_mark: | +| Custom metric checks | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | ### Roadmap diff --git a/docs/gitbook/SUMMARY.md b/docs/gitbook/SUMMARY.md index d39be4b2..240d1801 100644 --- a/docs/gitbook/SUMMARY.md +++ b/docs/gitbook/SUMMARY.md @@ -24,10 +24,10 @@ * [Istio A/B Testing](tutorials/istio-ab-testing.md) * [Linkerd Canary Deployments](tutorials/linkerd-progressive-delivery.md) * [App Mesh Canary Deployments](tutorials/appmesh-progressive-delivery.md) +* [Contour Canary Deployments](tutorials/contour-progressive-delivery.md) +* [Gloo Canary Deployments](tutorials/gloo-progressive-delivery.md) * [NGINX Canary Deployments](tutorials/nginx-progressive-delivery.md) * [Skipper Canary Deployments](tutorials/skipper-progressive-delivery.md) -* [Gloo Canary Deployments](tutorials/gloo-progressive-delivery.md) -* [Contour Canary Deployments](tutorials/contour-progressive-delivery.md) * [Blue/Green Deployments](tutorials/kubernetes-blue-green.md) * [Crossover Canary Deployments](tutorials/crossover-progressive-delivery.md) * [Canary analysis with Prometheus Operator](tutorials/prometheus-operator.md) @@ -38,4 +38,4 @@ * [Development Guide](dev/dev-guide.md) * [Release Guide](dev/release-guide.md) -* [Upgrade Guide](dev/upgrade-guide.md) \ No newline at end of file +* [Upgrade Guide](dev/upgrade-guide.md) diff --git a/docs/gitbook/tutorials/skipper-progressive-delivery.md b/docs/gitbook/tutorials/skipper-progressive-delivery.md index c7868668..3cc3d17f 100644 --- a/docs/gitbook/tutorials/skipper-progressive-delivery.md +++ b/docs/gitbook/tutorials/skipper-progressive-delivery.md @@ -281,33 +281,25 @@ the canary is scaled to zero and the rollout is marked as failed. ```text kubectl -n flagger-system logs deploy/flagger -f | jq .msg -"New revision detected! Scaling up podinfo.test" -"canary deployment podinfo.test not ready: waiting for rollout to finish: 0 of 1 updated replicas are available" -"Starting canary analysis for podinfo.test" -"Pre-rollout check acceptance-test passed" -"primaryWeight: 95, canaryWeight: 5" -"Advance podinfo.test canary weight 5" -"primaryWeight: 90, canaryWeight: 10" -"Advance podinfo.test canary weight 10" -"primaryWeight: 85, canaryWeight: 15" -"Advance podinfo.test canary weight 15" -"primaryWeight: 80, canaryWeight: 20" -"Advance podinfo.test canary weight 20" -"Halt podinfo.test advancement success rate 53.42% < 99%" -"Halt podinfo.test advancement success rate 53.19% < 99%" -"Halt podinfo.test advancement success rate 48.05% < 99%" -"Rolling back podinfo.test failed checks threshold reached 3" -"primaryWeight: 100, canaryWeight: 0" -"Canary failed! Scaling down podinfo.test" +New revision detected! Scaling up podinfo.test +Canary deployment podinfo.test not ready: waiting for rollout to finish: 0 of 1 updated replicas are available +Starting canary analysis for podinfo.test +Pre-rollout check acceptance-test passed +Advance podinfo.test canary weight 5 +Advance podinfo.test canary weight 10 +Advance podinfo.test canary weight 15 +Advance podinfo.test canary weight 20 +Halt podinfo.test advancement success rate 53.42% < 99% +Halt podinfo.test advancement success rate 53.19% < 99% +Halt podinfo.test advancement success rate 48.05% < 99% +Rolling back podinfo.test failed checks threshold reached 3 +Canary failed! Scaling down podinfo.test ``` ## Custom metrics The canary analysis can be extended with Prometheus queries. -The demo app is instrumented with Prometheus so you can create a custom check that will use the -HTTP request duration histogram to validate the canary. - Create a metric template and apply it on the cluster: ```yaml