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

Stella981
• 阅读 409

本文作者: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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这