Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

50

description

 

Transcript of Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Page 1: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.
Page 2: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery at Turner Broadcasting System, INC

Daniel WesterChief Engineer, Turner Broadcasting System, INC

2

Built it, Test it, Ship it

Page 3: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Who we are

3

and more…

Page 4: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery Components

4

Page 5: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Integration

5

Page 6: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Integration

6

Page 7: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

7

“What makes continuous deployment special is deploying every change that passes the automated tests (and optionally a short QA gate) to production. Continuous deployment is the practice of releasing every good build to users – a more accurate name might have been “continuous release”.”

From: Continuous Delivery vs Continuous Deployment by Jez Humble http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/Copyright © 2011 Jez Humble - All Rights Reserved. This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License (http://creativecommons.org/licenses/by-sa/3.0/us/ )

Continuous Deployment

Page 8: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

8

“Implementing continuous delivery means making sure your software is always production ready throughout its entire lifecycle – that any build could potentially be released to users at the touch of a button using a fully automated process in a matter of seconds or minutes.”

From: Continuous Delivery vs Continuous Deployment by Jez Humble http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/Copyright © 2011 Jez Humble - All Rights Reserved. This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License (http://creativecommons.org/licenses/by-sa/3.0/us/ )

Continuous Delivery

Page 9: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery: Deployment

9

Page 10: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Configuration Management

10

Page 11: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Notifications

11

Page 12: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

12

Page 13: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Our journey starts

13

•CNN.com created in 1995•Everything manual•Dev environments shared•A lot of development being done in production

•No configuration management

Page 14: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Conversation

14

Customer

Developer

Hey! This feature no longer works! It worked 10 minutes

ago. Oops! That was me. Fixing it

now.

Page 15: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Wild West Development

15

Page 16: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Shell script deployments

16

• Set of shell scripts monitoring a directory handles deployments.

• UI created in front of folder to allow developers select files to promote to an environment.

Page 17: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Conversations

17

Dev Lead Developer

Dev Lead Developer

The Customer reported that this just broke – who changed

something?

It wasn’t me – the change I just

pushed out was for this other thing

Did you push out the new configs as

well?Oh…

Page 18: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

18

Page 19: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Partial CI Builds

19

•Replaced shell scripts with Ant and CI server

•UI allow Developers select files•Files tagged in SCM with environment and date

•Backend managed deployment to environments

Page 20: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Demo

20

Page 21: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Controlled single change deployment

21

Page 22: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

22

Page 23: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Challenges with partial builds

23

•Environments are not re-creatable•Not scalable as development team grows

•Does not scale for large changes

Page 24: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

CI with manual deployment

24

•Web Applications•Compiled applications•Manual deployments done through Configuration Management tools

Page 25: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

25

Page 26: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Challenges with CI/manual

26

•Files are passed around•Manually maintained•Builds are incremental, but release is not

•Prone to environmental inconsistencies•Intra-project differences

Page 27: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

CNN.com Elections

27

•AJAX based application•Iteration developed•One build plan per environment•Deployment to production - manual

Page 28: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Deployments through cloning

28

Page 29: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Conversations

29

Dev Lead Developer

Dev Lead

QA

I thought that you said that the fancy feature would be in

the build?

Done

Oh! I forgot to merge it in time.

Can you do another build?

The new build that was just delivered

broke a lot of functionality.

Page 30: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

30

Page 31: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Integration with CM frameworks

31

• Integrated with CM for external projects

• Infrastructure driven

Page 32: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Not just for SCM based SW

32

Page 33: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

33

Page 34: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

34

Page 35: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

35

• “A new” web development platform brought in

•Requirement of “zero-touch” of production

•Single build for all environments.

Page 36: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

36

Page 37: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery Iteration 2

37

•Monitoring system integration•Build promotion history•Remediation can occur on Plan or job

Page 38: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Demo

38

Page 39: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Why integrate build sys and Release Mgmt?

39

•Source Code Correlation•Guaranteed no manual steps•For the developers – one tool

Page 40: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Conversations

40

Dev Lead

Developers

Dev Lead QA/Customer

I see you have changes lined up– are they ready to go into

the staging env?

Build 232 is in staging

Yes.

Build 232

looks good.

Dev Lead

Build 232

going out to prod

Page 41: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

What the NOC sees

41

Page 42: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

What the QA team sees

42

Page 43: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

What the Developer sees

43

Page 44: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

What the Infrastructure team sees

44

•Concentrate on automation•Developer accountability for production increases

•Less firefighting•Next project…

Page 45: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

What Management sees

45

•NOC Awareness•Unit and Functional tests•QA Tested•Automatic deployments with rollback capability

•Speed to market with minimal delays•Efficiency in the process•Removal of artificial roadblocks

Page 46: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Continuous Delivery

46

Page 47: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Challenges

47

•Full build concerns from various parties•Development and Infrastructure teams must be in sync

•Use SCM, Build and CM systems for their purposes

•Initial investment cost for new project types•One artifact to rule all environments

Page 48: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

Impact

48

•Delivery time to market - down•Quality of deliverables - up•Cultural change (more collaboration)

•Change tracking on source changes

Page 49: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.

49

Continuous delivery requires sharing operational ownership between dev & ops, and lets us rapidly develop sites in parallel

#summit11

Page 50: Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System, Inc.