SlideShare a Scribd company logo
© 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
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
Techniques
1. Continuous production testing
2. Manage deployment health
3. Segment production
4. Halt promotions
5. Gates
Starting Point:
The release process is automated
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
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
Tools used in this talk
Monitoring
Amazon CloudWatch
Software Development
Amazon SNS
AWS Lambda
Deployment
AWS CodeDeploy
AWS CodePipeline
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
Action
Stage
Pipeline
Source change
• starts a run; and
• creates an artifact to be used by
other actions.
Change 1
Release and deploy process: Starting point
MyApp
CodeCommit
Source
Build
Build
Build
DeployToInteg
CodeDeploy
Integration
IntegTest
End2EndTester
DeployToProd
CodeDeploy
Production
CodeDeploy
1. Continuous production testing
2. Manage deployment health
3. Segment production
4. Halt promotions
5. Gates
Techniques
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
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
Synthetic Traffic
How synthetic traffic flows
CloudWatch
Alarm
1 of 5 – Continuous production testing
CloudWatch
Events (1m)
CloudWatch
Events (1m)
Synthetic Traffic
Synthetic traffic flow – why two metric streams?
CloudWatch
Alarm
1 of 5 – Continuous production testing
Building a Synthetic Traffic Test
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
Lambda’s synthetic traffic blueprint
1 of 5 – Continuous production testing
Scheduling the synthetic traffic test
1 of 5 – Continuous production testing
Building a synthetic traffic test - Code
1 of 5 – Continuous production testing
Building a synthetic traffic test – Alarming
1 of 5 – Continuous production testing
Release and deploy process: Synthetic traffic
DeployToProd
CodeDeploy
Production
Synthetic Traffic
CodeDeploy
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
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
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
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
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
Configure CodeDeploy
Step 1: Deployment Validation – AppSpec.yml
2 of 5 – Manage deployment health
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
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
Step 2: Use minimum health hosts - CodeDeploy
2 of 5 – Manage deployment health
Step 3: Rollback when a deployment fails
• CodeDeploy: configured in deployment group
2 of 5 – Manage deployment health
Release and deploy: Deployment health
DeployToProd
CodeDeploy
Production
Synthetic Traffic
CodeDeploy
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
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
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
Segment Production
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
V2 V2 V2V2V1 V1V1
Step 1: Typical deployment segmentation
Availability Zone based
Deployment
Availability Zone based
Deployment
Availability 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
Step 1: Use deployment groups as segments
Create deployment groups per segment using:
• Tags
• Auto Scaling groups
3 of 5 - Segment production
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
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
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
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
Use SNS to start an automated approval check
3 of 5 - Segment production
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
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
registerDeployTest function – (Node.js 4.3)
3 of 5 - Segment production
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
approveValidation function (Node.js 4.3)
3 of 5 - Segment production
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
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
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
CodeDeploy
DeployToProd
CodeDeploy
Production
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
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
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
Build promotion blockers
Source
MyAppSource
CodeCommit
Build
MyAppBuild
Build
DeployToProd
MyApp
CodeDeploy
Change 1Change 2
Automatically stop deploying to production
during an event
CloudWatch
Synthetic
Traffic
deploys
checks
CloudWatch
Events (1m)
triggers
emitsdisables
disableTransition() Alarm
EC2 instance
SNS
4 of 5 – Halt promotions
disableTransition function (Lambda Node.js 4.3)
4 of 5 – Halt promotions
Enable production deployments - CodePipeline
4 of 5 – Halt promotions
Summary: Halt promotions
• Halt promotions to production when your production
environment has “issues”
• Automate by disabling stage transitions
4 of 5 – Halt promotions
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
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
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
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
Build black-day gates
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
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
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
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
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
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
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
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
Thank you!
Remember to complete
your evaluations!
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
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
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.

More Related Content

What's hot

DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
Amazon Web Services
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
Amazon Web Services
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Amazon Web Services
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
Amazon Web Services
 
