Slide 1

Slide 1 text

EVERY MINUTE COUNTS COORDINATING HEROKU'S INCIDENT RESPONSE / Blake Gentry @blakegentry

Slide 2

Slide 2 text

PERSONAL BACKGROUND Lead Engineer at Heroku since 2011 Worked on nearly all parts of the platform In 2012, I led a project to overhaul Heroku’s Incident Response procedures

Slide 3

Slide 3 text

TALK OVERVIEW

Slide 4

Slide 4 text

I'M NOT GOING TO TALK ABOUT HOW TO: Build robust systems Debug production issues Fix issues quickly Monitor your systems Set up your on-call rotations

Slide 5

Slide 5 text

I AM GOING TO TALK ABOUT: How Heroku coordinates production incident response How to apply it to your startup IN PARTICULAR, HOW TO: Organize your company’s response to incidents Communicate with the company about what’s happening Communicate with your customers about the incident Build customer trust

Slide 6

Slide 6 text

WHAT'S THE PROBLEM?

Slide 7

Slide 7 text

SOFTWARE BREAKS! Happens to everybody Even if it's well-built Bugs, human error, power outages, security incidents, … Can't stop it, but you can control how you respond

Slide 8

Slide 8 text

PRODUCTION INCIDENTS ARE STRESSFUL A lot of stuff is happening Every minute counts High-pressure situation

Slide 9

Slide 9 text

EFFECTS OF POOR INCIDENT HANDLING Direct loss of revenue SLA credits Customers leave Erosion of trust

Slide 10

Slide 10 text

HEROKU'S INCIDENT RESPONSE IN EARLY 2012

Slide 11

Slide 11 text

CAMPFIRE + SKYPE

Slide 12

Slide 12 text

"CAN SOMEBODY FILL ME IN?"

Slide 13

Slide 13 text

CONTEXT-SWITCHING FOR STATUS UPDATES BREAKS FLOW

Slide 14

Slide 14 text

CUSTOMERS WERE KEPT IN THE DARK ESPECIALLY AS THE INCIDENT EVOLVED

Slide 15

Slide 15 text

NO WAY TO IMPROVE OUTSIDE OF ACTUAL INCIDENTS

Slide 16

Slide 16 text

NO POST-MORTEM OWNERSHIP

Slide 17

Slide 17 text

MANY REASONS TO BLAME: Product growth Company growth Changing personnel

Slide 18

Slide 18 text

TL;DR: INCIDENTS WERE CHAOTIC AND DISORGANIZED. THIS WAS AFFECTING OUR BUSINESS.

Slide 19

Slide 19 text

INCIDENT RESPONSE IS A SOLVED PROBLEM!

Slide 20

Slide 20 text

THE INCIDENT COMMAND SYSTEM

Slide 21

Slide 21 text

IT OPS ISN'T THE FIRST GROUP TO DEAL WITH THESE PROBLEMS Wildfires Traffic accidents Storms Earthquakes

Slide 22

Slide 22 text

THE INCIDENT COMMAND SYSTEM (ICS) Designed in the late 1960s to organize the fighting of California wildfires Based on the Navy’s management procedures Has evolved into a Federal standard for emergency response

Slide 23

Slide 23 text

ICS: KEY CONCEPTS Flexible, modular, scalable org structure Unity of command Limited span of control Clear communications Common terminology Management by objective

Slide 24

Slide 24 text

OTHER GOOD RESOURCES ON ICS FOR IT Incident Command System for IT (Brent Chapman) Incident Command System in Wikipedia

Slide 25

Slide 25 text

APPLYING ICS TO HEROKU

Slide 26

Slide 26 text

THREE PRIMARY ORGANIZATIONAL UNITS 1. Incident Command 2. Operations 3. Communications

Slide 27

Slide 27 text

1. INCIDENT COMMANDER (IC) A single person in charge with final decision-making authority. By definition, the first responder is the IC until they hand over responsibilities or the incident ends.

Slide 28

Slide 28 text

INCIDENT COMMANDER RESPONSIBILITIES: Tracks incident progress Coordinates the response between different groups Decides on state changes Issues periodic situation reports ("sitreps") Handles all other unassigned responsibilities

Slide 29

Slide 29 text

WHAT'S A SITREP?

Slide 30

Slide 30 text

WHAT'S A SITREP? Summary of what's broken Describe how widespread the impact is Explain what's being done to fix it Track who's working on it Sent regularly (i.e. hourly or for important updates) Sent to the entire company

Slide 31

Slide 31 text

INCIDENT COMMANDER EVENT LOOP ⟲ Do any groups need additional support? Does anybody need a break or sleep? Are customers being kept informed? Do we fully understand the impact? Is it time for a sitrep? Do all groups have the info they need? Repeat ↺

Slide 32

Slide 32 text

2. OPERATIONS Where the actual work happens Mostly engineers Usually only a small handful of people Large incidents may have multiple groups w/ own supervisor

Slide 33

Slide 33 text

OPERATIONS RESPONSIBILITIES Diagnose the issue Fix what's broken Report progress

Slide 34

Slide 34 text

3. COMMUNICATIONS Keeps customers informed about the status of the incident. Typically managed by customer support personnel.

