ChatOps 实践原创

# ChatOps 实践

敏捷思想下的研发工作中,在相互协作工作时减少文档、流程已成为每个团队成员的共识,通过即时通信工具快速表达各自的需求并获得支持已经成为各开发团队内的流行协作方式。对于产品与开发、开发与测试之间,因为都是在一个项目中,这种响应都是比较聚焦的,所以这种协作方式的确得到了很好的效果。 在敏捷团队向团队外寻求协作时,在交付方面,催化了DevOps的各种实践,少沟通、快速、自动化的代码交付方式,让研发的每次交付更加敏捷高效。然而同样对于Ops工程师,通过即时聊天工具与多个团队进行工作需求的沟通、响应,无疑是低效且反模式的。Ops工程师在跨多个团队协助支持时,通过即时聊天工具很难有效聚焦单一问题,同时亦会因为所有的需求都在即时聊天工具中,极大的造成了事件无统一记录且形成单一事件流的问题,因此基于ChatBot实现的ChatOps协作方式以然成为外部团队,尤其是Ops工程师实现对敏捷开发团队需求响应的最佳手段。

# 理解 ChatOps

ChatOps 并不是工程师使用即时聊天工具与其他团队沟通完成需求响应的工作模式,而是通过ChatBot自动化完成各种响应操作,减少不必要的沟通的协作方式。如下图,在整个团队协作过程中,每个环节都可通过ChatBot 实现团队间的快速响应和自动化反馈,可极大的通过减少沟通带来跨团队工作效率的提升。

对于运维团队,Ops、DevOps、SRE是需求协作支持的不同角色,所以一套有效的ChatBot不仅可以极大的提高运维事件响应的能力,同时亦可以把每日繁杂的工作进行有效的记录,通过周期性的积累,不断优化自动化脚本以减少各种人工操作,同时亦可积累更行之有效的知识库,推动新人的快速融入和流程的优化。

# ChatOps 实践

  • 基于企业微信的DevOps 交付流程管理

在2020年时,我用Go开发了一套基于Jenkins的代码交付平台,在交付流程管理中,存在两个流程,一个测试上线流程,该流程是开发发布自己代码到测试环境后,需要QA人员及时测试,并给予反馈。另一个是生产上线流程,该流程在生产上线时,需要经过几位总监审核,而这个审核是需要总监们手动批复的。我们虽然有自己的jira平台,由于在生产上线是在发布窗口期进行操作的,有时上线时都会有几十个应用同时需要批复,由于jira批复交付流程的上下文是不连贯,所以这种批复效率非常的低。基于交付流程操作的便利性需求,我设计了一个通过企业微信与代码审核流程交互的方案。

该流程方案是通过企业微信创建了两个群,一个代码测试上线群,用于QA和开发人员实现交互,每次代码交付需要测试审核的消息或QA反馈代码测试状态的消息都会在这个群里发送,开发人员与测试人员无需相互通知,发布流程反馈信息会主动@相关人,相关人就可及时响应各种操作。另一个群是生产上线群,这个群是各开发团队leader与几位技术总监组成,流程相关人直接在企业微信中就可以查看交付流程的完整信息并完成生产上线的审核操作。

  • 基于个人微信的工作响应测试

番茄工作法是提高工作效率的最佳实践,其内容是选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后进行短暂休息一下(5分钟就行),再开始下一个番茄。

然而,现实工作中,微信的信息响应能力已经远远超出个人所能响应和处理的极限,而这种番茄工作方法更是无法使用,为了能有效提高工作效率,同时又不影响到关键工作信息的接收,我设计了一个微信机器人,在每次我工作的番茄时间,会及时反馈可以默认回答的内容,在下个番茄时间再处理下一个需要做的内容,当然若是非常紧急的事,可电话Call我。

目前只是满足个人需求,会逐步把各种工作请求做数据记录,通过总结优化后形成自动化脚本,实现更完整的ChatOps工具链。

想看演示效果就微信@我吧。

上次更新: 2023/03/21, 13:44:52

Initializing...

最近更新
01
git的tag与branch 原创
05-21
02
阿里云SLS日志服务的数据脱敏及安全管理 原创
03-21
03
云平台的成本管理 原创
03-13
更多文章>
×