Delivering DevOps on AWS - Transformation Day Public Sector London 2017
Delivering DevOps on AWS - Transformation Day Public Sector London 2017Delivering DevOps on AWS - Transformation Day Public Sector London 2017
Delivering DevOps on AWS - Transformation Day Public Sector London 2017
Amazon Web Services
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
Amazon Web Services
 
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
Amazon Web Services
 
Event driven infrastructure
Event driven infrastructureEvent driven infrastructure
Event driven infrastructure
Shiva Narayanaswamy
 
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHubEffective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Amazon Web Services
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
Shiva Narayanaswamy
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
DevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software DeliveryDevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software Delivery
Amazon Web Services
 
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
Amazon Web Services
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Amazon Web Services
 
Deploy, scale and manage your application with AWS Elastic Beanstal
Deploy, scale and manage your application with AWS Elastic BeanstalDeploy, scale and manage your application with AWS Elastic Beanstal
Deploy, scale and manage your application with AWS Elastic Beanstal
Amazon Web Services
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Amazon Web Services
 
Automating Software Deployments with AWS CodeDeploy
Automating Software Deployments with AWS CodeDeployAutomating Software Deployments with AWS CodeDeploy
Automating Software Deployments with AWS CodeDeploy
Amazon Web Services
 
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig DicksonAWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
Amazon Web Services Korea
 
State of Union - Containerz
State of Union - ContainerzState of Union - Containerz
State of Union - Containerz
Shiva Narayanaswamy
 

What's hot (20)

DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
Delivering DevOps on AWS - Transformation Day Public Sector London 2017
Delivering DevOps on AWS - Transformation Day Public Sector London 2017Delivering DevOps on AWS - Transformation Day Public Sector London 2017
Delivering DevOps on AWS - Transformation Day Public Sector London 2017
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
 
