Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dealing with Incidents using Monzo Response
Search
Christopher Evans
May 22, 2019
Technology
0
45
Dealing with Incidents using Monzo Response
Christopher Evans
May 22, 2019
Tweet
Share
More Decks by Christopher Evans
See All by Christopher Evans
How to Build a Digital Bank Using AWS
evnsio
0
190
Keeping a modern bank online
evnsio
1
440
Other Decks in Technology
See All in Technology
Vault を基盤として整備し、 みんなに使ってもらえるようになるまで
takahiko
1
110
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.3k
サンドボックス技術でAI利活用を促進する
koh_naga
0
190
[RSJ25] Feasible RAG: Hierarchical Multimodal Retrieval with Feasibility-Aware Embodied Memory for Mobile Manipulation
keio_smilab
PRO
0
120
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
820
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
380
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
160
Codeful Serverless / 一人運用でもやり抜く力
_kensh
6
340
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
130
Grafana MCPサーバーによるAIエージェント経由でのGrafanaダッシュボード動的生成
hamadakoji
1
1.4k
Bye-Bye Query Spaghetti: Write Queries You'll Actually Understand Using Pipelined SQL Syntax
tobiaslampertlotum
0
150
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Typedesign – Prime Four
hannesfritz
42
2.8k
Practical Orchestrator
shlominoach
190
11k
Fireside Chat
paigeccino
39
3.6k
Code Reviewing Like a Champion
maltzj
525
40k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Speed Design
sergeychernyshev
32
1.1k
Transcript
Dealing with Incidents using Monzo Response ⚡ Chris Evans Platform
/ On-call Lead @evnsio
None
None
None
None
None
If any of that sounds interesting, we’re hiring… monzo.com/careers
Let’s talk about incidents...
“When you assign an incident lead, let customer operations know
who it is”
“...and remember to set a severity within the first 5
mins of the incident”
“...and if it’s a major severity, follow this procedure”
“...and if it’s a critical severity, here’s this other stuff
you need to do”
“...and if you’re going to put the status page up,
contact this team so they can decide whether we need to inform the regulator”
“...and check this spreadsheet for risk ratings to know whether
you need to notify a senior exec”
“...oh, and the incident needs to be dealt with too”
None
Response ⚡ is the result of applying software engineering to
incident response
Limit context switching Context switching during an incident is often
unavoidable. We aim to limit this, by enabling actions to be carried out without leaving the conversation.
Make the easiest thing the right thing If something needs
doing, bring it to the attention of the responder when it makes sense, or better still automate it away.
events, messages, etc Monzo Incident Backend Monzo Incident Web UI
Slack Architecture view, edit incidents messages, actions
The Basics
None
None
The Headline Post
The Incident Doc
The Comms Channel
The Comms Channel
The Comms Channel
Building Blocks
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
Functions that are called when a user wants the tool
to do something...
@incident <command> <action>
None
None
None
None
None
Some other commands we use at Monzo action log an
action to be followed up later escalate escalate to another set of on-callers statuspage update our customer facing status page rename rename a comms channel to something descriptive
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
Functions that are called when a word or phrase is
mentioned...
None
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
Functions that are called on a particular schedule...
None
None
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
Functions that are called when a particular Slack event happens...
None
None
Some other events that might be interesting... Users posting messages
Users pasting links Reactions
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
Functions that are called when a Slack button is clicked...
None
@slack_event @notification @action_handler @keyword_handler @incident_command @dialog_handler Building blocks
Functions that are called when a Slack dialog is submitted...
None
“I want to be able to Page engineers without leaving
Slack”
None
Page Engineer One line of code One function
One incident command to post the message One function to
handle buttons and raise dialog One function to handle dialog submission
Takeaways Map out your incident handling process Understand what you’re
being asked to do and when Use the building blocks of Response ⚡ to codify it Let your on-callers do what they do best
Thanks for listening! @evnsio github.com/monzo/response