Top Banner
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Mark Mansour, Senior Manager, Continuous Delivery November 30, 2016 DEV403 DevOps on AWS Advanced Continuous Delivery Techniques
79

AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Jan 23, 2018

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Mark Mansour, Senior Manager, Continuous Delivery

November 30, 2016

DEV403

DevOps on AWSAdvanced Continuous Delivery Techniques

Page 2: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

What to expect from the session

Make your pipeline safer by

1. Identifying production issues quickly

2. Deploying changes safely

3. Automatically deciding when to release changes

Page 3: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Techniques

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

Page 4: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Starting Point:

The release process is automated

Page 5: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Prerequisites

• Versioned source

• Automated build

• Automated deployments

• Deploy to > 1 instance

• Unit tests

• Integration tests

• Continuous Delivery

• Operations dashboard

Source

Build

Deploy to Integration Stack

Integration Tests

Deploy to Production

Page 6: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Best practices with your tools

• Focus in on best practices

• Keep using your current tools where possible

• Deployment tools

• Continuous Integration and Continuous Delivery Tools

• Extend your current tools when needed

• This talk uses AWS tools

Page 7: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Tools used in this talk

Monitoring

Amazon CloudWatch

Software Development

Amazon SNS

AWS Lambda

Deployment

AWS CodeDeploy

AWS CodePipeline

Page 8: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

MyApp

CodeCommit

Source

Build

CodeCommit

Build

DeployToInteg

CodeDeploy

Integration

IntegTest

End2EndTester

DeployToProd

CodeDeploy

Production

Source

Build

Deploy to Integration Stack

Integration Tests

Deploy to Production

Model the release process in CodePipeline

Pipeline Run

ActionStage

Pipeline

Source change

• starts a run; and

• creates an artifact to be used by

other actions.

Change 1

Page 9: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Release and deploy process: Starting point

MyApp

CodeCommit

Source

Build

Build

Build

DeployToInteg

CodeDeploy

Integration

IntegTest

End2EndTester

DeployToProd

CodeDeploy

Production

CodeDeploy

Page 10: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

Techniques

Page 11: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Be aware when a service is unavailable

Problem:

A service can stop working at any time for reasons inside

or outside of its control.

Consequence:

Your service may be unavailable without your team

knowing about it.

1 of 5 – Continuous production testing

Page 12: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Use synthetic traffic to simulate real users

• Test all business critical functionality (UI and APIs)

• Tests must run quickly

• Measure client latencies

• Check for reachability

1 of 5 – Continuous production testing

Page 13: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Synthetic Traffic

How synthetic traffic flows

CloudWatch

Alarm

1 of 5 – Continuous production testing

CloudWatch

Events (1m)

Page 14: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

CloudWatch

Events (1m)

Synthetic Traffic

Synthetic traffic flow – why two metric streams?

CloudWatch

Alarm

1 of 5 – Continuous production testing

Page 15: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Building a Synthetic Traffic Test

Page 16: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Building a synthetic traffic test

• Keep it simple

• Build logic in Lambda (invoke with CloudWatch Events)

• Capture data in CloudWatch metrics

1 of 5 – Continuous production testing

Page 17: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Lambda’s synthetic traffic blueprint

1 of 5 – Continuous production testing

Page 18: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Scheduling the synthetic traffic test

1 of 5 – Continuous production testing

Page 19: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Building a synthetic traffic test - Code

1 of 5 – Continuous production testing

Page 20: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Building a synthetic traffic test – Alarming

1 of 5 – Continuous production testing

Page 21: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Release and deploy process: Synthetic traffic

DeployToProd

CodeDeploy

Production

Synthetic Traffic

CodeDeploy

Page 22: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

Techniques

Page 23: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

V1V1 V1 V1 V1 V1 V1 V1 V1 V1V2 V2 V2 V2 V2V2 V2 V2 V2 V2

Rolling deployments – success

Production Fleet

ELB

2 of 5 – Manage deployment health

Page 24: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

