What is a Data Incident Commander?

Incident management isn’t just for software engineers. With the rise of data platforms 以及数据即产品的思维方式,建立更可靠的流程和工作流程来处理 data quality has emerged as a top concern for data engineers. 

In a previous post, we discussed how to set up automatic detection and alerting for bad data; now, guest author Glen Willis 在数据事件指挥官这一新兴角色的帮助下,分享最好的数据团队如何处理破碎数据管道的分流和严重程度评估. 

现在是周一早上,你的手机一直响个不停. 

当你醒来时,你会发现你的首席执行官在说:“这份报告中的数字似乎又不对了。.” 

你和你的团队放下手头的工作,开始解决手头的问题. 然而,你们团队对这一事件的反应是一团糟. 组织中的其他团队成员正在重复努力, 你的首席营销官被蒙在蒙里,公司的其他部门也没有收到任何更新.

As all of this is going on, 财务部的约翰给你发短信,说他的电子表格有一个错误的表格, and Eleanor in Operations about a query that pulled interesting results.

What is a data engineer to do? 

如果这种情况听起来很熟悉,知道你不是一个人. All too often, 数据工程师不仅要承担修复数据问题的重任, but prioritizing what to fix, how to fix it, and communicating status as the incident evolves. For many companies, 数据团队的职责通常是模糊的, 特别是当涉及到回答以下问题时: “who is managing this incident?”  

Sure, data reliability SLAs should be managed by entire teams, but when the rubber hits the road, 推荐一个正规滚球网站需要一个专门的角色来帮助发号施令,并确保这些sla在数据泄露时得到满足.

在软件工程中,这个角色通常定义为 incident commander, and its core responsibilities include: 

  • 尽早且经常地将事件通知更广泛的数据团队和利益相关者.
  • 维护受影响的数据资产或异常的工作记录.
  • 为某一特定事件协调努力并分配责任.
  • Circulating runbooks and playbooks as necessary.
  • Assessing the severity and impact of the incident.

数据小组应每周或每天轮流指派事件指挥官, 或者特定功能团队拥有的特定数据集. Establishing a good, 可重复的事件管理实践(委派明确的事件指挥官)主要是一个文化过程, 但是,投资于自动化和保持数据健康的持续脉搏会让你在很大程度上实现这一目标. The rest is education. 

以下是每个事故管理人员在对数据问题进行分类和评估时必须采取的四个关键步骤:  

1. Route notifications to the appropriate team members

In a decentralized data team, 团队成员分散在不同的业务单元,每个领域的数据团队成员负责为其涉众处理事件. In this structure, 数据团队成员通常向业务部门主管报告,有时也向CDO或数据主管报告. Image courtesy of Monte Carlo.


一个集中的数据团队直接向CDO或数据主管报告,同时对来自不同业务单位的数据的查询和事件进行处理.  除非另有说明,一些业务单位是他们的利益相关者. Image courtesy of Monte Carlo.

When responding to data incidents, 数据组织的结构方式将影响事件管理工作流程, and as a result, the incident commander process.

如果你是一个嵌入式数据团队的成员,那么委派事件响应(i.e.,营销数据和分析团队拥有所有的营销分析渠道). If you sit on a centralized data team, Fielding和路由这些事件警报到适当的所有者需要更多的远见和计划.

Either way, 推荐一个正规滚球网站建议您为数据团队的特定成员拥有和维护的数据管道建立专门的Slack通道, 邀请相关的利益相关者,让他们知道他们依赖的关键数据是否减少. Many teams we work with set up PagerDuty 或Opsgenie的工作流程,以确保没有遗留的基地. 

As a data incident commander, 正确地发送通知,并在错误蔓延到下游之前迅速地将其呈现给正确的人是非常重要的. Image courtesy of Monte Carlo.

2. Assess the severity of the incident

获得上述通知可以让您和您的团队评估事件的严重性,并决定是否应该优先响应事件. Image courtesy of Monte Carlo.

一旦通知管道所有者数据有问题, 他们应该采取的第一步是评估事件的严重程度. Because data ecosystems are constantly evolving, 在任何给定的时间,您的数据管道中都可以引入大量的更改. While some are harmless (i.e.例如,预期的模式变更),有些是致命的,对下游涉众造成影响(i.e.,临界表中的行数从10,000下降到1,000). 

Once your team starts troubleshooting the issue, 最佳实践是根据问题的状态对其进行标记, whether fixed, expected, investigating, no action needed, or false positive. 标记问题可以帮助用户评估事件的严重程度,并在通过特定于受影响数据的渠道向相关涉众传达更新信息方面发挥关键作用,以便他们能够采取适当的行动. 

如果一个对您的公司并不重要的数据资产崩溃了怎么办? In fact, what if this data is deprecated? 

