具有企业特色的 ChatOps 平台

阅读数:1502 2016 年 3 月 17 日

话题:持续集成DevOps

Operable.io 公司(创建了 DevOps 协作工具),近日宣布发布 Cog ——一个新的 ChatOps 平台,该平台提供了访问控制,类 Unix 系统流水线命令以及审计日志功能。ChatOps是一个帮助包括质量保障(QA)、开发以及运营人员在内的团队成员将沟通、工具和过程整合在一起的协作模型。

Cog 包含一个访问控制框架,允许在组、用户以及角色中进行权限管理。Cog 拥有更细粒度的权限控制。例如,除了能够支持“这个组的用户可以运行该命令”,Cog 还允许类似这样的情况“当某些选项和参数都包含在该命令行时,这个组的用户可以运行该命令”。

GitHub 创造了第一个ChatOps 机器人。另外两个是ErrbotLita,Errbot 是基于 Python 编写的,Lita 是基于 Ruby 编写的。InfoQ 采访了 Operable.io 联合创始人兼 CEO Mark Imbriaco,问到 Cog 和其他平台有什么不同:

我们最初版本的第一个目标是消除使用 ChatOps 的障碍。主要是围绕安全性和合规性。其次,我们想建立一个像 Unix 命令行一样适应力强的共享命令行。

大多数 ChatOps 软件提供了命令行界面,允许团队成员进行操作,比如显示特定指标的图表或推进 Git 分支变为主干。

在传统的企业环境中,DevOps 的采纳通常是较慢的。在这种环境下,通过一个聊天室来推动编译到生产的整个流程,可能是难以接受的。企业对于权限控制和可靠性也非常关注。Imbriaco 说,企业对 DevOps 的兴趣正在逐步增加,但是现有的工具并不能满足企业的需求。

Cog 的架构建立在Relays上,Relays 为 Cog 命令提供执行环境。Cog 使用 PostgreSQL 数据库进行持久化,采用命令行工具与系统进行交互。Cog 基于MQTT消息总线把其他各组件粘合在一起。MQTT 是一个轻量级协议,使用 TCP/IP 提供有限的网络带宽连接。它基于发布 - 订阅消息模式,因此需要一个代理将消息分发给所有订阅者。

一旦团队开始使用 chatops 软件,便会在日常工作中依赖它,因此软件的可靠性是非常重要的。GitHub最近的故障报告中提到,他们的 chatops 服务器暂时的不可用导致运维团队较慢的响应。Cog 设置中拥有多个 Relay 实例以支持多并发和高可用,然而,PostgreSQL 数据库仍然存在单点故障。Imbriaco 说,还有更多的工作要做,以使 Cog 更可靠。尤其针对 PostgreSQL,他建议:

用户遵循最佳实践构建高可用的 Postgres 集群。在这方面有很多现有的技术。例如WAL-e 持续归档工具(WAL-e continuous archival tooling),Heroku 用它来构建他们很好的 PostgreSQL 故障转移支持。

Cog 以类 Unix 系统一样的方式支持流水线命令。Imbriaco 说,Unix 哲学中每个命令“只关注一个目标并把它做好”然后把它们链接在一起顺序执行处理,在 Cog 中已经采用了这一哲学,“同时 Cog 支持访问控制和审计”。

Cog 也与 Slack 和 HipChat 完成了集成。Cog 软件仍处于内部测试阶段,源码可以在GitHub 上获取

查看英文原文:New ChatOps Platform With Enterprise Features


感谢夏雪对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。