Event driven infrastructure
Event driven infrastructureEvent driven infrastructure
Event driven infrastructure
 
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHubEffective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
Effective Collaboration & Delivery with GitHub and AWS Code Deploy – GitHub
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software DeliveryDevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software Delivery
 
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
AWS re:Invent 2016: Application Lifecycle Management in a Serverless World (S...
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
 
Deploy, scale and manage your application with AWS Elastic Beanstal
Deploy, scale and manage your application with AWS Elastic BeanstalDeploy, scale and manage your application with AWS Elastic Beanstal
Deploy, scale and manage your application with AWS Elastic Beanstal
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Automating Software Deployments with AWS CodeDeploy
Automating Software Deployments with AWS CodeDeployAutomating Software Deployments with AWS CodeDeploy
Automating Software Deployments with AWS CodeDeploy
 
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig DicksonAWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
 
State of Union - Containerz
State of Union - ContainerzState of Union - Containerz
State of Union - Containerz
 

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

(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
Richard Cheng
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Amazon Web Services
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
Amazon Web Services
 
Continuous Integration & Delivery
Continuous Integration & DeliveryContinuous Integration & Delivery
Continuous Integration & Delivery
Jen Wei Lee
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
Codecamp Romania
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
gaoliang641
 
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROIRelease Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROI
TechWell
 
2
22
2
22
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
Diego Garber
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...
Kelvin Silva
 
Salesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And DeploymentSalesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And Deployment
Harshala Shewale ☁
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
Perfecto by Perforce
 
Team forge Test Management with TestLink
Team forge Test Management with TestLinkTeam forge Test Management with TestLink
Team forge Test Management with TestLink
Venkat Janardhanam, MS, MBA
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
Keytorc Software Testing Services
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
Amazon Web Services
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
cPrime | Project Management | Agile | Consulting | Staffing | Training
 

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

(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
Advanced Continuous Delivery Best Practices (DEV317-R1) - AWS re:Invent 2018
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Continuous Integration & Delivery
Continuous Integration & DeliveryContinuous Integration & Delivery
Continuous Integration & Delivery
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Release Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROIRelease Automation: Better Quality, Faster Deployment, Amazing ROI
Release Automation: Better Quality, Faster Deployment, Amazing ROI
 
2
22
2
 
2
22
2
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...
 
Salesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And DeploymentSalesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And Deployment
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
 
Team forge Test Management with TestLink
Team forge Test Management with TestLinkTeam forge Test Management with TestLink
Team forge Test Management with TestLink
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 

Recently uploaded (20)

GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 

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

  • 1. © 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
  • 2. 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
  • 3. Techniques 1. Continuous production testing 2. Manage deployment health 3. Segment production 4. Halt promotions 5. Gates
  • 4. Starting Point: The release process is automated
  • 5. 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
  • 6. 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
  • 7. Tools used in this talk Monitoring Amazon CloudWatch Software Development Amazon SNS AWS Lambda Deployment AWS CodeDeploy AWS CodePipeline
  • 8. 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 Action Stage Pipeline Source change • starts a run; and • creates an artifact to be used by other actions. Change 1
  • 9. Release and deploy process: Starting point MyApp CodeCommit Source Build Build Build DeployToInteg CodeDeploy Integration IntegTest End2EndTester DeployToProd CodeDeploy Production CodeDeploy
  • 10. 1. Continuous production testing 2. Manage deployment health 3. Segment production 4. Halt promotions 5. Gates Techniques
  • 11. 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
  • 12. 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
  • 13. Synthetic Traffic How synthetic traffic flows CloudWatch Alarm 1 of 5 – Continuous production testing CloudWatch Events (1m)
  • 14. CloudWatch Events (1m) Synthetic Traffic Synthetic traffic flow – why two metric streams? CloudWatch Alarm 1 of 5 – Continuous production testing
  • 15. Building a Synthetic Traffic Test
  • 16. 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
  • 17. Lambda’s synthetic traffic blueprint 1 of 5 – Continuous production testing
  • 18. Scheduling the synthetic traffic test 1 of 5 – Continuous production testing
  • 19. Building a synthetic traffic test - Code 1 of 5 – Continuous production testing
  • 20. Building a synthetic traffic test – Alarming 1 of 5 – Continuous production testing
  • 21. Release and deploy process: Synthetic traffic DeployToProd CodeDeploy Production Synthetic Traffic CodeDeploy
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 28. Step 1: Deployment Validation – AppSpec.yml 2 of 5 – Manage deployment health
  • 29. 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
  • 30. 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
  • 31. Step 2: Use minimum health hosts - CodeDeploy 2 of 5 – Manage deployment health
  • 32. Step 3: Rollback when a deployment fails • CodeDeploy: configured in deployment group 2 of 5 – Manage deployment health
  • 33. Release and deploy: Deployment health DeployToProd CodeDeploy Production Synthetic Traffic CodeDeploy
  • 34. 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
  • 35. 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
  • 36. 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
  • 38. 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
  • 39. V2 V2 V2V2V1 V1V1 Step 1: Typical deployment segmentation Availability Zone based Deployment Availability Zone based Deployment Availability 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
  • 40. Step 1: Use deployment groups as segments Create deployment groups per segment using: • Tags • Auto Scaling groups 3 of 5 - Segment production
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. Use SNS to start an automated approval check 3 of 5 - Segment production
  • 46. 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
  • 47. 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
  • 48. registerDeployTest function – (Node.js 4.3) 3 of 5 - Segment production
  • 49. 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
  • 50. approveValidation function (Node.js 4.3) 3 of 5 - Segment production
  • 51. 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
  • 52. 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
  • 53. 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 CodeDeploy DeployToProd CodeDeploy Production
  • 54. 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
  • 55. 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
  • 56. 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
  • 58. Source MyAppSource CodeCommit Build MyAppBuild Build DeployToProd MyApp CodeDeploy Change 1Change 2 Automatically stop deploying to production during an event CloudWatch Synthetic Traffic deploys checks CloudWatch Events (1m) triggers emitsdisables disableTransition() Alarm EC2 instance SNS 4 of 5 – Halt promotions
  • 59. disableTransition function (Lambda Node.js 4.3) 4 of 5 – Halt promotions
  • 60. Enable production deployments - CodePipeline 4 of 5 – Halt promotions
  • 61. Summary: Halt promotions • Halt promotions to production when your production environment has “issues” • Automate by disabling stage transitions 4 of 5 – Halt promotions
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 67. 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
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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
  • 73. 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
  • 74. 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
  • 77. 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
  • 78. 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
  • 79. 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.