DevOps 全链路消息中转站,消除信息孤岛。

作为一个 折腾 复杂、多元且敏捷的 DevOps 团队,消息通知一直让人又爱又恨。

就像垃圾消息一样,总是堆满弹窗。

图片

无脑转发、群聊、风格各异、消息提示音…… 犹如一场交响乐,在脑海中回荡。最终,所有人都感谢一个叫 消息免打扰 的功能。

图片

原本期望的打破信息壁垒,最终造成了信息风暴,严重影响了工作者的 身心健康 工作效率。

依旧会出现的灵魂回答:

  • 不知道
  • 没听说
  • 没注意

甩锅场景也回来了:

  • 怎么不早说
  • 怎么没通知
  • 怎么没提醒

很明显,消除信息孤岛,缺的不是技术,而是 场景化解决方案

如今的企业团队,邮件已经逐渐退出使用场景,大家都擅长使用 IM(即时通信),企业微信和钉钉有绝对优势,但飞书也有大展拳脚的架势。

就技术而言,每家 IM 的官方文档站均给出了群机器人的接入使用手册。

另外,除了官方文档,简单易用的第三方库也是覆盖各种常用技术栈。

所谓 工欲善其事,必先利其器,以上种种只能算利器,而我们的目的是 善事

多方协作,高效不扰民

虽然,全员通知尽量避免,过多的全员通知只会变成信息风暴,最终造成群体免疫。

但没有全员通知也是不可取的,有些信息需要每天大喇叭喊一喊,比如各种日报。

图片

缺陷报告

图片

测试用例执行报告

这些能让大家看到整个团队是动态的,有利于鼓励群体前进。

场景定制,关键信息不遗漏

除了定期发送的通知,更多的需求是希望打通各种平台的信息链,集中到高频使用的 IM 这样的窗口中来。

比如研发团队想要高效协作,代码合并请求、制品构建结果、环境部署状况等关键信息,多少会都想瞄一眼,毕竟其中任何一个环节出了问题,都会影响整个迭代的完成,甚至,不到最后一刻,没人知道锅是谁的。

图片

镜像通知

图片

上报缺陷

图片

缺陷评论

虽然技术上什么消息都能推,但一定要根据团队中实际场景来设计通知,否则信息风暴造成思考力丧失。

提醒到位,消息精准传达

群体通知的隐含属性是:

  • 无责任人
  • 可关注,可不关注

所以这种通知就像广场舞,除了知道有人在跳舞,多数人不看舞蹈本身。

而我们利用 IM 最大的一个好处是能使用 @ 功能,精准提醒到人,并且还是大庭广众之下 @ 。

如果说之前的通知能给出现名字的员工带来一定的荣誉感,那么这里的消息会给员工造成一定的紧张感。

图片

缺陷被指派

图片

缺陷被修复


分享一刻值千金

受限于各路插件本身稳定性,且不便于集中管理,我们制定了一个快速、易维护、集中式管理的方案,使消息通知场景不会成为高效协作中的绊脚石。

利用轻便的 web 服务作为中转中心,全链路中所有的 webhook 全部发送至该 web 服务,由该服务收纳后自动分发到各目的地。

本着消息中转的初心,业务逻辑上尽量简单,力求信息 ”从来处来,到去处去“ ,机器人消息模板可自定义。

图片

配置以 Jira 为例:

图片

Jira 原生 Webhook

图片

Automation for Jira

企业微信和钉钉的机器人消息都支持 Markdown 的格式,而飞书比较特别,特别到一言难尽。

所以这里我展示一下 Markdown 的消息模板:

图片

你没看错,模板除了支持变量,还支持语法,我这里使用的是 Python 下的一个热门模板引擎 Jinja2,有兴趣的朋友可以自行了解。


高效协作
快人一步

点击“阅读原文”了解 OpenDevOps MSG Center

阅读原文