continuous delivery without breaking everything

80
Continuous Delivery Without Breaking Everything James Andrew Vaughn (Andy) @MindTouch

Upload: james-andrew-vaughn

Post on 12-Aug-2015

34 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Continuous Delivery Without Breaking Everything

Continuous Delivery Without Breaking Everything

James Andrew Vaughn (Andy) @MindTouch

Page 2: Continuous Delivery Without Breaking Everything

James Andrew Vaughn (Andy)

• Software Engineer at MindTouch• @modethirteen on Twitter & GitHub• Professional Interests aside from Continuous

Delivery• Frontend Web Performance & RUM• Web components (Polymer)• JavaScript & CSS Pre-processing and Build

Automation• SSO and Identity Management• Scala

Page 3: Continuous Delivery Without Breaking Everything

Not Sure What This Session Is About?

Page 4: Continuous Delivery Without Breaking Everything
Page 5: Continuous Delivery Without Breaking Everything
Page 6: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Page 7: Continuous Delivery Without Breaking Everything

2006

2010

2011

2012

2013

2014

Cloud Infrastructure Development

Begins

MindTouch On Premise Initial

Release

Tremors of Continuous

Delivery

Manual Cloud Releases

Quality and Testing Catch Up

Releases Become Invisible

On Premise Cloud Enlightenment

Page 8: Continuous Delivery Without Breaking Everything

2006

2010

2011

2012

2013

2014

Cloud Infrastructure Development

Begins

MindTouch On Premise Initial

Release

Tremors of Continuous

Delivery

Manual Cloud Releases

Quality and Testing Catch Up

Releases Become Invisible

On Premise Cloud Enlightenment

Page 9: Continuous Delivery Without Breaking Everything

2006

2010

2011

2012

2013

2014

Cloud Infrastructure Development

Begins

MindTouch On Premise Initial

Release

Tremors of Continuous

Delivery

Manual Cloud Releases

Quality and Testing Catch Up

Releases Become Invisible

On Premise Cloud Enlightenment

Page 10: Continuous Delivery Without Breaking Everything

2006

2010

2011

2012

2013

2014

Cloud Infrastructure Development

Begins

MindTouch On Premise Initial

Release

Tremors of Continuous

Delivery

Manual Cloud Releases

Quality and Testing Catch Up

Releases Become Invisible

On Premise Cloud Enlightenment

Page 11: Continuous Delivery Without Breaking Everything

2006

2010

2011

2012

2013

2014

Cloud Infrastructure Development

Begins

MindTouch On Premise Initial

Release

Tremors of Continuous

Delivery

Manual Cloud Releases

Quality and Testing Catch Up

Releases Become Invisible

On Premise Cloud Enlightenment

Page 12: Continuous Delivery Without Breaking Everything

2006

2010

2011

2012

2013

2014

Cloud Infrastructure Development

Begins

MindTouch On Premise Initial

Release

Tremors of Continuous

Delivery

Manual Cloud Releases

Quality and Testing Catch Up

Releases Become Invisible

On Premise Cloud Enlightenment

Page 13: Continuous Delivery Without Breaking Everything

V1 V2 V3 V4 V5

On-PremiseRelease Cycle

V6 V7

Page 14: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

On-Premise

Page 15: Continuous Delivery Without Breaking Everything

On-PremiseBuild: Development

Environments

Image: https://www.flickr.com/photos/kalimistuk/5222488195/in/set-72157594487294945

Page 16: Continuous Delivery Without Breaking Everything

On-PremiseBuild: Version Control

Page 17: Continuous Delivery Without Breaking Everything

On-PremiseBuild: Continuous Integration

Page 18: Continuous Delivery Without Breaking Everything
Page 19: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

On-Premise

Page 20: Continuous Delivery Without Breaking Everything
Page 21: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

On-Premise

Page 22: Continuous Delivery Without Breaking Everything

On-PremiseRelease: Packaging

Page 23: Continuous Delivery Without Breaking Everything

Release: Supported PlatformsOn-Premise

Page 24: Continuous Delivery Without Breaking Everything

On-PremiseRelease: Pre-Release Testing

Page 25: Continuous Delivery Without Breaking Everything

On-PremiseRelease: Deploy

Page 26: Continuous Delivery Without Breaking Everything
Page 27: Continuous Delivery Without Breaking Everything
Page 28: Continuous Delivery Without Breaking Everything

On-PremiseLost Time, Lost Opportunities

Page 29: Continuous Delivery Without Breaking Everything

CloudRelease Cycle

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10

Page 30: Continuous Delivery Without Breaking Everything

Release Cycle

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10

On Premise vs Cloud

V1 V2 V3 V4 V5 V6 V7

Page 31: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Cloud

Page 32: Continuous Delivery Without Breaking Everything

CloudBuild: Development

Environments

