devops practices: continuous delivery

36
DevOps Practices: Continuous Delivery Doug Seven [email protected]

Upload: doug-seven

Post on 08-May-2015

734 views

Category:

Technology


1 download

DESCRIPTION

The DevOps movement, like its Agile predecessor, is focused on improving the communication and collaboration between the development and operations teams responsible for different aspects of an app throughout its lifecycle. While successful DevOps initiatives start and end with organizational and cultural change, there are also common practices that are enablers and/or tools used in support of DevOps. In this session you will learn about the DevOps practice of Continuous Delivery—releasing and deploying application changes as they are available, and not waiting for big, cumbersome roll-ups of new code. This session will focus on the practice of Continuous Delivery, while demonstrating a few tools that can make implementing Continuous Delivery easier, including tools for automated provisioning and release orchestration. If you are interested in implementing a DevOps initiative in your organization, then this session is a must-see.

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.