本文翻译自文章 To Boost DevOps, Try ChatOps,文中用简单易懂的方式介绍了 ChatOps 的发展和价值,由 OneAPM 工程师编译整理。
当我们谈论 DevOps 时,总是围绕着「自动化」,「协作」和「工具」这几个主题。所以一旦有一个概念,能够综合以上所有特征,为现在的团队提供更好的沟通和协作方式,也不足为奇。如今团队可以通过机器人的帮助,进行团队聊天,共享信息,集成其他工具的通知,从而实现协作。如果将所有这些结合起来,创新型团队现在可以进行沟通驱动的开发和运营,这就是ChatOps。
通过创建一个新的沟通渠道,自动化常见任务,方便发布实时信息,ChatOps 可以帮助团队缩短反馈环节,提高协作能力,使团队运作得更快和更有效率。
A brief history of chat
聊天工具发展简史
通过团队聊天来进行实时协作并不是新鲜事。 这种类型的互动可以追溯到互联网早期和 BBS 时期(Bulletin Board Systems)。 用户通过拨号式调制解调器连接到远程计算机,请求与系统运行者进行实时聊天。通过文本实现实时远程交流、交换信息,在这当时,是非常新颖的概念。
随后,IRC(Internet Relay Chat) 的网络聊天协议诞生了,通过相互连接的聊天服务器网络,可实现多人实时畅聊。IRC 网络也让早期的系统管理员、DevOps 人员以及运维管理者学会了许多至今仍然沿用的行业技能。 他们学会了如何通过 IP 网络连接电脑,通过黑客攻击强化新型的 Linux 系统,通过 Eggdrop 机器人自动化任务,通过自动通知保持互通,甚至一起玩休闲游戏。现在的 DevOps 团队仍然在做这些事情,但是有 Slack、HipChat 之类的新兴工具为他们提供移动设备与常见 DevOps 工具内置集成的通用支持。
新瓶装旧酒
尽管实时聊天工具不断改变,使用它们的主要原因还是如旧:
- 作为一个既可以同步,也可以异步的沟通渠道;对于分散式的人员与团体卓有成效。
- 任务自动化,比如发送提醒,提供更新和通知;常见的工作流工具能轻易地与 webhook 实现集成。
- 带有时间戳的对话、事件和通知的日志记录;对于根本原因分析和历史案例学习很有帮助。
- 为团队实现信息的快捷传播——包括链接,截图,甚至最新的猫咪图片;实时聊天通常能够提供最新的信息。
虽然这些好处都很重要,不过却是 ChatOps 的次要价值,而其真正价值在于,通过协作缩短反馈环节。DevOps 的目的在于快速行动和学习,ChatOps 将这一概念得以实现,并应用到日常实践当中。
想象一下:一个应用程序崩溃,发出一个告警,并通知负责支持的值班工程师。工程师在聊天室中回复,她正在解决,如果有需要,会要求帮助或索要其他信息。之后,聊天室中的成员一起协作,找出错误,创建修正方案,进行测试,然后投入生产环境。解决问题之后,关闭告警。这个场景中的每一步都可以通过聊天工具进行捕捉,且大部分都是自动化的。参见以下类似场景:
截图显示该团队通过 Cloud Insight 将来自 Ai 告警通知通过事件流功能进行展示(该功能即将上线),并且试图让这种展示更为简单,因为它们很重要,可以触发行动和讨论。工程师们会讨论各自的重点领域,和回复来自其他团队的请求。这样做的意义在于,团队可以聚集在同一个地方,进行讨论和协作,而当有问题时,其他人也可以轻易找到他们。对高度分散式的团队,在需要的时候,迅速得到问题的答案,是很重要的。
ChatOps 的兴起很大程度上要归功于 GitHub 近期的工作和倡议,但其他领先的技术品牌也有所参与。 Box 公司关于如何使用 ChatOps 的博客文章 「Securing ChatOps to Enable DevOps」,PagerDuty 公司的 「What Is ChatOps and How Do I Get Started?」,以及 VividCortex 公司的 「ChatOps at VividCortex」,都提供了如何使用 ChatOps 的实践和见解。
集成是 ChatOps 中重要的新元素。主流的聊天平台,如 HipChat、Slack 都可以方便地集成其他工具,比如来自 Jira,PagerDuty,GitHub 的通知,触发条件和事件。这很关键:DevOps 团队最不需要的就是另一个“虚拟协作”工具,将对话和信息隔离到另一个地方,使查询相关信息变得更加费力。此处,真正的目标是将来自这些工具的所有信息都集成到同一个地方,所有人都可以使用。
机器人也有感情!
一旦聊天集成设置完成,便可配置一个「聊天机器人」协助团队工作,尤其是重复的任务或通知工作。 机器人可以是对话的一部分,提供当前情况的有效背景信息。其中最著名的机器人是 GitHub 的 Hubot,拥有一系列预配置的行为和命令来帮助完成一些常见的 DevOps 任务。
聊天机器人作为一个用户出现在聊天室里,可以响应带有 @mention 标注的命令。借此,可以让机器人为团队完成任务,比如开始部署,提供被监视程序的状态,或者执行远程命令。这种类型的交互将 DevOps 进程和工具直接带入对话,让每个人都能看到并参与讨论。
聊天机器人甚至能帮助舒缓压力时期的紧张。例如,聊天机器人可以根据员工咒骂的次数,生成一些欢迎笑脸,或者根据搜索词汇发送随机的 gif 动图,或生成简单的小游戏。几乎一切皆有可能,随着时间的推移,这些行为可以为每个聊天机器人定义独特的个性。
ChatOps: 如此简单,人人都能使用
如果你还没有使用过这些工具,可以从 Slack 和 HipChat 开始尝试。他们都有免费的产品,对一些团队而言应该已经足够。还可以试试 GitHub 的 Hubot,Hubot 开创了借助机器人的聊天自动化新时代,并且设置非常简单。
ChatOps不仅赋予团队全新的协作方式,还能提高整体情境感知,甚至提高你的打字技能。请一定善加利用你的新工具。
Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。本文由 OneAPM 工程师翻译整理,想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客