50

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

Embed Size (px)

DESCRIPTION

 

Citation preview

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