两步开启研发团队专属ChatOps|极狐GitLab ChatOps 的设计与实践

本文来自:

彭亮 极狐(GitLab) 高级产品经理

郭旭东 极狐(GitLab) 资深创新架构师

舒文斌 极狐(GitLab) 高级网站可靠性工程师

最近几天,ChatGPT 真是杀疯了 !

相信大家的朋友圈,已经被调戏、询问或探讨 ChatGPT 的贴子刷屏。

看到这个上知天文、下知地理,博古通今、学贯中西,不管什么问题都能告诉我们答案的 “杀手级应用”,不禁想问:“这么好玩东西不会只拿来玩吧,能不能帮我分担一些工作?”

虽然ChatGPT还没答应,但另一个不吃不喝不摸鱼的 “智能” 员工——ChatOps,已经在上班了。

什么是 ChatOps?


顾名思义,ChatOps 就是 Chat + Ops 的组合词,是使用即时通讯软件客户端、聊天机器人和实时通信工具,来促进软件开发和操作任务的通信和执行方式。ChatOps 往往也被认为是对话驱动的 DevOps。

在 ChatOps 中,所有任务都是由对话驱动,团队成员只需在聊天软件中键入相应的命令或包含相应关键字的内容,聊天机器人就会自动调用相关内容的平台,从而自动完成各种任务

而这些任务的范围,从代码部署到安全事件响应,从团队成员通知到任务进度查询。理论上,ChatOps 可以继承 DevOps 大多数工具与优点,进一步提升团队自动化水平。

技术架构

一般来讲,ChatOps 由三部分组成:即时通讯软件客户端(也就是聊天 APP)、连接中心(机器人)、基础设施应用。

聊天 APP

ChatOps 主要动作,就是将之前 DevOps 中通过 Web 页面进行的操作,通过聊天机器人来代替。也就是说,聊天 APP 成为用户进行操作的一个客户端,用户的任何操作,都可以通过聊天 APP 来实现。

这也为聊天 APP 提出了要求,它需要将用户的输入发送给响应与连接中心,也就是我们常说的聊天机器人,这样机器人才能进行后续的自动化操作。所以聊天 APP 需要支持像 slash commands 或 outgoing 这样的机制,允许用户将自己在聊天框中输入的内容发送向第三方平台。

连接中心

一般情况下,大家都喜欢叫这部分为机器人或聊天机器人,但这个表述并不精确,经常会造成误解,所以这里将其描述为连接中心。

它的工作就是接收聊天 APP 发送来的消息,识别处理消息内容,根据识别内容调用基础设施中的应用,等待基础设施应用完成任务,并返回通知(可选)。

可以看出这部分的主要作用,就是接受识别请求并连接基础设施应用,只有在识别请求处接入自然语言识别系统,其能力才更贴近机器人。

基础设施应用

这部分与 DevOps 系统与各个基础设施应用的连接方式相同,如果已有则可以直接复用,需要注意的是,基础设施应用不同版本的 API 可能有所差异,需要谨慎维护这部分代码。

ChatOps 给我们带来什么价值?


ChatOps 在 DevOps 的基础上,进一步降低了使用门槛,一些常见的 DevOps 场景,均可以借助 ChatOps 来大大提升使用便利性与用户体验。

信息透明化,提升协作效率

信息通知是目前 ChatOps 最常见场景,目前主流的即时通讯办公软件,如:Slack、钉钉、飞书均内置了极狐 GitLab 消息通知,只需简单配置,就可以将代码提交、issue 变更、MR 合并等消息,实时同步到聊天群内,一个操作能被团队所有人看到,提升沟通效率

不仅是极狐 GitLab,很多应用都内置了 Webhook 功能,所有事件都可以通过 Webhook 推送到办公聊天软件,实现实时通知。

公开透明协作,提升工作体验

相信很多人都经历过「弄清某个特定命令是否同时执行」的痛苦。

在 ChatOps 中,所有的命令均在群内执行,向所有群成员公开,每个人的操作、通知和信息均在聊天群内展现,所有的任务都置于前台。上下文一目了然,减少了因工作台切换导致消息被截断,承接有序,打造流畅的工作体验

快速上手,提升工作质量

将过去手动完成的任务通过 ChatOps 自动完成,不但可以提升工作效率,降低重复劳动,还可以减少手动操作可能导致的失误。另外,新同学进入团队,能够通过观察老司机的工作方式,迅速上手,赋能团队提升工作质量。

极狐GitLab ChatOps 功能与实践


极狐GitLab 已和国内外众多主流 IM 产品进行集成,从而实现 ChatOps。

如飞书、钉钉、Slack、Mattermost、Discord、Google Chat、Microsoft Teams、Webex Teams。其中和飞书、钉钉的集成是极狐专享功能,已在极狐GitLab 15.1 旗舰版本正式对外发布。

在极狐GitLab SRE 团队如何落地实践 ChatOps?

需求

极狐(GitLab) SRE 团队的日常工作大部分都实现了代码化,并分布在各个项目。

例如,服务器配置管理放在 ansible playbooks 项目里,K8S 部分部署放在了 helm chart 项目中,还有一系列基于目标系统 api 的操作需求。

SRE 团队希望基于 ChatOps,可以进一步降低这些自动化资产使用的复杂度,使团队成员都可以轻松上手琐碎的运维工作,实现操作与操作人解耦;同时,包装好的命令也可以在程序上对操作者的行为做出一定限制,避免操作者直接接触环境,提高操作安全性。

设计与实现

为此,极狐(GitLab) SRE 创建了 ChatOps(名为chatops-go)项目,该项目直接与 Slack 的 slash command 绑定,作为运维统一入口。

1. 多项目下的 ChatOps 命令模式

由于 SRE 运维脚本分布在各个项目中,我们将 ChatOps 的命令类型分成这三种模式:

  • 直接执行:针对一些快速的、简单的 API 操作,执行动作直接在 ChatOps 项目中完成。

  • 触发下游并等待:ChatOps 的 job 不会直接执行操作任务,而是触发下游项目流水线,并等待下游流水线的返回结果。这个场景适用于,对应的系统需要较为复杂的维护脚本(如ansible palybook),且这些脚本在其他项目中。

  • 触发下游并直接返回:仍然通过 ChatOps 触发下游项目流水线,但是触发成功后不等待下游流水线执行完成,而是直接返回流水线的链接地址。这个场景适用于,要触发的任务耗时较长,如环境升级等。

2. 权限控制

在 ChatOps 中,我们往往需要比常规的流水线控制,更细粒度的权限划分。如小 A 作为 SRE 可以调整负载均衡的流量配比,小 B 作为开发可以查看当前环境下某个功能开关的的开启状态等。

极狐 GitLab 在这方面支持很好的扩展。在 ChatOps 触发的流水线作业中,我们可以通过一些CI预定义的变量,在权限上做一些「手脚」:

  • CHAT_INPUT:用户通过 ChatOps 传入的额外参数;

  • CI_JOB_NAME:用户通过 ChatOps 执行的命令名称;

  • CHAT_CHANNEL:用户执行 ChatOps 命令时所在的Slack channel;

  • GITLAB_USER_LOGIN:执行 ChatOps 命令的用户在极狐GitLab 中绑定的用户名。

通过这些变量,ChatOps 程序可以很好的回答这些问题:是谁在执行?在哪执行?执行了什么命令?传入了那些参数?

得到这些问题的答案后,接下来,就是 ChatOps 项目做权限判断的时候了。

使用场景

以下就是极狐(GitLab) SRE 团队的 ChatOps 日常使用场景:

1. 开启极狐GitLab SaaS的功能开关

这是一个直接执行的命令模式。直接通过 ChatOps CI 中的程序与极狐GitLab SaaS 的功能开关做交互,实现功能开关管理。

使用示例:

2. 管理负载均衡的流量比

极狐GitLab  SRE 的大量服务器配置管理工作依赖于 Ansible playbook 项目,因此此类工作不会直接在ChatOps 自动完成。这个命令采用的是「触发下游并等待」的模式,命令传入到 ChatOps 项目后,触发Ansible playbook项目流水线,实现对负载均衡器管理。