Image: https://www.flickr.com/photos/kalimistuk/5222488195/in/set-72157594487294945

Page 33: Continuous Delivery Without Breaking Everything

CloudBuild: Version Control

Page 34: Continuous Delivery Without Breaking Everything
Page 35: Continuous Delivery Without Breaking Everything
Page 36: Continuous Delivery Without Breaking Everything
Page 37: Continuous Delivery Without Breaking Everything

CloudBuild: Continuous Integration

Page 38: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Cloud

Page 39: Continuous Delivery Without Breaking Everything

CloudTest: Staging Environments

Image: https://www.flickr.com/photos/kalimistuk/5222488195/in/set-72157594487294945

Page 40: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Cloud

Page 41: Continuous Delivery Without Breaking Everything

CloudRelease: Packaging

Page 42: Continuous Delivery Without Breaking Everything

CloudRelease: Pre-Release Testing

Page 43: Continuous Delivery Without Breaking Everything

CloudRelease: Deploy

Page 44: Continuous Delivery Without Breaking Everything

CloudRelease: Deploy

Page 45: Continuous Delivery Without Breaking Everything

CloudRelease: The Golden Image

Page 46: Continuous Delivery Without Breaking Everything

+ boto: A Python Interface toAmazon Web Services

Page 47: Continuous Delivery Without Breaking Everything

V1 V2 V3 V2 V3 V4 V5 V6 V5 V6 V7 V8 V7 V8

CloudReleasing MindTouch

V3 Rolled Back

Release +Same Day Hot Fix

OMG Hot Fix BrokeSomething Else, Just

Roll Back To V7

V6 Rolled Back

Page 48: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Enlightenment

Page 49: Continuous Delivery Without Breaking Everything

EnlightenmentBuild: Development

Environments

Page 50: Continuous Delivery Without Breaking Everything

+

Page 51: Continuous Delivery Without Breaking Everything

EnlightenmentBuild: Continuous Integration

Page 52: Continuous Delivery Without Breaking Everything

++

Page 53: Continuous Delivery Without Breaking Everything

++

Close ticket associatedwith pull request

Page 54: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Enlightenment

Page 55: Continuous Delivery Without Breaking Everything

EnlightenmentTest: Automation

Page 56: Continuous Delivery Without Breaking Everything

EnlightenmentTest: Behavior Driven

Specifications

Page 57: Continuous Delivery Without Breaking Everything

+

Page 58: Continuous Delivery Without Breaking Everything

Feature: User Login In order to contribute to MindTouch As an anonymous user I need to be able to log in to MindTouch

Background: Given I am on the homepage

Scenario: Log in to MindTouch via Quick Login widget When I follow "Sign In" Then I should see a "#quick-login" element When I fill in "username" with {{username}} And I fill in "password" with {{password}} And I click on the element "form#quick-login .btn" Then I should be logged in

Scenario: Log in to MindTouch via User Login page When I go to "/UserLogin" Then I should be on "/UserLogin" When I fill in "text-username" with {{username}} And I fill in "password-password" with {{password}} And I press "login" Then I should be logged in

Page 59: Continuous Delivery Without Breaking Everything

EnlightenmentTest: Staging Environments

Page 60: Continuous Delivery Without Breaking Everything

+ boto: A Python Interface toAmazon Web Services

Page 61: Continuous Delivery Without Breaking Everything

EnlightenmentTest: Provide Automated Testing Feedback To

Developers

Page 62: Continuous Delivery Without Breaking Everything
Page 63: Continuous Delivery Without Breaking Everything
Page 64: Continuous Delivery Without Breaking Everything
Page 65: Continuous Delivery Without Breaking Everything
Page 66: Continuous Delivery Without Breaking Everything
Page 67: Continuous Delivery Without Breaking Everything
Page 68: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Enlightenment

Page 69: Continuous Delivery Without Breaking Everything

EnlightenmentRelease: What’s Left?

Page 70: Continuous Delivery Without Breaking Everything
Page 71: Continuous Delivery Without Breaking Everything
Page 72: Continuous Delivery Without Breaking Everything

EnlightenmentEveryone Has Bought Into Continuous Delivery

(Even If They Don’t Know It)

Page 73: Continuous Delivery Without Breaking Everything

Image: https://www.flickr.com/photos/29844928@N07/4368522936/

Page 74: Continuous Delivery Without Breaking Everything
Page 75: Continuous Delivery Without Breaking Everything

EnlightenmentThe DevOps Engineer Who Wasn’t

There

Page 76: Continuous Delivery Without Breaking Everything
Page 77: Continuous Delivery Without Breaking Everything

ReleaseTestBuild

Page 78: Continuous Delivery Without Breaking Everything
Page 79: Continuous Delivery Without Breaking Everything

What’s Next?

Page 80: Continuous Delivery Without Breaking Everything

The End. Q?