Slide 1

Slide 1 text

Beyond Fast and Slow Tom Santero Full-Stack Engineering Meetup 11/26/2013 Prelude to the Engineering of the Future

Slide 2

Slide 2 text

tsantero twitter, github, @basho.com, IRC...

Slide 3

Slide 3 text

tsantero

Slide 4

Slide 4 text

Performance

Slide 5

Slide 5 text

Performance what even is performance?

Slide 6

Slide 6 text

Performance is(are) the system(s) performant?

Slide 7

Slide 7 text

Performance is performant even a word?

Slide 8

Slide 8 text

Performance price vs performance cloud vs bare metal scale vs optimization dynamic vs static typing** ** for seriously, y’all - not even trolling right now

Slide 9

Slide 9 text

Performance capacity planning, modeling; testing; benchmarking; proof of concepts

Slide 10

Slide 10 text

Performance production analysis optimization

Slide 11

Slide 11 text

Performance the entire stack

Slide 12

Slide 12 text

The Full Stack

Slide 13

Slide 13 text

The Full Stack everything is distributed

Slide 14

Slide 14 text

Distributed Systems “A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal.” -- Wikipedia

Slide 15

Slide 15 text

The Full Stack single server systems are distributed

Slide 16

Slide 16 text

Application Database System Libraries System Calls User-Level Kernel-Level Devices Kernel Thread Scheduler File Systems Network Stack Virtual Memory Device Drivers Figure 1.1 Generic System Software Stack. Adapted from “Systems Performance: Enterprise and The Cloud” by Brendan Gregg

Slide 17

Slide 17 text

The Full Stack problems with continuous integration; issue of methodology; organization

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

The Full Stack Continuous Technical Debt Integration

Slide 20

Slide 20 text

The Full Stack testing; metrics; deployment

Slide 21

Slide 21 text

Testing

Slide 22

Slide 22 text

Testing unit testing; regression

Slide 23

Slide 23 text

Testing load testing

Slide 24

Slide 24 text

Testing property based testing

Slide 25

Slide 25 text

Metrics

Slide 26

Slide 26 text

Metrics Metrics, Metrics Everywhere Coda Hale http://www.youtube.com/watch?v=czes-oa0yik

Slide 27

Slide 27 text

Metrics collection

Slide 28

Slide 28 text

“Whoever fights monsters should see to it that he does not become a monster. And if you gaze long enough into the abyss the abyss will gaze back into you. -- Friedrich Nietzsche

Slide 29

Slide 29 text

Metrics analysis

Slide 30

Slide 30 text

Application System Libraries System Calls Kernel Devices Workload Operating System Software Stack Workload Analysis Resource Analysis Figure 1.2 Analytics Perspectives. Adapted from “Systems Performance: Enterprise and The Cloud” by Brendan Gregg

Slide 31

Slide 31 text

Metrics visualization

Slide 32

Slide 32 text

“Even when the mouth lies, the way it looks still tells the truth.” -- Friedrich Nietzsche

Slide 33

Slide 33 text

Metrics sample size; resolution?

Slide 34

Slide 34 text

Metrics alerting

Slide 35

Slide 35 text

“I’m not upset that you lied to me. I’m upset that from now on I can’t believe you.” -- Friedrich Nieztsche

Slide 36

Slide 36 text

Deployment

Slide 37

Slide 37 text

Deployment ship it? dev/test/prod? staggered deployment

Slide 38

Slide 38 text

Deployment debugging production systems system wide activity processes stats dynamic tracing; strace, DTrace

Slide 39

Slide 39 text

Application System Libraries System Calls Kernel Devices Workload Operating System Software Stack Workload Analysis Resource Analysis Figure 1.2 Analytics Perspectives. Adapted from “Systems Performance: Enterprise and The Cloud” by Brendan Gregg

Slide 40

Slide 40 text

[slide intentionally left blank]

Slide 41

Slide 41 text

Thanks! Questions?