使用示例如下:

3. 管理Helm Chart部署

K8S 上的负载通过 helmfile + hem chart 管理,因此也不会直接在 ChatOps 项目中执行。出于部署时长和安全性的考虑,ChatOps 只会直接返回部署流水线的 URL,并且使用者需要在该流水线中点击手动作业才会执行。

使用示例如下:

以上,就是 ChatOps 的定义、价值与最佳实践

在 ChatOps 能力加成下,极狐GitLab 能够帮助企业研发团队大幅提升工作效率与工作体验,已获得众多客户认可。

虽然现在的 ChatOps 相较于 ChatGPT,还过于稚嫩。但我们相信在不远的未来,ChatOps 一定会成长为研发团队更智能和贴心的伙伴。ChatOps 下一步如何发展?让我们拭目以待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25018.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学妹用ChatGPT发了篇顶会

小时候特别羡慕大雄,因为他有可以帮他写作业的机器猫小叮当。 熬夜读论文,却无法得出一个好的idea,深夜薅头发苦恼的时候,就会想如果有一个机器人,给出一串指令就能马上生成一篇质量上佳的论文,就好了。 现…

巴比特 |元宇宙每日必读:《上海文旅元宇宙行动指引》发布,将启动5大专项行动,力争2025年上海文旅元宇宙产业规模突破500亿元...

摘要:据中国证券网报道,4 月 18 日,上海市文化和旅游局局长方世忠做客“2023 民生访谈”时表示,今年,文旅业全面复苏重振将是确定性事件,文旅正成为上海都市新消费的“核爆点”。在访谈中,方世忠…

超多制作模板的姓氏头像生成器微信小程序源码

简介: 超多制作模板的姓氏头像生成器微信小程序源码,这是一款姓氏头像制作小工具,内含丰富多样的模板提供制作。 以前的基本是固定位置生成,这款制作支持拖拽调整位置,自定义颜色,阴影等等。 云盘&#…

王炸!ChatGPT这算是彻底打脸马云。。。

在2019年的世界人工智能大会上,马斯克和马云针对人工智能话题上演了一场精彩对话。 马云:我不觉得AI是一种威胁,我不认为人工智能是很恐怖的东西,因为人类很聪明。 马斯克:一般大家都会低估人工智能的能力,…

mobilenet V3算法理解与代码解析

MobileNetV3是通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法设计改进而来,这里不讨论网络自动搜索,我们详细解读mobilenetV3的网络结构和代码实现。 深度可分离卷积将标准化卷积分解为逐深度卷积(depthwise convolution)和逐…

小米手机连接校园网无法跳转到登录界面

问题:小米手机 MIUI12 系统,在连接校园网后显示需要登录,但是无法跳转到登录界面。连接其他wifi是没有问题的,但凡是需要登录的wifi就不行,会出现 net:ERR_CONNECTION_RESET... 试过很多方法,感觉这可能是…

Sunny-Ngrok内网穿透,本地主机的服务可以通过外网访问

1. 注册登录 https://www.ngrok.cc/login 2. 然后在 隧道管理->开通隧道 购买认证次数,花费2元,然后再实名认证即可 3. 购买并认证成功之后刷新页面,再次进入开通隧道,并购买最后一个免费的服务器(有钱可以购买好一点的) 根据提示填写隧道信息 4. 在隧道管理复制隧道id,并…

揭秘“移动云杯”行业赛道——医疗行业应用子赛道

【赛道介绍】 借开发者之力,探究多样化场景需求,开拓算网新生态,面向全球开发者,探索多样化算力网络应用场景,鼓励参赛者基于移动云产品能力,开发形成丰富的算力网络创新应用。 【赛题介绍】 1、参赛对象&a…

揭秘 “移动云杯”行业赛道——云电脑创新应用子赛道

