Professional Documents
Culture Documents
Key 1
Key 2
Key 3
Key 4
Key 5
Key 1
Key 2
Key 3
Key 4
Key 5
Build applications
keeping
availability
in mind
OR
Develop for
failure
As a Service Developer
Your response to
a dependency
failure must be
As a Service Developer
Your response to
a dependency
failure must be
Understandable
As a Service Developer
Predictable
Your response to
a dependency
failure must be
Understandable
As a Service Developer
Predictable
Your response to
a dependency
failure must be
Understandable
Reasonable
for the given
dependency failure
How should I
respond when a
dependency fails?
Dont know something? Dont show it!
Provide a
graceful backoff
17
How should I
respond when a
dependency fails?
Fail as early as possible:
Provide a
graceful backoff
400
0
Someone was
sending bad requests
Service tried to
process the request
Customers felt a
performance problem
System had
browned out
19
20
The Lesson
Key 1
Key 2
Build applications
keeping
availability
in mind
Always think
about scaling
OR
Just because
your application
works now does
not mean it will
work tomorrow
Develop for
failure
Key 3
Key 4
Key 5
OR
Why?
Build for
tomorrow
might mean:
* This topic is large enough for an entire chapter, even an entire book, on on its own.
Confidential 200816 New Relic, Inc. All rights reserved.
Personalized content
can be added in browser
Key 1
Key 2
Key 3
Build applications
keeping
availability
in mind
Always think
about scaling
Mitigate
risk
OR
Just because
your application
works now does
not mean it will
work tomorrow
Develop for
failure
Key 4
Key 5
OR
Server
will crash
Database will
get corrupted
Returned
answer will
be incorrect
Network
connection
will fail
Newly deployed
piece of
software will fail
Risk
Risk
Managing what
your risk is
Risk Management
is at the heart of
building highly
available systems
Knowing what
you can do to mitigate
the risk
Confidential 200816 New Relic, Inc. All rights reserved.
Risk
Knowing what
you can do to mitigate
the risk
Risk mitigation
Risk Mitigation
Risk Mitigation
Key 1
Key 2
Key 3
Key 4
Build applications
keeping
availability
in mind
Always think
about scaling
Mitigate
risk
Monitor
availability
OR
OR
OR
Just because
your application
works now does
not mean it will
work tomorrow
Yes, we can
help you
Develop for
failure
Key 5
Monitor Availability
Monitor Availability
Establish
Internal
SLAs
Quick
diagnoses
Hot spots
to optimize
performance
Confidential 200816 New Relic, Inc. All rights reserved.
Critical to building
scalable application
Establish
Internal
SLAs
Quick
diagnoses
Hot spots
to optimize
performance
Confidential 200816 New Relic, Inc. All rights reserved.
Key 1
Key 2
Key 3
Key 4
Key 5
Build applications
keeping
availability
in mind
Always think
about scaling
Mitigate
risk
Monitor
availability
Availability
response
OR
OR
OR
OR
Just because
your application
works now does
not mean it will
work tomorrow
Yes, we can
help you
Develop for
failure
Responsiveness
Responsiveness
Responsiveness
When an alert is triggered
Responsiveness
BEFORE the problem occurs:
Key 1
Key 2
Key 3
Key 4
Key 5
Build applications
keeping
availability
in mind
Always think
about scaling
Mitigate
risk
Monitor
availability
Availability
response
lee@newrelic.com
www.leeatchison.com
@leeatchison
leeatchison
Confidential 200816 New Relic, Inc. All rights reserved.