A Serverless Framework plugin for implementing canary deployments of AWS Lambda functions using traffic shifting and AWS CodeDeploy.
Serverless Plugin Canary Deployments is a plugin for the Serverless Framework that enables canary deployments for AWS Lambda functions. It automates gradual traffic shifting between function versions using AWS CodeDeploy, allowing developers to deploy updates safely with reduced risk of outages. The plugin integrates pre- and post-deployment validation hooks and automatic rollback based on CloudWatch alarms.
Serverless developers and DevOps engineers using the Serverless Framework on AWS who need to implement safe, gradual deployment strategies for Lambda functions.
It simplifies canary deployments by automating traffic shifting and rollback processes, reducing manual configuration and operational risk compared to custom solutions. The plugin is tightly integrated with the Serverless Framework and AWS services, providing a declarative configuration via serverless.yml.
Canary deployments for your Serverless application
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple deployment strategies like Linear10PercentEvery1Minute, allowing precise control over traffic migration between Lambda versions, as detailed in the configuration section with clear options.
Enables pre- and post-traffic hooks for running validation Lambda functions, ensuring deployment safety by integrating with CodeDeploy SDK, as shown in the usage example with preHook and postHook handlers.
Automatically rolls back deployments if specified CloudWatch alarms are triggered, reducing risk by leveraging AWS CodeDeploy, based on the alarms configuration in serverless.yml.
Works with various Lambda triggers including API Gateway, S3, SNS, and stream-based events, covering many common use cases as listed in the limitations section, though not all.
Does not support all Serverless Framework event types yet, such as Cognito or custom events, as admitted in the limitations section with 'More events will be added soon,' which can hinder adoption for complex setups.
Requires additional IAM role configurations and CodeDeploy integration, which can be complex and error-prone, as shown in the need for iamRoleStatements and optional codeDeployRole settings in the README.
Heavily dependent on AWS-specific services like CodeDeploy and Lambda aliases, making it unsuitable for multi-cloud or non-AWS deployments, with no alternatives provided.