What solution meets all the requirements, ensuring the MOST developer velocity?
Create an AWS CodePipeline configuration and set up a post-commit hook to trigger the pipeline after tests have passed. Use AWS CodeDeploy and create a Canary deployment configuration that specifies the percentage of traffic and interval.
Create an AWS CodeBuild configuration that triggers when the test code is pushed. Use AWS CloudFormation to trigger an AWS CodePipeline configuration that deploys the new Lambda versions and specifies the traffic shift percentage and interval.
Create an AWS CodePipeline configuration and set up the source code step to trigger when code is pushed. Set up the build step to use AWS CodeBuild to run the tests. Set up an AWS CodeDeploy configuration to deploy, then select the CodeDeployDefault.LambdaLinear10PercentEvery3Minutes option.
Use the AWS CLI to set up a post-commit hook that uploads the code to an Amazon S3 bucket after tests have passed Set up an S3 event trigger that runs a Lambda function that deploys the new version. Use an interval in the Lambda function to deploy the code over time at the required percentage.
Explanations:
While AWS CodePipeline and CodeDeploy can automate deployment, this option lacks a specific configuration for traffic shifting during deployment. It doesn’t mention how traffic will be incrementally shifted over time after deployment, which is essential for meeting the requirements.
This option does set up automation with AWS CodeBuild and CloudFormation, but it doesn’t specify how traffic shifting will occur after deployment. The requirement for incremental traffic shifting is not addressed, making it insufficient for the desired solution.
This option effectively combines AWS CodePipeline for CI/CD, AWS CodeBuild for running tests, and AWS CodeDeploy with a pre-defined traffic shifting strategy (CodeDeployDefault.LambdaLinear10PercentEvery3Minutes). This solution meets all the requirements, ensuring automation, testing, deployment, and gradual traffic shifting, thus maximizing developer velocity.
Although this option involves using the AWS CLI and S3 event triggers, it lacks a structured deployment process through CodePipeline and does not detail how traffic will be managed during deployment. The manual setup could introduce delays and complexity, reducing developer velocity.