Jira实践案例分享:小米集团如何通过API请求优化、数据治理与AI智能客服等,实现Jira系统的高效运维

电子说

1.3w人已加入

描述

日前,Atlassian中国合作伙伴企业日活动在上海成功举办。活动以“AI协同 创未来——如何利用人工智能提升团队协作,加速产品交付”为主题,深入探讨了AI技术在团队协作与产品交付中的创新应用与实践,吸引了众多业内专家、企业客户及技术开发者的积极参与。

活动现场,小米集团高级SRE孟凡胤带来《Jira常见问题处理及如何利用AI智能客服提升效率》的精彩演讲。演讲从小米Jira系统的使用现状出发,探讨分享了API请求及数据治理、项目管理中的个性化设置等运维过程中的挑战与突破,以及如何利用AI工具,深化AI智能客服应用,提高运营效率。

以下为演讲回顾(内容有精简优化):

大家好,作为Jira的使用方,今天我们主要从运维和运营两个层面来介绍小米是如何使用Jira系统的。

小米Jira系统的使用现状

首先,一起来了解下小米Jira系统的使用现状。

Jira系统承担了我们集团的手机、汽车、电视、笔记本和生态链各个产品的bug缺陷管理,以及米粉问题反馈的官方渠道,作为与米粉沟通的桥梁,它在小米内部扮演着至关重要的角色。

当前,我们系统的Issue数量已达到千万级别,数据量处于业界顶端,同时项目数量也达到了1000+,项目配置复杂,个性化需求也非常多,这些都对我们的运营团队提出了专业且严格的要求。随着业务的不断增长和复杂性的提高,我们的系统体量已经远超官方标准产品所建议的体量,这也导致了一系列无法预知的问题。作为技术出身的系统SRE,我们致力于保证系统的SLA,确保系统的可用性,提升用户体验和员工的工作效率。

在龙智的协助下,我们去年花了一年时间,收集了影响系统的三十多个问题,并提出了解决方案。目前,这些方案已经落地并产生了显著效果。

API请求及数据治理

我们遇到的第一个问题是API请求和数据治理。

随着数据量和用户开发请求的持续增长,我们的Search接口受到大量不规范的分析请求冲击。这些请求中的JQL非常不规范,加上Labels数量达到了千万级别,直接在引擎中搜索的话,很可能导致系统崩溃或严重的OOM问题。

▍ 应对措施1:代理层API限流

对于这一问题,我们首先想让它有节制,不让它恶意请求。我们在nginx上使用lua脚本语言对请求的QPS和IP两种维度按照时间进行封禁。QPS达到50做一次封禁,右边是按IP封禁,一秒请求5次,我们会封禁60秒。这样,我们成功拦截了30%的不规范请求,缓解了部分API带来的系统压力。

jira

▍ 应对措施2:API与web服务剥离

然而,即便进行了限流,大数据量的请求仍可能导致集群中的某个节点OOM,影响用户访问。那么假想一下,有没有可能在集群当中将API和Web两个服务分开?

在龙智的专业指导下,我们在7层代理上成功剥离了API和Web服务,确保API请求导致的系统夯住及oom不再影响到前端用户的访问和使用。

此外,我们还在集群上增加了状态监控,如遇到cluster_rmi_connect_fail等异常,会触发告警,使我们能够实时掌握集群的状态。

▍ 应对措施3:大数据治理

尽管采取了上述措施,我们仍未能完全解决API请求给系统带来的压力,那么就在根源上找,大家最终的诉求就是想要获取数据,那是否可以直接给用户提供数据呢?

大家都知道,现在是大数据时代,依托集团的数据工场,我们可以绑定mysql数据源,使用Flink SQL实时开发作业,根据不同的需求给大家提供实时数据,这样,用户无需再通过Search接口请求数据,极大地减轻了系统压力。

这时候有人会问,数据推送后,我们怎样在大数据平台做权限管控?

