devops architecture deep dive canary...

24
#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr. DevOps Consultant AgileThought

Upload: others

Post on 24-Apr-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

DevOps Architecture Deep DiveCanary Deployment

Eric LandesSr. DevOps

Consultant

AgileThought

Page 2: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

www.agilethought.com 3

Eric is a scrum.org certified professional Scrum trainer. He is experienced in working with small and large enterprise development organizations and individuals. His years of experience as an Agile Coach, DevOps Consultant and Technical Architect contribute to his solutions presented. Eric has presented on Kanban, Unit Testing, Agile and other topics at many conferences and user groups.

@EricLandes

[email protected]

Page 3: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Agenda

• DevOps Practices

• Review of Continuous Deployment

Patterns

• Benefits of a Canary Deployment

Pattern

• What does it take to move to a Canary

deployment pattern?

• Moving from A/B to Canary

• Q&A

Page 4: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Puppet Labs Measures DevOps Maturity

According to the 2018 report:

• Highly evolved organizations are

23X more likely to reuse

deployment patterns.

• Highly evolved organizations are

44X more likely to reuse Testing

Patterns.

Page 5: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

Achiving a High Level of Maturity

• Metrics

• Automation

• Development Team Agility

• DevOps Practices and Habits

This Photo by Unknown Author is licensed under CC BY-NC-ND

Page 6: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

Metrics

• Cycle Time, Lead Time can be useful.

• Cumulative Flow is another metric

• Let’s look at what that looks like!

This Photo by Unknown Author is licensed under CC BY-NC

Page 7: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

DevOps Practices and Habits

Microsofts :

• Visual Studio Program teams

moved from every monolithic

releases to a continuous delivery

model starting with the 2010

release.

• Their experience came up with 7

practices and 7 habits for Devops.

Page 8: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

Devops Habits

Rigorous Management of Tech Debt

HypotheisisDriven

Development

Live Site Culture

Manage Infrastructure as a Flexible

Resource

Team Autonomy and Enterprise

Alignment

Focus on Flow of Customer

Value

Evidence Gathered in Production

Page 9: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

Devops Practices and Habits

Config Management

Release Management

Continuous Integration

Test Automation

Continuous Deployment

Infrastructure as code

Application Performance

Testing

Page 10: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

Continuous Delivery

“Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time” - Martin Fowler

• Scrum assumes shippable code by end of sprint

• CI/CD are good engineering practices

• There is a good post around CD patterns by ItayShakury. We will discuss those patterns.

Page 11: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

CD Patterns

Reckless Deployment

Rolling Upgrade

Blue/Green

Canary

Versioned

Page 12: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Benefits of Canary Deployments

• Feedback on features from actual

customers

• Ability to target customers

• Can fine tune features with real

customer feedback before rolling out to

all customers

Page 13: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Demo of Current Deployment State

Page 14: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

TEST AUTOMATION

• Deployment Pipelines include Test

Automation

• Types of Test Automation

Page 15: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Demo of Test Automation

Page 16: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Steps to move to Canary

• Implement Feature Toggling

• Think modular!

• Good quality at that modular level

• Plan rollout methods

Page 17: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Feature Toggling

• Use a library in code.

• Do this after the code is fairly stable,

not early in development

• Martin Fowler has a great post on

feature toggles (Feature Toggles (aka

Feature Flags)

• Do you need feature branches? Pros

and Cons

Page 18: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

DEMO IMPLEMENTING FEATURE TOGGLING

Page 19: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Implications to the Pipeline

• Configuration transformation

• Enable monitoring for new features

.

Page 20: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

What changes do we need?

Page 21: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Demo New Pipeline

Page 22: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

Summary

• Canary deployments can help Gather

evidence to support your Hypothesis

driven development, helping to deliver

better software to your customers

• Use tools like Feature Toggles to

achieve canary deployments

• Your development and deployments

need to be rock solid

.

Page 23: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

#ITDEVCONNECTIONS | ITDEVCONNECTIONS.COM

QUESTIONS

Page 24: DevOps Architecture Deep Dive Canary Deploymentfiles.informatandm.com/uploads/2018/10/Canary_Deployment_Your... · DevOps Architecture Deep Dive Canary Deployment Eric Landes Sr

Stay Connected

If you have questions or would like more information, feel free to contact me via email [email protected]

• linkedin.com/in/ericlandes

• @ericlandes

• www.agilethought.com

• www. linkedin.com/company/AgileThought

• @AgileThought