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

日前,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带来的系统压力。

▍ 应对措施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的运营方面,运营团队大部分都是在配置项目个性化需求,创建项目,导入权限,导入模版等相关工作,同产品的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也是一项需要长期维护的工程,依靠个人的力量是远远不够的,我们也需要与更专业、更精细、更系统的团队共同进步。也非常感谢龙智提供这次分享的机会,期待未来我们能够有更紧密、更专注的合作。


获取Jira产品详情或更多实践案例,欢迎咨询Atlassian全球白金合作伙伴——龙智:

官网:http://www.shdsd.com

电话:400-666-7732

邮箱:marketing@shdsd.com

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自定义注解实现幂等

在前面的文章中,我们说过解决消息重复消费的方式中,有一个方式是幂等,那么幂等是怎么实现呢? 面试官:对于MQ中的消息重复消费说说的你的理解 一、定义 首先我们先来了解一下幂等的定义,它指的是同一个操作…

嵌入式Linux系统编程 — 3.7 文件目录与处理

目录 1 文件目录 1.1 文件目录简介 1.2 目录存储形式 2 创建和删除目录 2.1 mkdir创建目录 2.2 rmdir删除空目录 3 opendir打开、 readdir读取以及closedir关闭目录 3.1 打开文件 opendir 3.2 读取目录 readdir 3.3 重置目录起点rewinddir 3.4 关闭目录 closedir 3…

基于DeepNLP AI Store真人点评和ShowCase分享社区-AI for Image Generator

来源 quora 社区: https://deepnlpaistore.quora.com/ github: https://rockingdingo.github.io/deepnlp/store/image_generator 内容 DeepNLP AI Store 网址:http://www.deepnlp.org/store/image-generator 网站针对图像生成类别 Image Generator下多个AI工具如 …

第 28 篇 : SSH秘钥登录

1 生成秘钥 ssh-keygen -t rsa ls -a ./.ssh/一直回车就行了 2. 修改配置 vi /etc/ssh/sshd_config放开注释 公钥的位置修改 关闭密码登录 PubkeyAuthentication yes AuthorizedKeysFile .ssh/id_rsa.pub PasswordAuthentication no3. 下载id_rsa私钥, 自行解决 注意…

Websocket在Java中的实践——自动注册端点

在《Websocket在Java中的实践——握手拦截器》中我们使用握手拦截器实现了路径解析的工作。这个过程略显复杂,因为路径解析这样比较底层的工作应该由框架来解决,而不应该交由开发者来做。本文介绍的自动注册端点的功能就可以很优雅的解决这个问题。 依赖…

GNU、Unix、Linux、Makefile、GCC、GDB、GPL、CentOS 7、Ubuntu之间的关系

全文总结 早期,Unix系统作为一类强大的操作系统,在计算领域奠定了基础。然而,出于对软件自由的追求,Richard Stallman在1983年发起了GNU项目,旨在创建一个完全自由的、与Unix兼容的操作系统。GNU项目不仅倡议软件自由…

初创企业合规管理中的企业合规义务边界问题

在初创企业的迅猛发展过程中,合规管理是确保公司可持续成长和避免潜在风险的关键因素。而在合规管理中,界定企业边界尤为重要,它关系到企业如何合理规划业务范围、管理内部外部关系以及维护企业形象和法律责任的清晰。 一、初创企业面临的合…

ubuntu 18 虚拟机安装(3)安装mysql

ubuntu 18 虚拟机安装(3)安装mysql 参考 https://cloud.tencent.com/developer/article/1700780 技术分享 | MySQL 设置管理员密码无法生效一例 https://cloud.tencent.com/developer/article/2014384 在Ubuntu18.04上安装MySQL | 超级详细…

flink-触发器Trigger和移除器Evictor

Trigger 触发器 触发器作用:控制窗口什么时候除法计算。即执行窗口函数;基于WindowStream调用trigger()方法,传入自定义触发器(trigger); 每一个窗口分配器(windowAssi…

如何以智能方式安装 Python

Python易于使用,对初学者友好,功能强大,几乎可以为任何应用程序创建强大的软件。 但与任何其他软件一样,Python 的设置和管理可能很复杂。 在本文中,我们将介绍如何正确设置 Python。 您将学习如何选择合适的版本、…

JavaScript中常用数据类型做布尔值(Boolean)转换

一、前言 二、示例 1、String转Boolean 2、Number转Boolean 3、NaN、Null、undefined 转Boolean 4、Object转Boolean 5、Array转Boolean 6、Symbol转Boolean 三、总结 四、思考 一、前言 JavaScript中,经常需要对一些值进行boolean判断,根据判…

three.js 第六节 - 纹理以及贴图【.hdr文件(hdr贴图)】- 色彩空间

素材 这是素材 更多素材、案例、项目 好几个G一共,加我q178373168,60大洋拿走 源码 源码 // ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls…

【考研数学】李林《880》25版主要变化汇总

25版李林880拿到手后对比,发现和24几乎没有太大差别(高数前两章20多道题目增删),然后24又和23版本一模一样 所以有24版本or23版本的880都可以,不用一定追求25年的! 880算是比较经典的习题了,搭…

UE引擎实现ShadowMap、体积光(C++)

前言 整体上参考了YivanLee大佬的这两篇文: 虚幻4渲染编程(灯光篇)【第一卷:各种ShadowMap】 虚幻4渲染编程(灯光篇)【第二卷:体积光】 正文 1、ShadowMap (1)创建工…

上下文管理器在Python中的妙用

更多Python学习内容:ipengtao.com Python上下文管理器是一个非常强大的工具,它能够帮助开发者在特定代码块前后自动执行特定的操作,常用于资源管理,如文件操作、数据库连接和锁定等。本文将详细介绍Python上下文管理器的概念、使用…

django学习入门系列之第三点《案例 商品推荐部分》

文章目录 划分区域搭建骨架完整代码小结往期回顾 划分区域 搭建骨架 /*商品图片&#xff0c;父级设置*/ .slider .sd-img{display: block;width: 1226px;height: 460px; }<!-- 商品推荐部分 --> <!--搭建出一个骨架--> <div class"slider"><di…

云计算基础技术

云计算基础技术概览 计算类产品主要提供算力&#xff0c;支持业务运行&#xff0c;例如网站、办公软件、数据分析等计算能力&#xff0c;目前典型的产品主要是虚拟化和容器&#xff0c;在公有云上的云主机本质也是虚拟机。网络类产品主要满足资源的网络连通性和隔离&#xff0c…

鸿蒙NEXT开发:工具常用命令—install

安装三方库。 命令格式 ohpm install [options] [[<group>/]<pkg>[<version> | tag:<tag>]] ... ohpm install [options] <folder> ohpm install [options] <har file> alias: i 说明 group&#xff1a;三方库的命名空间&#xff0c;可…

告别数据线!轻松实现iOS和安卓设备间的文件共享

用 AirDroid 的附近传输功能&#xff0c;完全免费&#xff0c;几十个G的文件也可以相互传输。不限制iPhone和iPad数量&#xff0c;多个设备同时登录也不会强迫下线。 当你要在苹果手机和安卓手机之间传输文件&#xff0c;请将AirDroid安装到两台手机上&#xff0c;然后登录同一…

Open3D(C++) 删除点云中重复的点

目录 一、算法原理1、重叠点2、主要函数二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、重叠点 原始点云克隆一份   构造重叠区域   合并点云获得重叠点 2、主要…