V1V1 V1 V1 V1 V1 V1 V1 V1 V1V2 V2 V2 V2 V2V2 V2 V2 V2 V2

Rolling deployments – fail

Production Fleet

ELB

2 of 5 – Manage deployment health

Page 25: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Check for deployment failures in production

Problem:

There are no automated tests to verify a service is working

after a new deployment.

Consequence:

Each production deployment needs to be checked

manually.

2 of 5 – Manage deployment health

Page 26: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Add safety to rolling deployments

1. Validate each host’s health

2. Ensure a minimum percentage of the fleet is healthy

3. Rollback if the deployment failed

2 of 5 – Manage deployment health

Page 27: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Configure CodeDeploy

Page 28: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Step 1: Deployment Validation – AppSpec.yml

2 of 5 – Manage deployment health

Page 29: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

V1V1 V1 V1 V1 V1 V1 V1 V1 V1V2 V2 V2 V2 V2V2

Step 1: Working tests raises more issues

Production Fleet

ELB

2 of 5 – Manage deployment health

Failed Deployment

Page 30: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

4 failures – 60% healthy

MHH 70%, 10 hosts:

V1V2 V1V1 V1 V1 V1 V1 V1 V1 V1V2 V2 V2 V2V2 V2 V2 V2 V2

Step 2: Use minimum healthy hosts

Production Fleet

ELB

2 of 5 – Manage deployment health

1 failure – 90% healthy

Page 31: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Step 2: Use minimum health hosts - CodeDeploy

2 of 5 – Manage deployment health

Page 32: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Step 3: Rollback when a deployment fails

• CodeDeploy: configured in deployment group

2 of 5 – Manage deployment health

Page 33: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Release and deploy: Deployment health

DeployToProd

CodeDeploy

Production

Synthetic Traffic

CodeDeploy

Page 34: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

Techniques

3 of 5 - Segment production

Page 35: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Bad changes must not affect all customers

Pipeline Problem:

When a critical issue reaches production all hosts are

affected.

Consequence:

Bad changes impact all customers.

3 of 5 - Segment production

Page 36: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Lower deployment risk by segmenting

1. Break production into multiple segments

2. Deploy to a segment

3. Test a segment after a deployment

4. Repeat 2 & 3 until done

3 of 5 - Segment production

Page 37: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Segment Production

Page 38: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Step 1: Break production into multiple segments

Typical segment types:

• Region

• Availability Zone

• Sub-Zonal

• Single Host (Canary)

3 of 5 - Segment production

US-EAST-1

US-EAST-1A US-EAST-1B

Page 39: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

V2 V2 V2V2V1 V1V1

Step 1: Typical deployment segmentation

Availability Zone based

Deployment

Availability Zone based

DeploymentAvailability Zone based

Deployment

V2 V2V2V1 V1V1 V2 V2V2V1 V1V1

Production Fleet

Post-deployment test

3 of 5 - Segment production

Canary

Deployment

V1

Region based Deployment

Page 40: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Step 1: Use deployment groups as segments

Create deployment groups per segment using:

• Tags

• Auto Scaling groups

3 of 5 - Segment production

Page 41: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Production

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

Deploy-AZ-3

CodeDeploy

DeployToInteg

CodeDeploy

Integration

IntegTest

End2EndTester

1. Deploy to smallest segment

2. Post-deployment tests

3. Deploy to one Availability Zone

4. Post-deployment tests

5. Deploy to remaining Availability Zones

Step 2: Deploy to each segment

3 of 5 - Segment production

Page 42: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Step 3: Test each segment

A deployment is valid if:

• The test has gathered enough data to gain confidence

• CloudWatch metrics

• No service alarms have fired

• CloudWatch alarms

• The test has not timed out

• Code

3 of 5 - Segment production

Page 43: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Add segment tests to your pipeline

Extend CodePipeline with:

• Test Actions

• Lambda Invoke Actions

• Custom Actions

• Approval Actions

3 of 5 - Segment production

1 hour timeout

