Today Weaveworks is proud to announce our progressive delivery solution for AWS App Mesh built on Weave Cloud! With AWS App Mesh, Weave Cloud, and Weaveworks’ open source progressive delivery tool, Weave Flagger, it is possible to perform progressive delivery via canary deployments with the click of a button.
Weave Flagger is an open source Kubernetes operator developed by Stefan Prodan (on the Weaveworks Developer Experience team). Stefan’s integration lets you promote canary deployments using AWS App Mesh. Flagger, when used with Weave Cloud and AWS App Mesh, allows fully automated canary deployments. It uses Prometheus metrics to determine canary deployment success or failure and automatically shifts traffic between the current deployment to the canary deployment.
How does Weave Cloud and Weave Flagger extend AWS App Mesh capabilities?
With Weave Cloud you can build a fully automated progressive delivery GitOps pipeline that leverages App Mesh routing and observability capabilities.
In a GitOps pipeline, your Kubernetes objects in a git repo are the single source of truth (in this case with deployment.yaml, canary.yaml, and hpa.yaml at the left). Weave Cloud syncs that repo with your Kubernetes cluster (via Weave Flux) and scans your container registry (ECR) to detect that you have published a new version of your app. When it detects that, it does an update.
When you do a deployment, you want to be able to press a button and know that whatever happens next, your users will not be impacted by a negative experience. Automated canary deployments make that possible. Before the deployment begins, you define what metrics need to be met for the deployment to continue: eg. the acceptable error threshold and the speed of the rollout. You are in control throughout the process and, if any of those metrics fail, the deployment stops and the previous version remains automatically with no intervention. Every deployment comes with peace of mind.
Weave Cloud can be updated to gather metrics from AWS App Mesh, and Weave Flagger uses those metrics to configure AWS App Mesh to make the above vision possible.
How does Weave Flagger make AWS App Mesh easier to use?
Weave Flagger is integrated so that you can do metrics-based canary deployments with AWS App Mesh. You can set your success thresholds based on your SLAs, SLOs, or other constraints, and Flagger will automatically roll out and test your canary deployments. If the failure rate surpasses the threshold that you set, Flagger automatically rolls back the deployments. Most importantly, Flagger hides the complexity of App Mesh from the developer. It automatically creates App Mesh objects and makes sure that they are in sync, removing manual steps. After you enable App Mesh to your EKS cluster, Flagger does the rest for automated canary deployments. Finally, Flagger uses Prometheus metrics to run the canary analysis, so you know that you have powerful metrics driving your analyses and automations.
What is available for AWS App Mesh users today
For the open source Weave Flagger integration with AWS App Mesh, follow the Install docs and tutorial. If you would like to run this with the Weave Cloud UI, contact us or join our slack channel (#flagger). Here’s a taste of the integration with Weave Cloud: