网易首页 > 网易号 > 正文 申请入驻

腾讯DevOps体系之研发管理那些事儿

0
分享至

阅读字数:4882 | 13分钟阅读

摘要

在5月5日的DevOpsDays Beijing,CODE平台产品经理marssun分享介绍了腾讯研发工具体系,并通过两个研发过程中的实践案例说明DevOps理念对于研发过程的优化作用,本文是这次分享内容的整理和延伸。

腾讯拥有业界领先的研发效率

平均每研发人员单位时间释放出的产品能力,即“研发效率”

根据腾讯3月份最新发布的公司介绍,腾讯大约有15,000名研发人员。但是,腾讯却有几乎最为广泛的业务线。在日常生活中,每个人都可以感受到腾讯产品的覆盖宽度。更为甚之,腾讯还有著名的“内部赛马”文化,同一类产品可能有多个团队竞争,这意味着集团的产品线要有多份的研发能力以供赛马。在这一切的背后,必须以高效的研发能力来应对保障。

研发效率是是指单位研发人员负责输出的产品能力,统计上就是集团公司整体的产品能力,除以整家公司技术族人数。在大型互联网公司中,腾讯的这一统计数字是最为领先的。本文不特意比对其他大型互联网公司,有兴趣的同学可以自行根据财报比较。

那么,究竟是什么使腾讯拥有如此高效的研发能力呢?有以下几点因素:

人的因素

在腾讯,有上万名优秀的技术人员,感谢他们心怀梦想的工作,为企业和社会做出了重要贡献。

敏捷文化

在腾讯,敏捷早已深入骨髓,已经是一种自发的行为。公司无需刻意强调,团队已然践行。

研发工具自动化

研发链上,腾讯具备完整的去中心化的工具体系。在这个体系中,自动化和便利性同等重要,并通过去中心化的机制保证组织末梢上的业务效率。

质量保障能力

腾讯有非常高效的质量控制能力——高效率的质量团队、高效率的质量工具和高效率的方法论。

腾讯研发工具链

腾讯特有去中心化的研发工具体系,平台之间使用松耦合的方式互相集成

下图中列出的工具系统大约占到腾讯内部工具平台的1/8左右。若从圆心点画每一条射线,都能找到一个完整的工具链。从图中可以看出,有些工具平台是公共的,而其他一些则是与业务相关的。

(腾讯研发工具链示意图)

来看一下集团层面的公线工具。

腾讯的代码管理和需求管理有统一的平台,也就是说腾讯的源代码统一由CODE平台负责管理,其中主要是腾讯自研的Git平台,而需求规划系统统一由TAPD承担。

除此之外对于DevOps很重要但又很容易被忽略的部分,是企业内部的一些关键设施,比如办公网络、知识管理、安全管理还有就是最最重要的企业IM。

特别是IM,国内在做DevOps解决方案时经常忽略,IM和DevOps系统适当集成,可以组成实时的信息传递中枢。IM与全链工具链如何结合是一个可以深挖的课题。腾讯在IM方面已经全面使用企业微信,DevOps有关的各个系统都在实时通知的能力上与企业微信做了内部整合。

(公线工具示意图,虚线内)

再来看一下业务线,虚线内囊括了集成、测试、容器、部署、微服务等等工具,可以看到沿着中心每一条线,都能伸展出一条完整的研发和运维工具链。

(业务线工具示意图,虚线内)

其中还有一些比较著名的系统,比如织云、蓝鲸、WeTest、Bugly,在各自的领域上都十分完备,有很好的用户体验。

系统和系统之间的DevOps闭环是通过松耦合的模式互相衔接的:用Hooks触发,再用API相互集成调用。实现一种去中心化的协作能力。

每个业务可以自行选用适于自己的系统,比如一个团队可以使用MIG的RDM做编译,用IEG的CodeCC做静态代码扫描,用QTA或者WeTest做自动化测试,再用织云来发布服务。而不会因为组织架构而拘泥于某一系列的研发工具。

另外每个业务都可以自行定制贴近自己的工具,这样一旦业务形成规模,就能保证研发系统在需求上最快时间的响应,更加利于研发团队快速优化自己的效率。

一个案例

腾讯的研发团队,如何进行项目组织?

腾讯有一个研发项目,因为是个很重要的产品,所以对变更的管理是很在意的,这个团队每月要处理300到500个需求或者任务,项目代码放在腾讯TGit系统上,需求管理用腾讯的TAPD,


具体看一下这个项目是怎么组织的。

这是一个分支策略的示意图,可以看到这个项目采用的多分支的管理模式,每个功能和需求都是在独立的特性分支上开发的。和主流的Github Flow有些不一样,最主要是项目的默认分支不是稳固的,它会在每个月把默认分支重设一遍,比如现在是五月,那么研发Leader就会把默认分支设置成May,所有这个月要发布的功能都向这个分支合并,等到May这个版本发布完之后就启用六月份的June。

这种分支的管理模式的核心思想主要是用发布节奏来组织分支策略,这个模式对多团队合作的大型项目来说有很多的优点。但这个不是本文的议题,有兴趣的同学可以研究下。

本文要谈的重点是左边棕色区域的功能分支,300到500个功能分支,最终要被合入这个月发布的版本中去。可以想象一下临近发版日的时候是什么样子的。

首先,500个功能一定不会是均匀提交的,一般都得到月中或者月末才提交,因为这个月先要沟通需求,需求沟通PK差不多了,开发再去实现,实现完开发自己还要做些调试和测试。所以一个月月末的时候,这些分支的合并压力就会很大。500个功能,假设核心团队的三个技术Leader负责合入把控,就那么几天时间,每个合并遇到问题还要和团队一个一个沟通……别的事就没法做了……

所以大型研发团队的痛点,所有的矛盾和解决方案都指到了分支的合入控制这个点上。那么这个团队怎样解决的呢?

首先是关联需求

在发起合并请求的时候,直接在描述里粘贴对应的需求链接,后台有一个脚本会用正则判断链接是否存在,格式是不是正确。

如果没贴链接或者链接不对,脚本就会自动调用Git平台的接口,阻止下一步操作,像左图这样显示合并被阻止,同时自动用评论提示缺少需求链接,就是下图的样子。

在需求一侧也可以控制这个功能是否可以合入。下图的提示意思就是要在需求管理平台,标记需求单位“可合入”的状态,这个合并请求才能放行。

再来看在合并时质量自动化改进

同样的,利用代码平台的接口,通过自动化脚本,可以实现质量的自动化能力。

可以看到这里构建是用jenkins,测试是用团队自己调用的测试工具和静态检查工具完成的。

如果编译和自动化测试没通过,合并请求也会被阻止,直到开发人员推送了能测试通过的版本,才会放行。

在合并请求的列表上,直接显示了合并请求的检测状态。可以看到每一个合并请求,后面都自动跟了检测状态,绿色的对号或者红色的叉子,这对项目管理人员是很友好的,红色的可以直接跳过不看了。

质量控制流程设计的三个要求

自动化、感知能力、控制能力

第一是自动化,流程必须被设计成全面的自动化。哪怕有一点点操作需要手工执行,到具体研发的场景里就有各种理由被遗忘,所以要尽可能保证全流程都是自动化无人工操作的,这里有三小点,自动触发,自动检测,还有自动上报。

第二个要点是感知能力,这里面主要谈的是信息流。如何让研发团队有能力了解和自己去把控质量,那么一定要把信息流做到位,要让研发团队,特别是和这段代码有关的相关人,清晰的知道整个质量验证的进度情况。信息流,主要解决的是沟通的问题,如果信息流做的不好,沟通基本靠嘴,那么效率是非常的低的。

这里也有三个小点,是实时、可追溯、可配置。可配置的意思主要的目的是信息泛滥。

第三点讲控制,就是如何防止低质量的模块被发布,那么流程上就要能自动截断低质量模块的发布,这里面我们提到的解决方法是拦截合并,控制关键分支。当然这里有一个前提,是代码管理系统必须要有拦截功能。

回过头来看从编码到发布的流程,在过去,质量检测在发布前能够介入的时机也就有合并前,合入后,封包后三个阶段:

往常这三步需要分开来做,用DevOps思想解决的是,让这几个事情同时完成,形成一个质量验证的快速闭环。在每次合并请求发起和更新的时候,都自动化的把整个事情完整做一遍。这样保证每一个功能合入都是安全可靠的。

真的能实现完全自动化的差不多只有下图红框圈起来这些

第二个例子

RDM是腾讯米格(MIG)的集成工具平台,主要功能是移动端应用集成编译和发布管理。

第二个例子来自米格的RDM平台

RDM是支撑MIG旗下所有移动端业务的工具平台,最主要的功能是集成编译,也有一些自动检测和验证的能力。

下图是一张流程的示意图,展示的是集成和质量工具与源代码管理平台的之间接口的互相调用。从分支push开始到静态检测、到构建、到自动的功能测试,集成在一个Pipeline里面。