7 day timeout

Page 44: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Use CodePipeline approvals to trigger tests

Source

MyAppSource

CodeCommit

Deploy

DeployToSegment

CodeDeploy

SNS topicValidateSegment

Approval

putApprovalResult

Approval

message

3 of 5 - Segment production

DeployToSegment

CodeDeploy

Page 45: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Use SNS to start an automated approval check

3 of 5 - Segment production

Page 46: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Creating a post-deployment test

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

CanaryDeploy

CodeDeploy

ValidateCanary

Approval

SNS topic Lambda Function

registerDeployTest()

Lambda Function

evaluateDeploy()

DynamoDB

CloudWatch

Events (1m)

Change 1

Prod-us-east-1a

CodeDeploy alarmtimeusage

3 of 5 - Segment production

Page 47: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Post-deployment test – registerDeployTest

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

CanaryDeploy

CodeDeploy

ValidateCanary

Approval

SNS topic Lambda Function

registerDeployTest()

Lambda Function

evaluateDeploy()

DynamoDB

CloudWatch

Events (1m)

Change 1

Prod-us-east-1a

CodeDeploy alarmtimeusage

3 of 5 - Segment production

Page 48: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

registerDeployTest function – (Node.js 4.3)

3 of 5 - Segment production

Page 49: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Post-deployment test – evaluateDeployTest

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

CanaryDeploy

CodeDeploy

ValidateCanary

Approval

SNS topic Lambda Function

registerDeployTest()

Lambda Function

evaluateDeploy()

DynamoDB

CloudWatch

Events (1m)

Change 1

Prod-us-east-1a

CodeDeploy alarmtimeusage

3 of 5 - Segment production

Page 50: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

approveValidation function (Node.js 4.3)

3 of 5 - Segment production

Page 51: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Canary Deployments – they’re different

All production hosts:

• Participates in serving production traffic

• Configured as a production instance

• Participates in production metrics stream

Canary hosts:

• Has its own metrics stream

• Canary validations use the canary metric stream

3 of 5 - Segment production

Page 52: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Summary: Segment production

• Segment production to reduce impact of a bad change

• Minimum segmentation:

• Region

• Canary deployment per region

• Larger service segmentation

• Zonal

• Sub-zonal

• Test each segment before moving on

3 of 5 - Segment production

Page 53: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Release and deploy: Segment production

Synthetic Traffic

CodeDeploy

Production

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

Deploy-AZ-3

CodeDeployDeployToProd

CodeDeploy

Production

Page 54: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

Techniques

3 of 5 - Segment production

Page 55: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

4 of 5 – Halt promotions

EC2 instance

Change 2Change 3

Don’t change the system under test

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

DeployToProd

MyApp

CodeDeploy

deploys

Change 1

Page 56: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Don’t compound problems during an outage

Pipeline Problem:

The pipeline is unaware of the health of the infrastructure

that it is deploying to

Consequence:

Production changes, usually deployments, can make it

difficult for an operator to resolve a production event.

4 of 5 – Halt promotions

Page 57: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Build promotion blockers

Page 58: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

DeployToProd

MyApp

CodeDeploy

Change 1Change 2

Automatically stop deploying to production

during an event

CloudWatchSynthetic

Trafficdeploys

checks

CloudWatch

Events (1m)

triggers

emitsdisables

disableTransition() Alarm

EC2 instance

SNS

4 of 5 – Halt promotions

Page 59: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

disableTransition function (Lambda Node.js 4.3)

4 of 5 – Halt promotions

Page 60: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Enable production deployments - CodePipeline

4 of 5 – Halt promotions

Page 61: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Summary: Halt promotions

• Halt promotions to production when your production

environment has “issues”

• Automate by disabling stage transitions

4 of 5 – Halt promotions

Page 62: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Release and deploy: Halt promotions

Synthetic Traffic

CodeDeploy

Production

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

Deploy-AZ-3

CodeDeploy

Page 63: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

1. Continuous production testing

2. Manage deployment health