Slide 35

Slide 35 text

WHY USE CUSTOMER SUPPORT? Don't have to context switch with problem-solving Used to speaking customers' language Can report back to the IC on customer impact

Slide 36

Slide 36 text

CUSTOMER COMMUNICATIONS (STATUS UPDATES) Timely public posts describing: What's broken What's being done to fix it What customers can do to work around the issue.

Slide 37

Slide 37 text

STATUS UPDATES SHOULD: Be honest Be transparent and upfront Explain progress

Slide 38

Slide 38 text

STATUS UPDATES SHOULD NOT: Provide an explicit ETA Presume to know the root cause Shift blame

Slide 39

Slide 39 text

WHO OWNS YOUR AVAILABILITY?

Slide 40

Slide 40 text

DON'T DO THIS:

Slide 41

Slide 41 text

PROACTIVE HANDLING OF TOP CUSTOMERS

Slide 42

Slide 42 text

HANDLING SUPPORT TICKETS DURING INCIDENTS

Slide 43

Slide 43 text

RECAP: ORGANIZATIONAL UNITS 1. Incident Command 2. Operations 3. Communications

Slide 44

Slide 44 text

COMMAND STRUCTURE ISN'T SET IN STONE.

Slide 45

Slide 45 text

OTHER IDEAS FROM THE ICS

Slide 46

Slide 46 text

TRAINING AND SIMULATIONS

Slide 47

Slide 47 text

INCIDENTS ARE STRESSFUL.

Slide 48

Slide 48 text

REALISTIC TRAINING IS ESSENTIAL.

Slide 49

Slide 49 text

TO RESPOND QUICKLY AND EFFECTIVELY, THE PROCESS MUST BE SECOND-NATURE.

Slide 50

Slide 50 text

TRAINING AND SIMULATIONS Mimic production env as much as possible Should happen regularly Focused on procedures, not technical resolution

Slide 51

Slide 51 text

CLEAR COMMUNICATIONS

Slide 52

Slide 52 text

EXPLICIT STATE CHANGES AND HAND-OFFS Use clear messaging when responsibilities transfer or state changes. EXAMPLES: @ a l l : I C - > R i c a r d o @ a l l : C o m m s - > C h r i s S t o l t @ a l l : I n c i d e n t C o n f i r m e d @ a l l : I n c i d e n t R e s o l v e d

Slide 53

Slide 53 text

DEDICATED COMMUNICATIONS CHANNEL Must be defined in advance. For us, this is a single-purpose HipChat room.

Slide 54

Slide 54 text

DEFINE TERMINOLOGY, PROCESS, AND GOALS UPFRONT

Slide 55

Slide 55 text

PRODUCT HEALTH METRICS No more than 2-3 high-level metrics to determine whether your product is healthy. Harder than it sounds.

Slide 56

Slide 56 text

PRODUCT HEALTH METRICS OUR METRICS: Continuous platform integration tests HTTP availability numbers # of apps/customers impacted

Slide 57

Slide 57 text

TOOLS AND CHAT OPS

Slide 58

Slide 58 text

TOOLS AND CHAT OPS

Slide 59

Slide 59 text

TOOLS AND CHAT OPS Only helpful if everyone knows how to use them!

Slide 60

Slide 60 text

INCIDENT STATE MACHINE 0. Everything is normal 1. Investigating an incident 2. Confirmed incident underway 3. Major incident underway

Slide 61

Slide 61 text

FOLLOW-UPS AND POST- MORTEMS

Slide 62

Slide 62 text

MAKE SURE SOMEBODY OWNS THIS

Slide 63

Slide 63 text

HOW TO WRITE A GOOD POST-MORTEM? 1. Apologize 2. Demonstrate understanding of events 3. Explain remediation The Mark Imbriaco formula.

Slide 64

Slide 64 text

HOW HAS THIS WORKED FOR US?

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

@jacobian speaking of which, Heroku wins for best communication I've gotten from any of my accounts re heartbleed. Not even a close contest. 3:24 PM - 9 Apr 2014 Andromeda Yelton @ThatAndromeda Follow 1 FAVORITE I'm impressed with the @heroku team's quick actions and response to #heartbleed. bit.ly/1eeCXMp 9:26 AM - 8 Apr 2014 Wade Wegner @WadeWegner Follow 1 RETWEET 1 FAVORITE

Slide 67

Slide 67 text

WE ARE FAR FROM PERFECT, THOUGH.

Slide 68

Slide 68 text

RECAP: APPLYING TO YOUR COMPANY

Slide 69

Slide 69 text

1. DEFINE ORG STRUCTURE 2. STANDARDIZE TOOLING AND PROCESS (NOT AD-HOC) 3. PICK PRODUCT HEALTH METRICS & THRESHOLDS 4. ESTABLISH GOALS FOR CUSTOMER COMMS

Slide 70

Slide 70 text

5. EXPLICIT HAND-OFFS 6. EMBRACE THE SITREP 7. OWN THE POST-MORTEM

Slide 71

Slide 71 text

8. REALISTIC TRAINING

Slide 72

Slide 72 text

THANKS! BY BLAKE GENTRY / @BLAKEGENTRY