下图是RDM Pipeline 配置页

Pipeline最先是拉代码,然后是构建打包,检测项有代码风格、Coverity扫描、Sonar扫描,代码重复率等等,编译集成后,还联合有一些移动端的自动化测试平台和工具。

如下图的对话框,每项检测项目都可以设置他们是否能阻断合并请求。

当合并请求发起或者更新时,Pipeline的显示效果如下图

在合并请求的页面上显示检测正在进行,同时企业微信也弹出来提示,说明检测开始了

检测结果附在合并请求的动态墙上,这些都可以事后在代码平台上查询到,实时的结果则通过企业微信推送。

如果检测失败就会阻止合并请求,之后如果开发新提交的代码解决了这些问题,那么这里的合并请求会自动放行。

小结

上面这些例子,都是在合并请求上附加各种各样的集成能力,利用自动化和流程化,来增强项目人员和管理者的感知,达到优化流程的目的。

一方面通过代码平台和IM的能力实现了实时可追溯的信息流。另一方面,通过代码平台阻断低质量模块的合入(这个阻断能力需要代码管理平台支持)。并展示了在研发过程中的端到端打通能力(从代码提交封包测试完成)。

开源和开放

腾讯研发工具链上工具的开源项目和开放能力

腾讯研发管理工具链的开源做得很早。其中有一些知名项目,例如蓝鲸配置平台(bk_cmdb)和Tars微服务解决方案(Tars),业界已经比较了解,可以在Github的腾讯账号下搜索到。

腾讯研发工具链上开源过的工具和组件:

1bk_cmdb(蓝鲸)2Tars3GAutomator(WeTest)4QTA5TscanCode6GT7OOMDetector

本文介绍几个冷门项目:

GAutomator

看截图很快能知道是互娱的项目,这个项目是个Unity的自动化测试框架,它是WeTest的其中一个模块,WeTest是个真机测试云的解决方案,用成千上万台不同型号的手机跑各个机型的自动化测试。

Tscancode

同样是来自互娱的TScanCode,做的是静态代码扫描,支持C++和Lua,帮你分析代码中的潜在漏洞。

QTAF

QTA是SNG社交网络质量部出品的自动化测试框架,承担了SNG多数业务包括腾讯云的部分业务在内的自动化测试需求。支持移动APP、Windows程序、网页、服务端、接口多种不同平台的测试任务,开源的部分放出了Android和iOS的测试库插件,分别是QT4A和QT4i,其中QTAF是其核心框架的核心模块。有兴趣交流可以在Github的项目上给项目组提issue。

总结

本文通过分享几个研发过程优化的例子,说明了DevOps端到端的思想不仅仅是针对运维的,它还对研发管理,特别是质量控制很有价值,并且能够直接改善研发团队的体验,减少沟通损耗,提高研发效率。同时也介绍了腾讯内部的实现经验。在流程改进上还有很多的路径或者体验可以优化,希望与同行共勉。

以上为今天的全部分享内容,谢谢大家!

嘉宾演讲视频及PPT:http://t.cn/EZ2byrp