3. Segment production

4. Halt promotions

5. Gates

Techniques

3 of 5 - Segment production

Page 64: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Do not deploy at sensitive times

Problem:

A bad change during sensitive times has a disproportionate

affect on the business.

Consequence:

Issues during sensitive days risk reputation and financial

loss.

5 of 5 - Gates

Page 65: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Adding safety with deployment black-days

Deploy to production during normal conditions

• Halt deployments during sensitive times

Building a black-day calendar with CodePipeline:

• Use Approvals to pause production deployments

• Lambda to automatically approve when the time is right

5 of 5 - Gates

Page 66: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Build black-day gates

Page 67: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Black-day test

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

BlackDayCheck

Approval

ProductionDeploy

CodeDeploy

SNS topic Lambda Function

registerDeployment

Lambda Function

processTimeWindows

DynamoDB

CloudWatch

Events (1m)

Change 1

5 of 5 - Gates

Page 68: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

This looks familiar…

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

BlackDayCheck

Approval

ProductionDeploy

CodeDeploy

SNS topic Lambda Function

registerDeployment

Lambda Function

processTimeWindows

DynamoDB

CloudWatch

Events (1m)

5 of 5 - Gates

Page 69: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

This looks familiar – post-deployment test

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

CanaryDeploy

CodeDeploy

ValidateCanary

Approval

SNS topic Lambda Function

registerDeployTest()

Lambda Function

evaluateDeploy()

DynamoDB

CloudWatch

Events (1m)

Prod-us-east-1a

CodeDeploy alarmtimeusage

3 of 5 - Segment production

Page 70: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

What’s the difference?

Source

MyAppSource

CodeCommit

Build

MyAppBuild

Build

Deploy

BlackDayCheck

Approval

ProductionDeploy

CodeDeploy

SNS topic Lambda Function

registerDeployment

Lambda Function

processTimeWindows

DynamoDB

CloudWatch

Events (1m)

5 of 5 - Gates

Page 71: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Summary: Gates

• Black-days provide centralized control

• Add common action to all pipelines

• Black-days are a type of gate

• Implement with Approval actions in CodePipeline

5 of 5 - Gates

Page 72: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Production

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

Deploy-AZ-3

CodeDeploy

CheckBlackDays

Approval

Release and deploy: Gates

Synthetic Traffic

CodeDeploy

Production

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

Deploy-AZ-3

CodeDeploy

Page 73: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

What we’ve learned

Goal: Make your pipeline safer…

1. Identify production issues quickly

• Continuous Production Testing

2. Safely deploy changes

• Manage deployment health

• Segment production

3. Automatically decide when to release changes

• Halt promotions

• Black-days and Gates

Page 74: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Release and deploy process: Ending point

DeployToProd

CodeDeploy

Production

CodeDeploy

Synthetic Traffic

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

CheckBlackDays

Approval

CanaryDeploy

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-1

CodeDeploy

PostDeployTest

Approval

Deploy-AZ-2

CodeDeploy

Deploy-AZ-3

CodeDeploy

Production

Page 75: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Thank you!

Page 76: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Remember to complete

your evaluations!

Page 77: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Code is available online

• github.com/awslabs/aws-codepipeline-time-windows

• github.com/awslabs/aws-codepipeline-synthetic-tests

• github.com/awslabs/aws-codepipeline-block-production

Page 78: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Related Sessions

• DEV303 – Deploying and Managing .NET Pipelines and

Microsoft Workloads

• DEV310 – DevOps on AWS: Choosing the Right

Software Deployment Technique

• DEV313 – Infrastructure Continuous Deployment Using

AWS CloudFormation

• SVR307 – Application Lifecycle Management in a

Serverless World

Page 79: AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (DEV403)

Author:

Slides written and prepared by Mark Mansour, Senior

Manager, Continuous Delivery, AWS.

This presentation, “DevOps on AWS: Advanced

Continuous Delivery Techniques”, was originally given at

re:Invent 2016 on Nov 30.