【赛道介绍】 随着云计算技术的不断发展和普及,云电脑已经成为了人们日常生活中不可或缺的一部分。云电脑的出现,不仅改变了人们的工作方式和生活方式,同时也促进了各个领域的发展。比如在教育领域,云电脑可以提供在线学习、教学互…

揭秘“移动云杯”行业赛道——工业行业应用子赛道

【赛道介绍】 借开发者之力,探究多样化场景需求,开拓算网新生态,面向全球开发者,探索多样化算力网络应用场景,鼓励参赛者基于移动云产品能力,开发形成丰富的算力网络创新应用。 【赛程安排】 说明&#xff…

YouTuBe各类优秀频道推荐一电影解说

电影解说推荐 目录 九筒空间站: 大聪看电影: 宇哥讲电影: 阿斗归来了: 麦绿素 dustdream: 解说加入了很多自己的想法和解析,非常不错。 爱好恐怖片的美男子: 电影爆博士: …

2023 世界人工智能大会顺利召开,持续关注 AI+ 应用发展趋势

1 2023 世界人工智能大会顺利召开,持续关注 AI应用发展趋势 2023 年丐界人巟智能大会二 7 月 6 日至 8 日在上海丼办,主题为 “智联丐界,生成未来”。本届大会聚焦大模型、智能算力和具身智能成立大模型测试验证不卋同创新中心,联…

AIGC创投现状:激情与焦虑同行 | 圆桌论坛@中国AIGC产业峰会

明敏 萧箫 整理自 AIGC峰会量子位 | 公众号 QbitAI AIGC热得发烫,不跟上就会被淘汰。 这是当下创投圈最直观的感受。 但“跟上”并不是一件容易的事:怎么跟?朝什么方向跟? 一不留神,就可能与风口错过。 对初创公司而言…

人工智能时代,前端如何抓住机会

自从 2022 年底 OpenAI 推出了 ChatGPT3.5 后,GPT 的活跃用户数快速突破一亿,打破了互联网应用发展的历史记录。ChatGPT是一种基于人工智能技术的聊天机器人,它可以理解人类的自然语言,模拟人类的语言和思维方式,与人类…

精选 100 种最佳 AI 工具大盘点

为了应对对精简流程和数据分析日益增长的需求,整合人工智能工具在多个领域变得至关重要。 本文精选了2023年可用的100种最佳人工智能工具,旨在提高您的生产力、创造力和效率。 以下是 2023 年排名前 100 的人工智能工具: Aidoc:A…

我与计算机编程的不解之缘(2015.9~2022.1)

不解之缘:不能分开的缘分,指难以解除的密切关系。 虽然在计算机方面多有涉猎,但是我纯属是业余的,我学的能源与动力工程和材料物理与化学专业和计算机关联也不大。也可能是小小的缘分吧,在计算机应用领域摸爬滚打了六年…

深度学习中的算法学习与记忆,利用故事联想帮助大家记忆,每个人都会

大家好,我是微学AI,大家看过我的文章,想必是对深度学习有了一定的了解了,但是对于初学者来说,深度学习中有很多名词和数学知识、原理还是不太清楚,记忆的不牢固,用起来不熟练,今天就…

GPT系列的总结以及GPT4

GPT系列是OpenAI的一系列预训练文章,GPT的全称是Generative Pre-Trained Transformer,顾名思义,GPT的目的就是通过Transformer为基础模型,使用预训练技术得到通用的文本模型。目前已经公布论文的有文本预训练GPT-1,GPT…

【赠书:自己动手做聊天机器人】解析ChatGPT背后的工作原理

赠书方式见文末 作者:Marco Ramponi (选自Assembly AI) 来源:《机器之心》 编译(编辑:王强、蛋酱) 自 ChatGPT 发布以来,已经吸引了无数人一探究竟。但 ChatGPT 实际上是如何工作的…

2023火爆的11门编程语言

2023火爆的11门编程语言 对于我个人来说没有语言偏好,根据不同的应用领域和需求,不同的编程语言都有其独特的优势和适用性。无论使用何种语言只要能更好的实现需求,解决痛点问题,就是好语言。 那么各种语言应用的场景解决了哪些…