内容来源:2018 年 5 月 05 日,腾讯研发管理部CODE平台产品负责人孙晨星在“2018 DevOpsDays Beijing”进行《腾讯DevOps体系之研发管理那些事》演讲分享。IT 大咖说(ID:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

编者:IT大咖说,转载请标明版权和出处

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
提前4轮夺冠!曼城2-1赢下英超决赛!枪手彻底崩了!

提前4轮夺冠!曼城2-1赢下英超决赛!枪手彻底崩了!

足球大号
2026-04-20 16:02:39
她是知名歌唱家,却嫁大30岁二婚老头,如今丈夫老态尽显,她图啥

她是知名歌唱家,却嫁大30岁二婚老头,如今丈夫老态尽显,她图啥

洲洲影视娱评
2026-04-19 16:48:08
鲁尼:枪手能赢下剩余所有比赛,但曼城可能在埃弗顿身上失分

鲁尼:枪手能赢下剩余所有比赛,但曼城可能在埃弗顿身上失分

懂球帝
2026-04-20 11:23:07
疯狂!种马男星沃伦睡过12775名女友,性欲成瘾缠着女友不让下床

疯狂!种马男星沃伦睡过12775名女友,性欲成瘾缠着女友不让下床

钱小刀娱乐
2026-04-14 10:39:13
3小时内影响全市!刚刚,深圳发布双预警信号!

3小时内影响全市!刚刚,深圳发布双预警信号!

鲁中晨报
2026-04-20 14:44:05
极大反差:中国人暴跌55%,日本外国游客又创新高,俄罗斯人增26%

极大反差:中国人暴跌55%,日本外国游客又创新高,俄罗斯人增26%

壹只灰鸽子
2026-04-15 22:41:48
中央定调,养老金调整通知或4-5月发布?30年工龄能加超100元吗?

中央定调,养老金调整通知或4-5月发布?30年工龄能加超100元吗?

王五说说看
2026-04-20 07:05:10
英超-水晶宫0-1西汉姆联:铁锤帮把白百合逼降级|前瞻

英超-水晶宫0-1西汉姆联:铁锤帮把白百合逼降级|前瞻

体育世界
2026-04-20 11:28:31
台湾问题即将突破临界点?两大迹象表明,大陆可能要准备出手了

台湾问题即将突破临界点?两大迹象表明,大陆可能要准备出手了

人生就是要简单
2026-04-19 14:12:33
东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

番外行
2026-03-31 08:28:28
足球报:不敌铜梁龙后,当地体育主管部门来与三镇进行沟通

足球报:不敌铜梁龙后,当地体育主管部门来与三镇进行沟通

懂球帝
2026-04-20 12:59:04
激烈交锋,解放军接到消息,日本恐重蹈二战覆辙,岸田文雄已扛旗

激烈交锋,解放军接到消息,日本恐重蹈二战覆辙,岸田文雄已扛旗

介知
2026-04-20 15:38:47
李雨桐泄露薛之谦手机号、身份证号被北京警方行拘10天,潮石音乐:艺人和家人被“开盒”,包括未成年孩子,无数电话和短信轰炸,薛之谦不敢开机

李雨桐泄露薛之谦手机号、身份证号被北京警方行拘10天,潮石音乐:艺人和家人被“开盒”,包括未成年孩子,无数电话和短信轰炸,薛之谦不敢开机

观威海
2026-04-20 10:00:04
伊朗万吨大船冲向美军封锁线,特朗普暴怒!美官员干脆点中国的名

伊朗万吨大船冲向美军封锁线,特朗普暴怒!美官员干脆点中国的名

荷兰豆爱健康
2026-04-20 15:49:15
赖清德不装了、马英九暴露真面目!郑丽文:台海没事,世界都没事

赖清德不装了、马英九暴露真面目!郑丽文:台海没事,世界都没事

阿离家居
2026-04-20 16:12:41
女团成员爆料:每个男团都有人来追过我

女团成员爆料:每个男团都有人来追过我

影视情报室
2026-04-19 15:10:13
惊天大逆转!中国国运爆发,百年机遇降临,西方要慌了!

惊天大逆转!中国国运爆发,百年机遇降临,西方要慌了!

晓楖科普
2026-04-18 16:06:36
卢伟:两位外援的恢复情况不太顺利,洛夫顿最近肯定打不了

卢伟:两位外援的恢复情况不太顺利,洛夫顿最近肯定打不了

懂球帝
2026-04-20 13:31:20
131年前的伤疤还没好,日本又往上面撒盐!这次解放军没惯他们

131年前的伤疤还没好,日本又往上面撒盐!这次解放军没惯他们

闫树军论评
2026-04-20 16:47:41
二战时,德国为何送中国40万套装备?要走了垂涎已久的三样东西

二战时,德国为何送中国40万套装备?要走了垂涎已久的三样东西

抽象派大师
2026-04-03 14:30:57
2026-04-20 17:48:50
IT大咖说
IT大咖说
大咖干货,不再错过
306文章数 61关注度
往期回顾 全部

头条要闻

小伙入职仅一天公司40多部手机集体"失灵" 警方提醒

头条要闻

小伙入职仅一天公司40多部手机集体"失灵" 警方提醒

体育要闻

阿森纳已拼尽全力,但你早干嘛去了...

娱乐要闻

鹿晗生日上热搜,被关晓彤撕下体面

财经要闻

月之暗面IPO迷局

科技要闻

华为Pura90逆周期定价,4699元起,未涨价

汽车要闻

把天门山搬进厂?开仰望U8冲上45度坡的那刻 我腿软了

态度原创

游戏
健康
教育
手机
公开课

索尼大一统!PS6超全爆料:全兼容PS4/PS5 掌机超强

干细胞抗衰4大误区,90%的人都中招

教育要闻

突发!丘班真的要取消了?

手机要闻

华为鸿蒙HarmonyOS 6.1升级计划公布,今日起多机型正式版推送

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版