本文作者:Rania ZYANE
原文链接:《How ChatOps Can Help You DevOps Better》
编译:一熊翻译组 Mason
当人们听到 DevOps,他们通常会联系到「自动化」、「团队工作」与许多「工具」。DevOps 是关于 CAMS 的一种自动化、度量与分享的文化。本文的目的是展示 ChatOps 是如何将 CAMS 引入日常实践来推动 DevOps 的发展。
什么是 DevOps?
DevOps 是一系列实践,它推崇软件工程师和 IT 及基础设施运营部门之间的合作与交流,从而缩短产品上市时间。DevOps 主要的目标是将快速部署特性,当检测出问题时尽快解决它,而不影响其他服务。
对于实现 DevOps 的成熟度,下面有几条准则是你需要知道的:
持续集成:持续的集成是在指开发环境集成,构建以及测试代码的实践。它需要开发小组将代码集成进一个共享的知识库(版本管理系统)。检测代码并运行预先部署的测试(不要求代码部署到服务器)。在适用的情况下,下一步就是编译代码并打包进 Areifacts(JAR,Docker IMage,gem)然后把它推送至 Artifact Repository Masnager。这个Areifacts被部署后一个不可变容器便会进入测试环境(质检)。一旦部署,部署后的开发测试(功能、集成和性能测试)就会被执行。
持续交付:持续交付是持续集成的延伸。其目标是对系统发布可做更改,并需要一个人或商业规则来决定生产的最后助力应该何时出现。
持续部署:持续部署是持续交付的进阶演变。它是不在任何人介入下全部投入生产的实践。
除了以上那些已经讨论过的实践之外。今天,大多数 DevOps 团队都在拥抱协作消息平台来进行相互之间的沟通,以及通过在线聊天获得相关系统的实时更新。这大体就是 ChatOps 背后的精神。
什么是 ChatOps?
将工具直接置入会话中
——杰斯•纽兰德,GitHub
合作与交流是一种力量,它可以让团队一起工作学习以更好地进行生产。今天,它正以指数级逐年递增。
ChatOps(聊天与操作的融合)是一种新兴的方式,用来解决团队与 DevOps 各种工具/平台之间的整合。通过将工具引入对话中以实现聊天驱动开发。机器人是你可以在团队中发送请求与得到回复的即时成员。
ChatOps 是一个将人、工具、过程与自动化在全透明的流程下连接起来的模型。它有助于在同一窗口内进行协作与管路控制。
今天,DevOps 工具链为软件开发、网络环境、服务器管理、测试、监控的提供了许多工具。在一个窗口内协作与管控 DevOps 管路帮助了开发者团队以一种更高效、敏捷的方式完成工作。
ChatOps 三个主要构成:
协作工具:这是团队与相关者在他们与他们工作系统之间连接的客户端。有以下几个沟通平台:
Slack:领先的团队沟通平台,每日活跃用户累计量超过 400 万。同样也是首批将机器人接入系统的平台之一。
BearyChat:率先将 ChatOps 理念引入中国的智能化工作平台,目前已集成 7 大类近百款的第三方服务工具,并支持自定义机器人。
HipChat:一个针对团队与企业的团队沟通,文件分享,视频聊天以及屏幕共享的平台。
机器人:它是 ChatOps 方法论的核心。机器人来自协作工具与 DevOps 工具。机器人会接受团队成员发送的请求,通过执行命令设定,回复来自集成系统的信息。
Hubot,一款 ChatOps 领先的机器人工具。它是 GitHub在 2013 年针对自动化聊天室制作的有价值的开源机器人。通过脚本,Hubot 变得实用并功能强大。它主要帮你将绝大多数与操作相关的任务自动化。
Lita是一个机器人框架,专供于用 Ruby 语言写出的公司聊天室。它深受 Hubot 的启发与影响。这一框架可以被用来构建操作任务的自动化,并且它拥有一系列十分全面的插件列表,这意味着它可以集成进很多沟通平台,比如:Slack,Facebook Messenger 等等。
Cog,由 Operable制造,属于另一种帮助 DevOps 工作流自动化的机器人框架。
ErrBot是一个机器人守护进程,它可以生成沟通平台与 DevOps 工具中的机器人。它是用 Python 编写的,目标是通过命令轻松地将一个 API 提供给聊天平台。
系统集成:ChatOps 中第三个关键元素。简单来说它是更具生产力的 DevOps 工具。比如说:
事项追踪:JIRA,OTRS,TeamForge…
版本控制系统:Github,Gitlab,Bitbucket…
基础设施即代码(IaC):Terraform,Vagrant,Packer, Swarm,Kubernetes,,Docker,AWS CloudFormation …
配置管理工具:Ansible, Salt,Chef,Puppet …
持续集成服务:Jenkins,Travis CI, Bamboo …
监控:Grafana,Kibana,Prometheus …
今时今日 ChatOps 正在不断运作。世界上一些团队已经将他们的沟通平台连接至他们的构建系统,以便在持续集成服务器上获取通知,查询以及执行流程。当然,对质检团队,支持团队以及其他团队也是同样适用的。
沟通驱动合作已经不再是新潮了,但通过 ChatOps,协作的以往形式与最新技术调和一致。我们并不惊奇于这一组合改变了员工的工作方式。其应该让人们经常思考研发软件,以便让这种协同更具贡献性,更易于接受与更安全。