ChatOps 如何帮助你更好地开发 DevOps

Stella981
• 阅读 292

本文作者:Rania ZYANE

原文链接:《How ChatOps Can Help You DevOps Better》

编译:一熊翻译组 Mason

ChatOps 如何帮助你更好地开发 DevOps

当人们听到 DevOps,他们通常会联系到「自动化」、「团队工作」与许多「工具」。DevOps 是关于 CAMS 的一种自动化、度量与分享的文化。本文的目的是展示 ChatOps 是如何将 CAMS 引入日常实践来推动 DevOps 的发展。

什么是 DevOps?

DevOps 是一系列实践,它推崇软件工程师和 IT 及基础设施运营部门之间的合作与交流,从而缩短产品上市时间。DevOps 主要的目标是将快速部署特性,当检测出问题时尽快解决它,而不影响其他服务。

对于实现 DevOps 的成熟度,下面有几条准则是你需要知道的:

ChatOps 如何帮助你更好地开发 DevOps

  • 持续集成:持续的集成是在指开发环境集成,构建以及测试代码的实践。它需要开发小组将代码集成进一个共享的知识库(版本管理系统)。检测代码并运行预先部署的测试(不要求代码部署到服务器)。在适用的情况下,下一步就是编译代码并打包进 Areifacts(JAR,Docker IMage,gem)然后把它推送至 Artifact Repository Masnager。这个 Areifacts 被部署后一个不可变容器便会进入测试环境(质检)。一旦部署,部署后的开发测试(功能、集成和性能测试)就会被执行。
  • 持续交付:持续交付是持续集成的延伸。其目标是对系统发布可做更改,并需要一个人或商业规则来决定生产的最后助力应该何时出现。
  • 持续部署:持续部署是持续交付的进阶演变。它是不在任何人介入下全部投入生产的实践。

ChatOps 如何帮助你更好地开发 DevOps

除了以上那些已经讨论过的实践之外。今天,大多数 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

系统集成: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 如何帮助你更好地开发 DevOps

今时今日 ChatOps 正在不断运作。世界上一些团队已经将他们的沟通平台连接至他们的构建系统,以便在持续集成服务器上获取通知,查询以及执行流程。当然,对质检团队,支持团队以及其他团队也是同样适用的。

沟通驱动合作已经不再是新潮了,但通过 ChatOps,协作的以往形式与最新技术调和一致。我们并不惊奇于这一组合改变了员工的工作方式。其应该让人们经常思考研发软件,以便让这种协同更具贡献性,更易于接受与更安全。

ChatOps 如何帮助你更好地开发 DevOps

点赞
收藏
评论区
推荐文章
技术小男生 技术小男生
2个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi /etc/profile2:按字母键i进入编辑模式,在最底部添加内容: JAVAHOME/opt/jdk1.8.0152 CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jar PATH$JAVAHOME/bin:$PATH3:生效配置
刚刚好 刚刚好
2个月前
css问题
1、 在IOS中图片不显示(给图片加了圆角或者img没有父级) <div<img src""/</div div {width: 20px; height: 20px; borderradius: 20px; overflow: h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录 问题 用navicat导入数据时,报错: 原因这是因为当前的MySQL不支持datetime为0的情况。 解决修改sql\mode: sql\mode:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
小森森 小森森
2个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本 欢迎添加左边的微信一起探讨!项目地址:](https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n) \2. Bug修复更新日历 2. 情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意), \ \ 和 注意
晴空闲云 晴空闲云
2个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。 盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
1个月前
快速入门|使用MemFire Cloud构建React Native应用程序
> MemFire Cloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序 select * from table_name order id desc; 2.按照指定(多个)字段排序 select * from table_name order id desc,status desc; 3.按照指定字段和规则排序 selec
Stella981 Stella981
1年前
Angular material mat
Icon Icon Name mat-icon code _add\_comment_ add comment icon <mat-icon> add\_comment</mat-icon> _attach\_file_ attach file icon <mat-icon> attach\_file</mat-icon> _attach\
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
#### 背景描述 # Time: 2019-01-24T00:08:14.705724+08:00 # User@Host: **[**] @ [**] Id: ** # Schema: sentrymeta Last_errno: 0 Killed: 0 # Query_time: 0.315758 Lock_
helloworld_34035044 helloworld_34035044
4个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。 uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid() 或 uuid(sep)参数说明:sep 布尔值,生成的uuid中是否包含分隔符'',缺省为
helloworld_28799839 helloworld_28799839
2个月前
常用知识整理
# Javascript ## 判断对象是否为空 ```js Object.keys(myObject).length === 0 ``` ## 经常使用的三元运算 > 我们经常遇到处理表格列状态字段如 `status` 的时候可以用到 ``` vue