博客

聊天操作(ChatOps): 无人居住

Lori MacVittie 缩略图
洛里·麦克维蒂
2017 年 5 月 4 日发布

即将进入您附近的网络。 由其他 API 经济为您带来。

DevOps 社区最近发生了转变,更加关注文化。 这可能是因为,如果没有实现向更加开放、协作的跨 IT 环境的文化变革,DevOps 的许多好处就无法充分实现。 封闭的、“需要知道”的信息共享导致了那些像防御塔一样矗立着的孤岛,将每个操作领域独有的部落知识包裹起来,这些知识构成了我们亲切地称之为“IT”的东西。

但打破它们可能会很痛苦。 而且很尴尬。 并且极其困难。 虽然我们可以拿几乎每个 IT 居民的“反社会”天性开玩笑,并嘲笑他们的漫画形象,但现实是,就像大多数传说和童话一样,那些原型源于真实的行为和特征,这些行为和特征仍然是该领域许多人的典型特征。

 

傻瓜

根据迈尔斯-布里格斯性格分类法,我是INTJ 。 每次。 是的,“建筑师”。 我是洞察光谱上的改革观察者,这实际上只是一种超理想化的荣格测试,声称其准确性比迈尔斯-布里格斯更高。 不管怎样,我基本上是一个内向的人。 如今,研究人员估计近 50% 的人口都是内向的人。 而且我确信,如果您发现他们中的许多人都像我一样进入了 IT 行业,而我们那些难以理解的外向型同事则进入了营销和管理职位,您不会感到惊讶。

内向的人不喜欢与人交往——这就是现在的孩子所说的与人互动。 事实上,这不是你的问题,而是我们的问题。 我们只是处理信息和数据的方式与外向的人不同,并且发现过多的主动互动会让人难以承受。 我们可以,但是这很累。 我们更喜欢在回复之前先用文字表达并花点时间思考。 这就是为什么我们在数字时代表现相当出色,我们的大部分交流都是通过远距离和文本进行的。 如果你只了解我们的数字形式,你甚至可能会误以为我们是外向的人。

如果你考虑 DevOps 所需的文化转变的前提,你会立即发现存在冲突。 分享和沟通都是 DevOps 的关键组成部分,这意味着努力让一群内向的人不仅能与人打交道,而且能有效地与人打交道。 这意味着找到一条“没有人就能得到人”的路就像在彩虹尽头找到一罐金子一样。

事实证明 ChatOps 可能就是那罐金子。

聊天操作(ChatOps): 无人居住

那么什么是 ChatOps? Jason Hand是 ChatOps 领域的顶尖专家之一,他给了我们一个简洁的定义: “将 ChatOps 视为共享命令行。”

当然,它的意义远不止于此,但从最基本的角度来说,这是一个很好的起点。

 

 

松弛接口

与老式 IM 系统不同, HipChatSlack等工具并非为 1:1 通信而设计。 你可以这样做,但这些现代通信平台的真正力量在于实现一个开放的通信环境,其中信息和更新可以立即与组织中对其感兴趣的任何人共享。 我们鼓励潜水,因为信息的可用性和可访问性才是最重要的,而不是持续的对话。

频道(如#IRC)提供了控制信号:噪声比的方法,并且通常提供谁在何时做了什么的清晰的审计跟踪。 这些工具不仅仅是聊天客户端,还能够实现这一目标。 它们是平台,能够通过 API 扩展功能,从而提供与人以及系统的双向通信。 这意味着我可以添加一个#alerts 频道,以便我可以接收来自基础设施组件的警报。

您可以 – 我想补充的是,这相对容易 – 为 Slack 构建一个“应用程序”,通过其 API 查询并返回信息。 也许是您的交换机,或者您的负载均衡器,或者当地的天气。 无论它是什么,您都可以从这些工具中调用命令来自动执行任务。 并且您可以共享调用和结果,而无需让所有需要知道或可能从中受益的人知道。 然后根据您所做的事情记录任务,并留下线索让其他人了解正在发生的事情。 来自监控系统的状态更新、来自服务台的新票据、服务器刚刚崩溃并且不再可用的通知。 几乎任何您能想到的可以通过 API 进行传达的东西都可以与其他人共享 - 无需真正接触。

这一过程为指导、培训和释放部落知识提供了大量机会,使 IT 的其他领域(包括开发)受益。 这是一种大规模的共享,无需在挤满人的房间里进行,也无需为充满希望的新工程师进行培训练习。 它也是少数能够实现在“网络”中成功采用 DevOps 方法所需的文化转变的工具之一。

信息如何流动 Atlassian 调查

我们必须采纳它。 如果您仍然持谨慎态度,请考虑 Atlassian 和 xMatters 在其2017 年 DevOps 成熟度调查中提出的这个问题:

如果有这么多的组织监控基础设施、应用和服务,为什么 50% 的受访者在代码发布后报告生产中的问题?

作者根据他们的数据提出了自己的假设,但我有另一个假设——主要基于合成谬误,它提醒我们,发布的部署应用与生产中的应用不同。 应用服务的插入和与网络的交互改变了组成。 对该应用的审查不再完全适用,除非在与生产环境完全相同的复制品中进行。

更糟糕的是,近三分之一的公司直到客户通知他们服务中断时才发现这些问题。 这可能是由于开发和 IT 之间共享信息的方式所致。 29% 的受访者表示,在明确要求的情况下,团队之间会共享信息。 只有 16.8% 的企业将信息“公开给所有提供技术信息、目标、计划和结果的人”。 

如果没有有关应用程序在生产中的行为的特殊信息,通常很难辨别问题是什么,更不用说问题的根源了。 “它在我的计算机上运行良好”是一种防御性口头禅,源于开发人员对无法复制不良行为的沮丧,而这种不良行为往往源于缺乏环境信息。

即使我们并不热衷于开始自动化所有网络事务,ChatOps 也是打开 IT 和开发之间沟通渠道的好方法,并且可以更深入地了解有助于缩短 MTTR(平均解决时间)的问题。  这是一种提供更全面视角来了解“网络中”发生的情况的方法,而不会打扰工程师或对他们进行微观管理。 它为内向的人提供了一种与陌生人交流的方式,鼓励他们更频繁、更彻底地分享,而且你会发现,他们会更热情地分享。

如果您是 ChatOps 新手,我强烈建议您阅读Jason Hand 的电子书“ChatOps for Dummies ”。 它要求您放弃您的电子邮件,但这是值得的。 

请继续关注这里。 我可以保证,未来会有更多关于 ChatOps 的内容。