对此,我们设立了专业的团队和权限审核平台,按照project维度开放权限。这确实需要人工操作,包括创建权限表、与需求方对接等,以确保数据的安全。虽然初期工作量较大,但随着对工作流程的熟悉和标准化,我们已能复制和重用部分工作,从而显著减轻后期的工作量。

▍ 应对措施4:统一webhook推送

在数据治理过程中,我们还注意到一个问题:当issue被更新或创建时,webhook会推送过多不规范的消息。为解决这一问题,我们统一了webhook的推送,将其统一到RocketMQ上,用户可以直接在RocketMQ上进行消费。这一举措不仅规范了消息推送,还允许用户基于这些数据进行二次开发,如消息推送、看板展示和实时数据分析等。

这项工作还在持续实施当中,目前,我们已对接了大约三四十个需求,所有数据均通过统一的出口进行传输,同时减少了API请求,大大提高了系统的稳定性。这正是我们在运维层面所追求的:确保系统在一个更加规范、健康的环境中稳定运行。

项目管理中个性化设置

在系统运维方面,我们取得了很大的突破。其实Jira最核心的工作还是在系统配置上,Jira系统运营的工作非常的繁琐且复杂。接下来,我将介绍一下我们如何对Jira运营的工作做精细化及规范化管理。

▍ 统一项目配置,一键创建项目

jira

在Jira的运营方面,运营团队大部分都是在配置项目个性化需求,创建项目,导入权限,导入模版等相关工作,同产品的project需求也不统一,这些重复性工作占用了运营团队大量的时间。

面对这一情况,我们拉通了各个项目负责人,把同产品(例如手机,笔记本,电视等产品)SPM的需求责任到一位同学身上,把项目的配置对齐,进行统一规划。每个产品对应了一个项目模版,由负责人在辅助系统平台长实现一键创建项目、模版自动导入、权限自动导入。最终实现了统一需求、统一项目模版、统一权限,大大减少了运营工作量,提高了工作效率。

▍ 跨服务器Clone插件

集团中有多套Jira系统,但是系统之间的数据无法做到互通。为此,龙智为小米定制了跨服务器Clone插件。该插件通过混合使用Jira的JavaAPI、标准RestAPI和自定义RestAPI,实现了多个Jira服务器之间的Issue克隆及信息同步。

其主要功能有:

灵活的配置模式:支持多个Jira服务器之间的连接配置

支持统一认证:支持多个Jira服务器之间的SSO认证,保障各服务器之间的数据交互安全

全方位的业务映射:支持项目、问题类型、字段及字段默认值等多个维度的映射,保证不同部门之间的无缝协作

克隆信息展示:在Issue界面中展示对端服务器的克隆Issue信息,支持一键免登录跳转至对端服务器对应Issue界面,极大提升了工作效率

实时数据同步:克隆Issue有任何一方信息发生变更都会实时同步至对方,保证数据同步的时效性

AI智能客服提高运营效率

最后,为大家介绍一下我们的AI智能客服。在日常的Jira运营中,我们面临着大量高重复性的用户咨询问题,Jira运营的同学逐一回答是需要付出很多的时间成本。小米一直非常重视知识库的建设,截至目前,我们的运营相关文档已达百余篇。

那么,如何将这这么多的文章快速、准确地传递给用户?这是一个难题。传统的机器人客服虽然可以推送相关知识,但往往无法提供精确、满意的回答,导致用户仍然需要花时间去筛选和寻找答案。

我们做的是让机器人代替运营人员回答用户的问题。

我们的AI客服解决方案利用大模型技术,将知识库和用户问题转化为语义向量,通过向量匹配快速给出准确回答,实现智能客服功能。现在,我们用户问题回答的准确率高达80%,大大释放了运营的工作量,并且我们还在不断收集用户反馈,优化和更新我们的知识库。

最后,我想说的是,Jira是一个非常有意思的产品,值得我们去深入挖掘。Jira也是一项需要长期维护的工程,依靠个人的力量是远远不够的,我们也需要与更专业、更精细、更系统的团队共同进步。也非常感谢龙智提供这次分享的机会,期待未来我们能够有更紧密、更专注的合作。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分