探索中国CIO人才现状 | 第四季调研报告
ChatOps让DevOps工作流简单化
2015-07-17  来源:techtarget

聊天应用,或者叫ChatOps,在软件开发中被广泛用来改进开发者之间的沟通。现在包括VictorOps和Box.com 在内的DevOps供应商和组织都在利用ChatOps,用来将现代聊天客户端与API集成、自动化结合起来,从而改进软件工作流等业务流程。

ChatOps,一个很大程度上要归功于GitHub的术语,是聚焦于会话驱动型开发的一种做法。通过把工具带进会话,并利用修改过的聊天机器人与关键插件与脚本协作,开发团队可实现任务自动化,并能协作得更好、更快、更便宜。比方说,在聊天室的时候,开发者输入命令配置聊天机器人执行定制脚本和插件,然后在命令被执行的同时进行实时协作。

转移活动到聊天客户端

“ChatOps就是把你已经在别的地方进行的活动搬到了聊天客户端,” VictorOps的布道师兼《ChatOps for Dummies》一书的作者Jason Hand这样说。

基本上一个现代的聊天客户端变成了分享会话的接口。对于许多工作流和业务流程来说这可以替代电子邮件。聊天后端也直接集成到云服务、开发工具以及报表工具当中以自动化许多流程。但组织需要想出桥接这一文化转变的计划。从小处开始也是一种好的做法,因为聊天与自动化的结合会导致不必要的应用和基础设施变更。

许多组织发现自己可以利用聊天原则来改善企业内的其他流程,包括销售、营销、商业开发、工作流以及重大项目企业范围内的协调。也就是说,为访问敏感企业信息,也为需要深思熟虑以确保治理、风险与合规性需求得到满足的自动加速以及变更运营性基础设施打开了一个新的通道。

在Box,ChatOps已被植入到企业文化当中,成为分布式团队的一项主要的协作工具。Box现场可靠性工程师Michael Ansel说:“我们利用ChatOps来朝着DevOps模型迁移,从而使得开发者可以在生产中管理自己的服务,并解放我们的技术运营团队,让他们把精力集中到基础设施支持上。”有了ChatOps,Box正在以多种新方式来处理数据,用系统API来进行交互,自动把相关信息带入到会话和自动化现有的聊天会话中。

VictorOps的Hand说ChatOps带来了命令行界面,对于推送新代码、提供基础设施、为开发团队在共享聊天室内配置服务都带来了好处。“我不仅获得了某些信息,还把它跟让任何有可能在聊天室闲逛的人共享。”这种做法节省了时间,创造了更好的透明性,并提供了情景感知。

比方说,开发者仅用一条聊天命令就能启动一个事故响应流程并发出相关沟通—这要比人工创建一条票证、更新状态页、发送电子邮件吧发布到Twitter上的旧模式要快得多。

什么是ChatOps工具?

一般而言,ChatOps是在更加现代的聊天客户端,如HipChat、Slack、Flowdock以及Campfire等中被使用的。这些客户端使得组织能够跨团队和项目建立共享频道。这些聊天后端利用机器人来连接Jira、Rally API或任何在用的项目管理工具,并对这一信息在聊天中予以回应。

The bots can automate command entry, reports and tasks into chat. Hubot, developed by GitHub, has been around the longest; others are lita and Err. The ideal choice depends on the underlying framework that fits with a team's process. Hubot is built on Node.js, lita on Ruby, and Err on Python. Hubot has the largest library of scripts, so the barrier to entry can be lower, Hand said.

机器人可自动将命令条目、报告以及任务引入聊天当中。由GitHUb开发的Huibot历史最久;其他的包括lita和Err。理想选择要看底层框架是否适合团队流程。Huibo是基于Node.js开发的,lita是在Ruby基础上搭建的,而Err则是基于Python。Huibot拥有最大型的脚本库,所以进入门槛要低一些,Hand说。

Keeping security and compliance in mind

时刻记住安全与合规

对于Box来说,使用ChatOps最大的安全挑战是保持明确的生产环境隔离的同时仍允许丰富的聊天客户端软件的最终用户访问。为了满足安全需求,Box编写了安全中间件部署到机器人与聊天客户端之间。ChatOps基础设施可挂接LDAP存储,验证用户已确保用户属于该环境。此外还可以有其他的层执行双因子验证。方法之一是要求两位用户确认像服务器安全更新这样的机器人请求。

过去,作为变更请求的一部分员工必须填写纸质材料;现在合规性检查可直接植入到聊天当中。这也使得记录发生的事情更加简单。“你创建了一个现场的合规性形式,可以展示是谁做的,做了什么以及什么时候做的。这是一个发生得快得多的工作流,”Hand说。

把高管拉进会话中

ChatOps可以为工程师所做事情向C阶主管和部门员工提供更好的可见性。获许可的员工可以查询财务数据库或电子表格,比方说。由一些开发者启动的事情可以分享给公司内需要同一信息并提供输入的其他人。

“一旦你发现一些你知道自己可以做的事情,采用率就会失去控制,”Hand说。比方说,VictorOps团队喜欢看看每天的注册数有多少。这需要执行访问数据存储的命令。现在他们只需要定期询问机器人最近的20个注册就行了。把工作流转移到聊天当中会为其他团队创造出牵引力,这样当他们对特定团队和项目进展感到好奇时只需要核对一下就行了。

弥补文化鸿沟

把工作流从电子邮件转向聊天牵涉到的文化转变是最大的挑战之一,提供事件驱动型自动化工具的StackStorm的基础设施自动化专家James Fryman说:“许多家伙对自动化这一整体概念以及像ChatOps这样的东西引进后对自己工作意味着什么感到担心。”

引入ChatOps的组织应该从小处着手并表现出响应性,Fryman解释道:“从小处开始让大家可以习惯于ChatOps这样的想法,也会在东西出问题(肯定会的)时给你的团队一个小一点的领域去修补,”他说。“变得具备超级响应性也有助于缓解对自动化缺乏信任,因为如果东西出问题后能够快速修复的话,那么用户对实施变得沮丧的机会就会变少了。”