Canary Deployment Gaining Momentum Across AWS Services
AWS re:Invent 2017 is now in the book with over 45,000 attendees. AWS continuous to grow in adoption as well as market-leading features being introduced at a record speed.
One of my key takeaways from this year AWS re:Invent is that customers are looking to release their container applications faster and Amazon is providing easier ways to achieve that including the following
AWS Fargate: AWS Fargate is a technology for deploying and managing containers without having to manage any of the underlying infrastructures. Instead of worrying about how to install and manage Kubernetes over an existing EC2 infrastructure, this service removes the infrastructure management of containers and brings the focus back to getting your container application running.
If you are still interested in running Kubernetes and taking advantage of custom plugins, you can still get acceleration without having to manage Kubernetes Master nodes using the following service
AWS ECS for Kubernetes (EKS): Amazon Elastic Container Service for Kubernetes (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on AWS without needing to become an expert in operating Kubernetes.
All of these solutions solve the speed part of the equation of releasing applications faster but also introduces a higher risk for applications. Hence Amazon is addressing that with the introduction of inbuilt Canary deployment options.
API Gateway Canary Release Deployment: You now use canary release deployments to gradually roll out new APIs in Amazon API Gateway. This helps you more safely roll out API changes and limit the blast radius of new deployments.
If you are doing serverless, again you can use the canary feature for AWS Lambda.
AWS Lambda with Phased Deployment: You can now shift incoming traffic between two AWS Lambda function versions based on pre-assigned weights. This allows you to gradually shift traffic between two versions, helping you reduce the risk and limit the blast radius of new Lambda deployments. You can now also use AWS CodeDeploy to automatically manage the rollout of new function versions.
Last but not least, safe release strategy mentioned above allows you to reduce your blast radius but if you want to achieve speed with safety one has to do an automated analysis of these canary and phased deployment options. OpsMx Automated Release Analyzer is one such tool to help you do automated risk analysis during AWS API Gateway Canary Deployment and AWS Lambda phased deployment.
If you are interested in knowing more about our solutions for AWS container and Lambda services, reach out to us info@opsmx.com