Phantom data haunts even the best data teams, 我都不知道有多少次我收到了数据问题的警告, 在所有的事件之后,解决方案都说了,也做了, just did not matter to the business. So, instead of tackling high priority problems, 我花了几个小时甚至几天的时间处理那些坏掉的数据,结果却发现自己在浪费时间. We have not used that table since 2019.

Just as in software engineering and DevOps, 端到端沿袭映射关键数据依赖关系是数据事件指挥官工具包的一个关键组件. Image courtesy of Monte Carlo.

那么,如何确定哪些数据对您的组织最重要? 团队发现他们最关键的数据集的一种越来越常见的方法是利用工具,帮助他们可视化数据集的传承. 这使得他们能够在事件发生时看到所有的数据集是如何相关的, 并且能够追踪数据所有权,以提醒可能受到该问题影响的正确人员.

一旦你的团队能够弄清楚影响的严重性, 他们将更好地理解错误的优先级是什么. 如果是数据直接推动了财务洞察力, or even how well your products are performing, 这可能是一个超高优先级的问题,你的团队应该停止他们正在做的事情,尽快修复它. And if it’s not, time to move on.

3. Communicate status updates as often as possible

在响应数据事件时,为事件响应工作组的所有成员提供一个关于给定事件的中央状态页面将起到关键作用. Image courtesy of Monte Carlo.

在响应数据事件的热潮中,良好的沟通大有帮助, 这就是为什么推荐一个正规滚球网站已经讨论了数据团队应该如何以及为什么应该这样做 create a runbook 这一步一步地介绍了如何处理给定类型的事件. 遵循运行手册对于维护正确的职责线和减少重复工作是至关重要的.

Once you have “who does what” down, 然后,您的团队可以开始更新状态页面,涉众可以在其中跟踪实时更新. 中央状态页面还允许团队成员查看其他人正在进行的工作以及这些事件的当前状态. 

在与客户的交谈中,我看到事故指挥代表团的处理方式有两种:

  1. 指派一名团队成员在给定的时间内随时待命处理任何事件: 在随叫随到时,该人员负责处理所有类型的数据事件. 有些团队会有专职人员负责他们团队管理的所有事件, 而其他公司则制定了每周轮换团队成员的时间表. 
  2. 负责覆盖某些桌子的团队成员: This is the most common structure we see. With this structure, 团队成员在进行日常活动的同时处理与他们所分配的表格或报告相关的所有事件. 表的分配通常是基于给定成员最密切使用的数据或管道进行的. 

要记住的一件重要的事情是,这里没有对错之分. 最终,这只是确保你承诺并坚持一个过程的问题. 

4. 定义和调整数据sla和sli,以防止未来的事故和停机 

While the incident commander is not accountable for setting SLAs, they are often held responsible for meeting them. 

Simply put, 服务水平协议(sla)是许多公司用来定义和度量给定供应商的服务水平的方法, product, 或者内部团队会交付——如果他们未能交付,也会提供潜在的补救措施.

For example, Slack’s customer-facing SLA promises 99.99% uptime every fiscal quarter, and no more than 10 hours of scheduled downtime, for customers on Plus plans and above. 如果金额不足,受影响的客户将获得其账户上的服务信用,以备将来使用.

Your service-level indicators (SLIs), quantitative measures of your SLAs, will depend on your specific use case, 但以下是一些用于量化事件响应和数据质量的指标:

  • 特定数据资产的数据事件数(N): Although this may be beyond your control, given that you likely rely on external data sources, 它仍然是数据停机的重要驱动因素,通常值得衡量.
  • Time-to-detection (TTD): 当出现问题时,这个指标将量化您的团队收到警报的速度. 如果您没有适当的检测和警报方法, this could be measured in weeks or even months. 由错误数据造成的“无声错误”可能导致昂贵的决策, 对你的公司和你的客户都有影响.
  • Time-to-resolution (TTR): 当您的团队收到问题的警报时,这将度量您能够多快地解决该问题.

By keeping track of these, data teams can work to reduce TTD and TTR, and in turn, build more reliable data systems. 

Why data incident commanders matter

When it comes to responding to data incidents, time is of the essence, and as the incident commander, time is both your enemy and your best friend.

在理想的情况下,公司希望数据问题能够尽快得到解决. However, 但情况并非总是如此,一些团队经常发现自己调查数据问题的频率超过了预期. 事实上,虽然数据团队投入了大量的时间编写和更新 custom data tests, they still experience broken pipelines. 

An incident commander, armed with the right processes, a pinch of automation, and organizational support, 是否可以为您的数据管道的可靠性创造奇迹.

Your CEO will thank you later.

有兴趣了解更多关于使用蒙特卡罗为您的数据管道建立一个健壮的事件管理流程的信息? Reach out to Glen and the rest of our team!