63
ARCHITECTING FOR CONTINUOUS DELIVERY Patrick Kua (@patkua) 1

Architecting For Continuous Delivery

Embed Size (px)

Citation preview

Page 1: Architecting For Continuous Delivery

ARCHITECTING FOR CONTINUOUS DELIVERYPatrick Kua (@patkua)

1

Page 2: Architecting For Continuous Delivery

About Me

@patkua

Page 3: Architecting For Continuous Delivery

About Me

@patkua

wrote

http://tiny.cc/twtlhttp://tiny.cc/retros

Page 4: Architecting For Continuous Delivery

About Me

@patkua

works for

Page 5: Architecting For Continuous Delivery

About Me

People who work with

Page 6: Architecting For Continuous Delivery

About Me

People who work with

wrote the book on

Page 7: Architecting For Continuous Delivery

OUR AGENDA

7

What is CD (briefly)

Architectural Principles

Case Study

Challenges

Page 8: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

8

Page 9: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

9

Page 10: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

10

Page 11: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

11

Page 12: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

12

Page 13: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

13

“Our highest priority is to satisfy the customer through early and

continuous delivery of valuable software.”

Page 14: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

14

The capability to reliably release software to

production on demand

(with confidence)

Page 15: Architecting For Continuous Delivery

WHAT IS CONTINUOUS DELIVERY?

15

Continuous Integration

Releasable Artefact

Continuous Deployment

Automatic releases

Continuous Delivery

Releases on demand

Page 16: Architecting For Continuous Delivery

BUT HOW?

16

Page 17: Architecting For Continuous Delivery

PRINCIPLES

17

Page 18: Architecting For Continuous Delivery

PRINCIPLES

18

The one law to rule them all…

Page 19: Architecting For Continuous Delivery

19

The one law to rule them all…

CONWAY’S LAW

Page 20: Architecting For Continuous Delivery

20

The one law to rule them all…

CONWAY’S LAW

“organizations which design systems ... are constrained to produce designs which are copies

of the communication structures of these organizations"

Page 21: Architecting For Continuous Delivery

21

“If you have 4 groups working on a compiler, you’ll get a 4-pass compiler”

Eric Raymond - Hacker’s Bible, 1996

Page 22: Architecting For Continuous Delivery

CONWAY’S LAW IN ACTION

22

Page 23: Architecting For Continuous Delivery

23

CONWAY’S LAW

REAL LIFE EXAMPLES

Page 24: Architecting For Continuous Delivery

Production

24

Development

Page 25: Architecting For Continuous Delivery

Production

25

Development

Tooling

Culture

Incentives

A divide in:

Page 26: Architecting For Continuous Delivery

26

- Werner Voegls (Amazon)

“You build it, you run it”

Page 27: Architecting For Continuous Delivery

PRINCIPLES

27

The one law to rule them all…-ilities that matter

Page 28: Architecting For Continuous Delivery

*ilities that matter

Page 29: Architecting For Continuous Delivery

Automatability

Configurability

Testability

Deployability

Evolvability

Monitorability

*ilities that matter

Page 30: Architecting For Continuous Delivery

30

AUTOMATE

ALL THE THINGS

Page 31: Architecting For Continuous Delivery

31

Architect for testability

Page 32: Architecting For Continuous Delivery

32

“Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.” - Yoda

Page 33: Architecting For Continuous Delivery

33

Y-U-NO DEPLOY?

Page 34: Architecting For Continuous Delivery

34

Architect for Configurability

Page 35: Architecting For Continuous Delivery

35

Architect for Monitorability

Page 36: Architecting For Continuous Delivery

36

Architect for Evolvability

Page 37: Architecting For Continuous Delivery

37

Evolutionary Architecture

Technology Radar

Jan 2010

Aug 2010

Jan 2011

Jul 2011

Mar 2012

Assess

Trial

Trial

Adopt

Adopt

“An agile practice to incrementally build and improve

software architecture through the lifecycle of an application”

Page 38: Architecting For Continuous Delivery

PRINCIPLES

38

The one law to rule them all…-ilities that matterIterate

Page 39: Architecting For Continuous Delivery

39

Post Release 1

Page 40: Architecting For Continuous Delivery

40

Reality

Page 41: Architecting For Continuous Delivery

41

Things go wrong

Page 42: Architecting For Continuous Delivery

CASE STUDY: CLIENT

42

Page 43: Architecting For Continuous Delivery

16+ programme

streams

Page 44: Architecting For Continuous Delivery

4 Product Owners

Page 45: Architecting For Continuous Delivery

Constraints

Page 46: Architecting For Continuous Delivery

What we did

Page 47: Architecting For Continuous Delivery

47

Right stakeholder representation

Stories for operational work

Tested release process early

Separate service design

Page 48: Architecting For Continuous Delivery

The result

Up to 6 requests/day for change to live

Release on “Button Click”

Average release frequency “2 times/week”

Business decision when to release

Page 49: Architecting For Continuous Delivery

The result

Page 50: Architecting For Continuous Delivery

CASE STUDY: HP

50

Page 51: Architecting For Continuous Delivery

51

Page 52: Architecting For Continuous Delivery

52

2008

1 or 2 builds per year

Porting code

Manual Testing

Production Support

Detailed Planning

Page 53: Architecting For Continuous Delivery

53

Common codebase

Automated testing

Stop the line

Architecture change

Page 54: Architecting For Continuous Delivery

54

2011

10-15 builds per day

Automated test maintenanceNew automated tests1 master + 1 branch

Page 55: Architecting For Continuous Delivery

Who is doing Continuous Delivery?

Page 56: Architecting For Continuous Delivery

CHALLENGES

56

Page 57: Architecting For Continuous Delivery

Production

57

Development

Page 58: Architecting For Continuous Delivery

58

Snowflake servers

Page 59: Architecting For Continuous Delivery

59Configuration Management

Page 60: Architecting For Continuous Delivery

Investment

Page 61: Architecting For Continuous Delivery

Mindset

Page 62: Architecting For Continuous Delivery

CONCLUSION

62

Page 63: Architecting For Continuous Delivery

63

QUESTIONS@patkua