Page 1
The Art of the Spike
Aaron BedraPrincipal, Relevance, Inc.
Copyright 2007-2010 Relevance, Inc. This presentation is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. See http://creativecommons.org/licenses/by-nc-sa/3.0/us/
Saturday, May 15, 2010
Page 2
Saturday, May 15, 2010
Page 3
DRY
Saturday, May 15, 2010
Page 4
Do you have 10 years of
experience or the same year 10
times?Saturday, May 15, 2010
Page 5
So you’re starting a new project...
Saturday, May 15, 2010
Page 6
Yes but why?
Saturday, May 15, 2010
Page 7
Business value
Saturday, May 15, 2010
Page 8
“Faster”
Saturday, May 15, 2010
Page 9
“Better”
Saturday, May 15, 2010
Page 10
“Easier”
Saturday, May 15, 2010
Page 11
A Jedi craves not these things
Saturday, May 15, 2010
Page 12
Making money
Saturday, May 15, 2010
Page 13
Preserving reputation
Saturday, May 15, 2010
Page 14
Saturday, May 15, 2010
Page 15
We’ve just been assigned a new
project
Saturday, May 15, 2010
Page 16
Credit card authorization
Saturday, May 15, 2010
Page 17
Very lean information set
Saturday, May 15, 2010
Page 18
Number, available credit, per charge
limit
Saturday, May 15, 2010
Page 19
Lookup by card number
Saturday, May 15, 2010
Page 20
Web service for charges
Saturday, May 15, 2010
Page 21
Transaction speed is essential
Saturday, May 15, 2010
Page 22
Ok let’s get down to planning
Saturday, May 15, 2010
Page 23
We’ve decided to use clojure as a
language
Saturday, May 15, 2010
Page 24
And PostgreSQL as a database
Saturday, May 15, 2010
Page 25
But wait!
Saturday, May 15, 2010
Page 26
Has anyone heard about Redis?
Saturday, May 15, 2010
Page 27
It might be a good fit for this
Saturday, May 15, 2010
Page 28
We should spike it out!
Saturday, May 15, 2010
Page 29
Research time
Saturday, May 15, 2010
Page 30
Record everything!
Saturday, May 15, 2010
Page 31
Time-box everything!
Saturday, May 15, 2010
Page 32
Getting started
Saturday, May 15, 2010
Page 33
All technology you are about to
encounter should be treated as a first
class citizen!
Saturday, May 15, 2010
Page 34
Download and install
Saturday, May 15, 2010
Page 35
How did it go?
Saturday, May 15, 2010
Page 36
Should we keep going?
Saturday, May 15, 2010
Page 37
Interfacing
Saturday, May 15, 2010
Page 38
Is there an SDK or API?
Saturday, May 15, 2010
Page 39
In the language you are using?
Saturday, May 15, 2010
Page 40
Does it work?
Saturday, May 15, 2010
Page 41
Should we keep going?
Saturday, May 15, 2010
Page 42
Prototype code
Saturday, May 15, 2010
Page 43
Simple CRUD
Saturday, May 15, 2010
Page 44
How long did it take?
Saturday, May 15, 2010
Page 45
Should we keep going?
Saturday, May 15, 2010
Page 46
Reference Example
Saturday, May 15, 2010
Page 47
What does my team think?
Saturday, May 15, 2010
Page 48
Should we keep going?
Saturday, May 15, 2010
Page 49
Operations
Saturday, May 15, 2010
Page 50
How do we deploy it?
Saturday, May 15, 2010
Page 51
How do we monitor it?
Saturday, May 15, 2010
Page 52
Should we keep going?
Saturday, May 15, 2010
Page 53
Performance
Saturday, May 15, 2010
Page 54
How fast can a single instance go?
Saturday, May 15, 2010
Page 55
Can it scale?
Saturday, May 15, 2010
Page 56
How does it compare to our
original idea?
Saturday, May 15, 2010
Page 57
Does it help us meet our “why”
Saturday, May 15, 2010
Page 58
Should we keep going?
Saturday, May 15, 2010
Page 59
Management / Client
Saturday, May 15, 2010
Page 60
We did a spike and here’s what
we found
Saturday, May 15, 2010
Page 61
Easy to install
Saturday, May 15, 2010
Page 62
Easy to use
Saturday, May 15, 2010
Page 63
The dev team has a reference
Saturday, May 15, 2010
Page 64
Dev team feels they can be
productive on day one
Saturday, May 15, 2010
Page 65
Easy deployment
Saturday, May 15, 2010
Page 66
Easy monitoring
Saturday, May 15, 2010
Page 67
In memory
Saturday, May 15, 2010
Page 68
Outperforms our RDBMS
Saturday, May 15, 2010
Page 69
Easy and fast scaling
Saturday, May 15, 2010
Page 70
?Saturday, May 15, 2010
Page 71
Questions?
Saturday, May 15, 2010
Page 72
Contact
• aaronbedra.com (blog)
• @abedra (twitter)
• [email protected]
• github.com/abedra
• speakerrate.com/talks/3252
Saturday, May 15, 2010