44
Getting a System to Production … and keeping it there Eoin Woods, Endava

Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Getting a System to Production… and keeping it there

Eoin Woods, Endava

Page 2: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally
Page 3: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

ContentIntroducing Production Systems What Goes Wrong in Production? Solutions for Production Systems Conclusions

3

Page 4: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Production Systems

4

Page 5: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

What is a production system?

5

Any systembeing used

for real work

Page 6: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Why is Productionisation Hard?No one teaches you about production

who do you talk to? what do they want? what is the definition of “done” ?

Production is difficult for developers hard to access, interrogate, debug, change, ...

6

Page 7: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

A new cast of characters

7

Developers

Development

Users

Page 8: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

A new cast of characters

7

Production

Users

Developers

AuditorsOperations

Acquirers

Infrastructure

BusinessManagement

Page 9: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Production is constrainedHighly controlled

Content is all valuable

Change can be difficult

8

Page 10: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Production is unpredictable

9

Page 11: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Production is highly visible!

10

Page 12: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

You don’t own production

11

Page 13: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

What goes wrong?

12

Page 14: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Performance surprisesInteractive load

Batch time surprises

System abusers! “all transactions this year”, “average since 1967”, ...

13

Page 15: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Environment bombshellsConstraints and contention

Unexpected behaviour

Integration points

14

Page 16: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Failures happenSoftware defects

Platform failures

Environment failures

15

Page 17: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Security tangles

Security is simple in Development

Much more complex in Production!

16

Page 18: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Finding Solutions

17

Page 19: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Key requirements for productionFunctionally correct

does what the business process requires

Stability behaves predictably in all situations

Capacity can process the workload required (at all times)

Security limits access to those who are authorised to have it

18

Page 20: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Solution Framework

Correctness Stability Capacity Security

Design Principles

Technology

Processes

19

Page 21: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Solution Framework

Correctness Stability Capacity Security

Design Principles

Technology

Processes

Simplicity

19

Page 22: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Solution Framework

Correctness Stability Capacity Security

Design Principles

Technology

Processes

Simplicity

Resource Governor

19

Page 23: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Solution Framework

Correctness Stability Capacity Security

Design Principles

Technology

Processes

Simplicity

Resource Governor

Threat Modelling

19

Page 24: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

General PrinciplesOne Team Automate Measure and Improve (feedback loops) Good Enough over Perfection

20

Timeless principles … today led by CD and DevOps

Page 25: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Example: Achieving Stability

21

Page 26: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - design principlesFail quickly

fail fast, timeouts

Isolate problems flow control, circuit breakers, bulkheads, asynchronous integration

Ensure steady state operation housekeeping, predictable resource allocation, governors, throttling

22

Page 27: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

23

Page 28: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

Fail fast

23

Page 29: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

Fail fast

Bulkhead

23

Page 30: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

Timeouts

Fail fast

Bulkhead

23

Page 31: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

Timeouts

Fail fast

Bulkhead

Governor

23

Page 32: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

Timeouts

Circuit Breaker

Fail fast

Bulkhead

Governor

23

Page 33: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - technology solutions

Timeouts

Circuit Breaker

Fail fast

Bulkhead

Governor

Housekeeping

23

Page 34: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Example - Circuit Breaker

Clear

Checking

Tripped

err_returned

timeout

err_returned && err_count > 10err_returned

24

Page 35: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - process principlesRepeatability

defined processes, practice scenarios, prelive environments

Automation automate the routine, automate the difficult allow the human back in the loop on demand

Transparency logging, monitoring, alerts, trends

25

Page 36: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Stability - process automation

Logging & Metrics

Monitoring

Automation

26

Page 37: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Summary

27

Page 38: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Production is just different it’s not yours and you need to respect that

Production is demanding Correctness Stability Capacity Security

Summary

28

Page 39: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Summary (ii)Solutions for each requirement by area

principles technologies processes

29

Page 40: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Summary (iii)Production requirements and principles go back to the age of the mainframe

CD and DevOps the latest incarnation welcome attention from developers new tech enabling new possibilities breaking down silos to make it happen

30

Page 41: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Books

Software SystemsArchitecture

Second Edition

NICK ROZANSKI • EOIN WOODS

Working with Stakeholders Using Viewpoints and PerspectivesSecond Edition

31

Page 42: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally
Page 43: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

Thanks !

Page 44: Getting a System to Production … and keeping it theregotocon.com/dl/goto-london-2015/slides/EoinWoods_Getting... · 2015. 9. 21. · Key requirements for production Functionally

34

Acknowledgements

http://www.icons-land.com

http://www.alamy.com/

http://www.42u.com