使用ChatOps进行更明智的团队沟通

利用现有的DevOps工具和一些新工具,以更快,更增强的方式进行通信。

如果你以前听过,请阻止我…

这是周末的中午,当您不幸被提醒您正在通过电话上的电子邮件通知寻求支持时,您会享受一些R&R。 整个部门都发出了警报,仅显示一条消息,指示生产系统的运行状况检查未通过,很可能已脱机。

您脱离周末活动,登录笔记本电脑,然后开始调查问题。 在此期间,发出了大量响应电子邮件,看起来像这样:

一连串不连贯的回应

电子邮件,文本和任何状态呼叫不停地飞来飞去,您会发现自己在众多任务之间切换:

  • 诊断和修复
  • 寻找并等待合适的人来完成他们的专业任务
  • 生成报告并发送更新
  • 部署修补程序

…所有要求完成的人。

在进行修复,解释,更新和部署时,您也正在失去宝贵的秒,几分钟甚至几小时,以试图从代价高昂的停机中恢复。 想想看:每当一个人为了与团队成员进行必要的协作而被迫进行上下文切换时,他们自己[花费]的生产时间就高达[他们的] 40%。

一定有更好的方法。 不仅用于恢复事件,还用于一般协作。 您已经在应用程序,工具和开发实践(例如DevOps)上投入了大量资金,为什么不将其进一步发展并将自动化的力量集成到团队的沟通范例中呢? 正确完成此操作后,您可以集中协作空间,自动化工具和流程,以使团队中的每个人都可以访问它们。 从而节省了挫败感,时间和成本。 这种做法称为ChatOps。

ChatOps?

ChatOps的目标是双重的-提供更高的透明度并从我们的团队获得更快的反馈。 我们为合作,问题解决,流程工作流,历史记录甚至培训提供了一站式服务。

消息客户端(例如Slack,HipChat和MSTeams等)与您的团队和自动化工具进行交互,以控制资源和工作流程

在ChatOps的核心处,您有一系列执行自动任务的机器人或应用程序,它们与消息传递平台共生,以侦听基础结构或聊天中发生的事件。 诀窍是以有组织和有益的方式进行。

回顾该警报,不必触发发送给IT_ALL的大量电子邮件, 而是可以不同的方式利用相同的触发条件。 订阅该事件的漫游器可以转弯并通知Prod支持频道。 仅提醒已订阅该频道的人员,并需要担心和解决该问题。 同时,生成状态报告,并(在电子邮件爆炸中不会得到此信息)请求采取行动以同样的方式进行恢复。 回收应用程序池,增加服务器容量或还原到代码库的先前工作版本等任务是这些情况的常见补救措施,可以通过键入简单命令或自行执行立即调用。

无论您的支持人员在哪里,他们都可以通过最近的设备接收通知并做出响应

对于需要更多调查的情况,团队成员可以随后在平台内进行协作以解决问题,而不必担心更新已加入的成员,用50封电子邮件轰动其他人,实时接收更新,并且最重要的是解决以下问题:尽可能少的时间。

这里的用途是无限的。 让我们看另一种比生产恢复更疯狂的场景-您的团队每周负责为业务分析团队生成报告。
这涉及:

  • 获取网站指标
  • 收集用户数据
  • 通过一些图形库运行它,以方便读者的方式显示信息。

仅这些任务就很容易,但是每周要花一个小时来编译和处理。 没什么大不了的,对吧?

好吧,它加起来。 在过去的一年中,您已经花了一个工作周的宝贵时间,一次又一次地生成相同的报告。 解决办法是什么? 编写一个机器人来为您做这件事。 或者更好的是,使BA团队能够请求这些报告并通过聊天通道在他们之间进行讨论。

因此,他们不再需要别人的信息,而您又成为瓶颈,现在他们可以按需请求报告,如果愿意,可以每周几次,而且您的团队可以进行较少的上下文切换。 这就是ChatOps的目标。 以智能,高效的方式为团队提供信息和协作。

这个机器人系统是什么样的?

过去,仍然有很棒的解决方案为常见的用例提供“开箱即用”的功能,并拥有出色的社区来支持它们。 但是,为了拥有机器人程序,您需要像其他任何应用程序一样托管和维护机器人程序框架。 这意味着除了您自己编写的机器人程序之外,您还可以托管资源,安装更新并维护另一个平台,这只会在尝试删除系统时增加系统的复杂性。

这就是为什么我非常喜欢微服务框架(例如AWS Lambda和Azure Functions),这些框架使我们可以在低成本的无服务器环境中托管机器人功能的同时快速开发其功能。 在后续文章中,我将深入探讨此配置的外观,但是从高层次来讲,您要做的就是编写您想要的功能,通过命令或Webhooks与您的聊天应用程序集成,以及你很好。 更好的是,由于您在云提供商的环境中使用工具,因此您不必担心额外的集成层。

从哪里开始使用ChatOps

首先,要找到一个支持团队渠道的良好的协作聊天应用程序。 当GitHub创造了这个短语时,他们说ChatOps是关于“在对话中插入[工具]”。 对话需要在团队中的每个人都可以轻松访问的地方进行。 正如我已经说过的,摆脱电子邮件是这里最大的好处之一,因为您会留下额外的噪音,烦扰和通讯中断。

“在对话过程中放置​​工具”

—杰西·纽兰德(Jesse Newland),GitHub

找到你的痛苦

找到您必须一遍又一遍执行的任务。 并遵循相同的过程。 然后,尝试使它们自动化,以便您可以通过使用bot命令进行几次击键来完成工作。 不要与第一个使用AI库和大量基础架构脚本的机器人一起玩,而是选择一个小任务并使其自动化。 DevOps流程是此的理想选择。 一旦安装了这些机器人,就可以在其上进行构建。 您会发现这些功能会迅速复合,并且在不知不觉中您就会拥有一个自助机器人网络,供您和您的团队使用。