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
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