Today at #srecon, @allspaw and @ri_cook give deep insight on real tools, incident timelines, and clumsy automation.
But not in person. 😭
Great tools (as opposed to machines) are near to hand and conform to the person who wields them. Like a hammer, or `top`. Yeah.
They are opinionated, but not prescriptive.
(machines do what they do, and you conform to them)
In software, tools like `top` help us see what’s going on in the digital space. @ri_cook et al see our work taking place on two sides of a divide. There’s meatspace (where we are) and digital space (where the software runs). You can’t reach out and feel digital stuffs.
Between human & digital space is the Line of Representation.
Screens, mice, keyboards.
“Everything we claim to know about the systems we run comes from inferences based on representations.” @allspaw@ri_cook#srecon
We have so many tools that work Below the Line (of Representation). `top`, @honeycombio, everything we look at to find out what’s going on down there in software-land.
Are there tools that help us keep track of what’s going on Above the Line, in the people?
(we’re talking about _tools_ here, not machines. We want something that we willingly reach for, that molds to our needs instead of molding us to its needs.
So no, your JIRA workflow is not it.)
There’s a lot more to an incident than the official [Declared Incident]. That’s a small part of a timeline that includes sources, buildup, [troubleshooting, recovery], sensemaking, reviews, etc
Tools that help humans work could remind us: who can we call to help? who needs brought up to speed? what options do we have right now?
and later help us make sense of the whole affair. @ri_cook@allspaw#SREcon
But watch out!! Beware the clumsy automation:
any automation that requires more work at the busiest time in order to save work at a less-busy time is a _clumsy automation_.
Like if a plane thingie helps during cruising but asks for input during takeoff 😾
If an automation asks for attention during the crunch time of an incident, so that reporting is easier later — fail! Clumsy automation!
and the best part, from q&a, someone used the O-word in a question:
“There are no ‘objective’ incidents. They are defined by our desires and goals. Incidents are a social construction.” @ri_cook#srecon
“the efforts you all go to, to define a start and stop time for an incident, represent your need to project a degree of control.
“And the tortured language you use to define something called incident severity! 😱” @ri_cook#SREcon
• • •
Missing some Tweet in this thread? You can try to
force a refresh
This afternoon at #srecon, Adam Mckaig and Tahia Khan from @datadoghq about the evolution of their metrics backend
The high-level architecture looks very familiar to me. The slightly more detailed less so — many parts!
For scale, break up incoming data, put into kafka.
hash(customer_id) -> partition_id
… but then one kafka topic gets overloaded, so…
hash(customer_id) -> topic_id, partition_id
to send to topics in different clusters.
What can we learn from ALL the incidents? @courtneynash at @verica_io compiles reports from lots of companies into the VOID: Verica Open Incident Database. #SREcon
While every incident and every company is different, the distributions have the same shape. They are “positively skewed:” more short incidents than long ones.
People.
There is a difference between a backend and an API.
Taking the endpoints that you wrote for your site, slapping some documentation on them and publishing it
does not make an API.
An API needs designing. It needs a conscious language and consistent conventions.
Standard auth.
Paging.
Careful error codes and messages.
Versioning.
A backend is whatever your front end needs. It should change when your front end needs it to change.
Don’t restrict it to historical behavior because other systems have grown dependent on it.