C O N C L U S I O N S
• Having a continuous integration story
• Deploy with confidence
• Control your logs
• Feel what your application is telling you
• Experiment and constantly improve
Slide 3
Slide 3 text
@ B RYA N L
@ D I G I TA L O C E A N
U R B A N S O F T WA R E
D E V E L O P E R
B RYA N L I L E S
Slide 4
Slide 4 text
D O Y O U A P P ?
Slide 5
Slide 5 text
– D E V E L O P E R S E V E RY W H E R E
“I write software, someone else
deploys and maintains it”
C H O O S I N G A C I T O O L
• Do you want to manage it?
• How much control do you want?
• What else can it do?
• What can’t it do?
• What are the real costs?
Slide 16
Slide 16 text
C O N T I N U O U S I N T E G R AT I O N
B U I L D I N G A D E L I V E RY P I P E L I N E
Garbage -> -> Stuff
Magic
Slide 17
Slide 17 text
C O N T I N U O U S I N T E G R AT I O N
Garbage -> -> Stuff
Magic
Slide 18
Slide 18 text
C O N T I N U O U S I N T E G R AT I O N
Commit -> -> Artifact
Test/Build
Slide 19
Slide 19 text
C O N T I N U O U S I N T E G R AT I O N
What’s an artifact?
Slide 20
Slide 20 text
D E P L O Y A L L T H E
T H I N G S
Slide 21
Slide 21 text
C H O O S I N G A D E P L O Y M E N T S T R AT E G Y
• Who does the deploys?
• Is it easy to set up?
• What happens when it breaks?
• Where are we deploying to?
• What happens when I oops?
Slide 22
Slide 22 text
D E P L O Y A L L T H E T H I N G S
Slide 23
Slide 23 text
D E P L O Y A L L T H E T H I N G S
S E R V E R
S E R V E R
S E R V E R
Slide 24
Slide 24 text
D E P L O Y A L L T H E T H I N G S
I M M U TA B L E I N F R A S T R U C T U R E
Slide 25
Slide 25 text
D E P L O Y A L L T H E T H I N G S
I M M U TA B L E
I N F R A S T R U C T U R E
http://bit.ly/iminfra
Slide 26
Slide 26 text
D E P L O Y A L L T H E T H I N G S
I bet your deploys look kind of like this
Slide 27
Slide 27 text
D E P L O Y A L L T H E T H I N G S
A RT I FA C T 1
S E R V E R 1
S E R V E R 2
S E R V E R 3
Deploy 1
Slide 28
Slide 28 text
D E P L O Y A L L T H E T H I N G S
A RT I FA C T 2
S E R V E R 1
S E R V E R 2
S E R V E R 3
Deploy 2
Slide 29
Slide 29 text
D E P L O Y A L L T H E T H I N G S
• What do you servers look like after Deploy 2?
• What happens when someone logs in to “fix
something”?
• Are my servers pets or cattle?
Slide 30
Slide 30 text
D E P L O Y A L L T H E T H I N G S
Pets or Cattle?
P E T S
• Are given cute names like
odin.example.com
• Are unique and loving
raised
• Require you to nurse them
back to health when they
get ill
Slide 34
Slide 34 text
D E P L O Y A L L T H E T H I N G S
Cattle
Slide 35
Slide 35 text
C AT T L E
• Cattle are given numbers
like
app001.dc2.example.com
• They are identical to all the
other cattle
• When they get ill, you get
another one
Slide 36
Slide 36 text
D E P L O Y A L L T H E T H I N G S
A RT I FA C T 1
S E R V E R 1
S E R V E R 2
S E R V E R 3
Deploy 1
Slide 37
Slide 37 text
D E P L O Y A L L T H E T H I N G S
A RT I FA C T 2
S E R V E R 4
S E R V E R 5
S E R V E R 6
Deploy 2
Slide 38
Slide 38 text
D E P L O Y A L L T H E T H I N G S
So WHAT does this mean for
me?
Slide 39
Slide 39 text
We always want to deploy to fresh
servers and retire the old
ones to pasture when we’re done.
Slide 40
Slide 40 text
When using the “Cloud”, you boot
new server instances when you start
new apps.
Slide 41
Slide 41 text
or don’t
Slide 42
Slide 42 text
W H AT ’ S M Y A P P D O I N G ?
Slide 43
Slide 43 text
H O W D O I K N O W T H I N G S A R E
W O R K I N G C O R R E C T LY ?
• What does “Working OK mean?”
• Where do I go to see if things are working OK?
• What was my app doing at 1545UTC last Thursday?
Slide 44
Slide 44 text
W H AT ’ S M Y A P P D O I N G ?
You have logs, right?
Slide 45
Slide 45 text
You aren’t alone if your
process looks like this:
Slide 46
Slide 46 text
You aren’t alone if your
process looks like this:
ssh [email protected]
Slide 47
Slide 47 text
You aren’t alone if your
process looks like this:
cd /app/myapp/shared/logs
Slide 48
Slide 48 text
You aren’t alone if your
process looks like this:
tail -f production.log | grep “foo”
Slide 49
Slide 49 text
W H AT ’ S M Y A P P D O I N G ?
Where are your logs?
Slide 50
Slide 50 text
W H AT ’ S M Y A P P D O I N G ?
S E R V E R 1
L O G S
S E R V E R 2
L O G S
S E R V E R 3
L O G S
Slide 51
Slide 51 text
W H AT ’ S M Y A P P D O I N G ?
S E R V E R 2
L O G S
S E R V E R 2
L O G S
S E R V E R 2
L O G S
L O G S E R V E R
Slide 52
Slide 52 text
W H AT ’ S M Y A P P D O I N G ?
S E R V E R 2
L O G S
S E R V E R 2
L O G S
S E R V E R 2
L O G S
Slide 53
Slide 53 text
W H AT ’ S M Y A P P D O I N G ?
S E R V E R 2
L O G S
S E R V E R 2
L O G S
S E R V E R 2
L O G S
Slide 54
Slide 54 text
W H AT ’ S M Y A P P D O I N G ?
Slide 55
Slide 55 text
W H AT ’ S M Y A P P D O I N G ?
PS. You don’t have to use logstash
Slide 56
Slide 56 text
W H AT ’ S M Y A P P D O I N G ?
Rant: Why you might
not use logstash
Slide 57
Slide 57 text
W H AT ’ S M Y A P P D O I N G ?
What kinds of things should I log?
Slide 58
Slide 58 text
W H AT ’ S M Y A P P D O I N G ?
Answer these questions:
Slide 59
Slide 59 text
W H AT ’ S M Y A P P D O I N G ?
If I were to trace through my application
and rebuild a flow, what data would I need?
Slide 60
Slide 60 text
W H AT ’ S M Y A P P D O I N G ?
What data do I need when hits
the fan?
Slide 61
Slide 61 text
W H AT ’ S M Y A P P D O I N G ?
Does my code capture errors?
Slide 62
Slide 62 text
W H AT ’ S G O I N G O N ?
Slide 63
Slide 63 text
Y O U H AV E T O B E T H E A P P W H I S P E R E R
• Your app has a pulse, what is it?
• If your app crashes when no one is paying attention,
does it make a sound?
Slide 64
Slide 64 text
W H AT ’ S G O I N G O N ?
Disclaimer: This is not another section
about logging.
Slide 65
Slide 65 text
W H AT ’ S G O I N G O N ?
L O G S
O T H E R
S T U F F
P E A C E O F
M I N D
Slide 66
Slide 66 text
W H AT ’ S G O I N G O N ?
O T H E R
S T U F F
Slide 67
Slide 67 text
W H AT ’ S G O I N G O N ?
O T H E R S T U F F
Slide 68
Slide 68 text
W H AT ’ S G O I N G O N ?
O T H E R S T U F F
E X C E P T I O N S
Slide 69
Slide 69 text
W H AT ’ S G O I N G O N ?
O T H E R S T U F F
E X C E P T I O N S
T E L E M E T RY
Slide 70
Slide 70 text
W H AT ’ S G O I N G O N ?
E X C E P T I O N S
Slide 71
Slide 71 text
W H AT ’ S
G O I N G O N ?
E X C E P T I O N S
Slide 72
Slide 72 text
W H AT ’ S G O I N G O N ?
Pro Tip: This shouldn’t be a dumping ground
Slide 73
Slide 73 text
W H AT ’ S G O I N G O N ?
O T H E R S T U F F
E X C E P T I O N S
T E L E M E T RY
Slide 74
Slide 74 text
W H AT ’ S G O I N G O N ?
T E L E M E T RY
Slide 75
Slide 75 text
W H AT ’ S
G O I N G O N ?
T E L E M E T RY
Slide 76
Slide 76 text
E V E RY O N E L O V E S P R E T T Y C O L O R S
Slide 77
Slide 77 text
O S S TAT E
A P P
R E S O U R C E
U S A G E
N E T W O R K
S TAT S
C E N T R A L
R E P O O F A L L
M E T R I C S A S A
T I M E S E R I E S
Slide 78
Slide 78 text
W H AT E L S E C A N I D O ?
Slide 79
Slide 79 text
W H AT E L S E C A N I D O ?
Slide 80
Slide 80 text
W H AT E L S E C A N I D O ?
Slide 81
Slide 81 text
W H AT E L S E C A N I D O ?
Slide 82
Slide 82 text
W H AT E L S E C A N I D O ?
Slide 83
Slide 83 text
W H AT E L S E C A N I D O ?
Decrease your
infrastructure woes
Boot a
DigitalOcean Droplet