Transcript
Page 1: DevOps Practices: Continuous Delivery

DevOps Practices:Continuous DeliveryDoug [email protected]

Page 2: DevOps Practices: Continuous Delivery

Releasing software should be a repeatable, reliable process.

Continuous Delivery Principle

Page 3: DevOps Practices: Continuous Delivery

Continuous Delivery Process

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 4: DevOps Practices: Continuous Delivery

Continuous Integration

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 5: DevOps Practices: Continuous Delivery

Every check-in is a potential release candidate.

Continuous Delivery Principle

Page 6: DevOps Practices: Continuous Delivery

Continuous Inspection

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 7: DevOps Practices: Continuous Delivery

Mistakes v. Defects

• Mistakes are errors in action and are unavoidable.

• A defect is a mistake that goes uncorrected to a customer.

• Defects are entirely avoidable.

Page 8: DevOps Practices: Continuous Delivery

Quality Inspection

• Judgment Inspection - Inspect quality in

• Informative Inspection - Inspect at each stage

• Source Inspection - Build quality in

Page 9: DevOps Practices: Continuous Delivery

Poka-Yoke

ポカヨケ“mistake-proofing”

http://tinyurl.com/DevOps-PY

Page 10: DevOps Practices: Continuous Delivery

Poka-Yoke

ポカヨケ“mistake-proofing”

http://tinyurl.com/DevOps-PY

Page 11: DevOps Practices: Continuous Delivery

Poka-Yoke

ポカヨケ“mistake-proofing”

http://tinyurl.com/DevOps-PY

Page 12: DevOps Practices: Continuous Delivery

Poka-Yoke

ポカヨケ“mistake-proofing”

http://tinyurl.com/DevOps-PY

Page 13: DevOps Practices: Continuous Delivery

Build quality in.Continuous Delivery Principle

Page 14: DevOps Practices: Continuous Delivery

Continuous Deployment

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 15: DevOps Practices: Continuous Delivery

KnightmareTHE $460M DEPLOYMENT

Page 16: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

• Knight Capital Group• 3.3 billion trades daily.• $21.5 billion traded daily.• $365M cash & equivalents.

Page 17: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

• NYSE launches Retail Liquidity Program on August 1, 2012.

• “SMARS” updates to support RLP.• New parent-child order system in SMARS

update.• Repurposed 8-yer old “Power Peg” flag.

Page 18: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

• July 27, 2012 to July 31, 2012.• Manually deployed SMARS update.• Limited number of servers daily.

Page 19: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

“During the deployment of the new code, however, one of Knight’s technicians did not copy the new code to one of the eight SMARS computer servers.” SEC Filing | Release No. 70694 | October 16, 2013

Page 20: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

• 9:30 AM – Market opens.• 212 small retail “parent-orders”.• 7 servers processing “child-orders” correctly.• 8th server using the old Power Peg code failed

to recognized parent-orders were fulfilled.• 8th server sent cumulative child-orders in rapid

succession.

Page 21: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

• No automated fail-safe.• No procedures for how to react.• Knight uninstalled the correct SMARS code

from the seven servers where it had been deployed correctly.

Page 22: DevOps Practices: Continuous Delivery

Knightmarehttp://tinyurl.com/DevOps-Knightmare

• 9:30 AM to 10:15 AM• 4 million executions in 154 stocks.• 357 million shares.

• $460 million in losses in 45-minutes.

Page 23: DevOps Practices: Continuous Delivery

Automate as much as is reasonable.

Continuous Delivery Principle

Page 24: DevOps Practices: Continuous Delivery

Configuration as CodeExecution CodeEnvironment

Application

Page 25: DevOps Practices: Continuous Delivery

Demo: PowerShellDesired State Configuration (DSC)http://tinyurl.com/DevOps-DSC

Page 26: DevOps Practices: Continuous Delivery

Keep everything in version control.

Continuous Delivery Principle

Page 27: DevOps Practices: Continuous Delivery

Release Management

• Orchestration of release pipeline.• Automate deployment to all environments.• Fail deployment at the earliest stage.

Page 28: DevOps Practices: Continuous Delivery

‘Done’ means released.

Continuous Delivery Principle

Page 29: DevOps Practices: Continuous Delivery

Continuous Delivery Process

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 30: DevOps Practices: Continuous Delivery

Continuous Integration

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 31: DevOps Practices: Continuous Delivery

Continuous Inspection

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 32: DevOps Practices: Continuous Delivery

Continuous Deployment

http://tinyurl.com/DevOps-CD

Delivery Team

Version Control

Build & Unit Test

Automated Acceptance

Test

User Acceptance

TestsRelease

Check-in Trigger

Trigger

Feedback

Feedback

ApprovalApproval

Page 33: DevOps Practices: Continuous Delivery

Continuous Delivery Principles

• Releasing software should be a repeatable, reliable process.

• Every check-in is a potential release candidate.

• Build Quality In.• Automate as much as is reasonable.• Keep everything in version control.• ‘Done’ means released.

Page 34: DevOps Practices: Continuous Delivery

Resourcehttp://tinyurl.com/DevOps-Book

Page 35: DevOps Practices: Continuous Delivery

Thank You!

[email protected]

Page 36: DevOps Practices: Continuous Delivery

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Top Related