乐趣区

关于devops:建设一站式DevOps平台腾讯云研发效能提升实践

本文作者:张渝

导语 | 近年来,研发效力晋升越来越受到业界器重,许多厂商都在一直摸索研发效力晋升之路,从而实现研发效率和品质的继续优化,以应答日趋简单的产品开发。那么腾讯云的研发效力相干工作是如何发展和落地的呢?明天咱们特邀了 腾讯云研发效力工作组负责人、腾讯衰弱副总裁 张渝老师,他将带大家深刻理解腾讯云研发效力晋升之路,同时也给大家解读将来腾讯云研效的倒退方向。

探析腾讯云研效痛点和解决思路

近几年,腾讯云在整个研发过程中遇到的痛点,在我看来次要能够归结为三点:标准规范、工具平台、文化宣传。具体而言,首先,因为腾讯云业务波及的研发人员和业务产品数量宏大,而每个团队都有本人的标准和研发模式,但从整体上看,无论是在代码层还是工具层,咱们都不足更高层次的统一标准和标准。

其次,此前腾讯云的工具平台并不欠缺,各种工具从需要到代码到 CI、CD 到线上部署都有,然而工具与平台之间相互割裂,没有造成对立整体,需要对接、代码治理、构建公布和经营数据监控都在不同平台上实现,从而导致效率升高。此外,腾讯云倒退多年,一些工具平台年久失修,不足保护,且呈现了反复建设的状况。对于新员工而言,面对泛滥平台和工具他们也有些手足无措。因而,咱们必须尽快将这些平台纳入对立保护。

第三方面是文化宣传。咱们心愿在腾讯云外部,所有人都能意识到进步研发效力的重要性,并违心投入更多精力独特建设。因而,在推动研发效力晋升方面,咱们采取三种形式:第一,制订对立的标准规范,使大家逐步采纳咱们举荐的支流规范;第二,把工具平台做成一站式串联,造成一个对立的整个腾讯云共享的研效平台;第三,增强宣传疏导,让大家独特关注和参加。能够说,研效的建设是研发治理、工具建设和文化宣传三者的独特作用后果。

针对上述存在的问题,咱们次要的建设思路是采纳金字塔模型,最终目标是在研效平台上实现从需要到最终运维的一体式全过程,进步一线研发和运维的幸福感。金字塔的底层是各种工具的欠缺,咱们将筛选已有的支流工具增强自动化能力。第二阶段通过一站式门户将工具串联整合到平台上,实现从需要到最终监控的全过程。第三阶段将实际 DevOps 理念,尤其是从利用视角贯通整个流程。最上层是价值体现,通过数据度量跟踪,来体现所有的研效晋升工作是否合乎预期,如果合乎构想的轨道再往前推动。下图是腾讯云研效平台的理念和思路。

接下来将具体合成研效平台的各个档次和咱们所做的工作。下图中左侧的导航栏集成了次要的研发过程和应用的工具,不仅仅是将入口对立在一起,更重要的是将各零碎与腾讯云进行深度联合和买通,这是研效工作的根本要求。

第二个层级是 DevOps 信息集成。咱们立项时就制订了与腾讯云原生的单干规范,与自研业务的云原生化并行,一方面是容器化云原生搬移,另一方面是研效工作的晋升,帮忙进步腾讯云自研产品的效率和品质。在 DevOps 中,强调了从利用治理的角度来看整个生命周期,以进步操作效率。从微服务代码框架到配置、后端云函数调用、协定治理、集成公布等,都通过平台实现,构建并公布到云上,反对私有和公有部署。

第三个层级是自动化。咱们竭力推崇自动化执行理念,并且在整个过程中,以底层为根底,尽可能实现状态流转之间的自动化操作。通过各种音讯,触发各角色制订规范的工作流,从而实现继续的开发、测试和部署。

最初是价值度量。咱们定义了几个外围指标来观测和跟踪,长期度量咱们的价值,指引研效工作的继续改良和晋升。咱们订立了四个指标:部署频率、变更前置工夫、变更失败率和服务复原工夫,这些指标间接反映了研发工作效率和品质。

腾讯医疗研效晋升最佳落地实际

腾讯云在研效工作方面遇到的一些挑战和痛点,在推动具体业务落地实际上也存在。以腾讯医疗业务为例,咱们发现在研发过程中,业务快速增长和简单的业务逻辑导致了研发效率降落和问题定位艰难等问题。

为了解决这些问题,咱们采纳了 按域划分问题和分域解决的思路。具体来说,咱们将研发团队分为开发域、构建域、测试域、部署域和经营域,并依据整个研发流程的生命周期,按域划分和解决问题。咱们的解决方案包含对立代码标准、规范开发模式、自动化工具、继续集成、自动化回归测试、缩小人工染指、建设可观测体系等。同时,咱们也着重增强团队文化建设和技术交换,晋升团队合作和单干效率,独特推动研效晋升。

在具体业务落地实际研效晋升方面,咱们须要依据具体业务场景制订相应的研效晋升策略,并联合团队理论状况和行业最佳实际,进行继续优化和降级。此外,咱们发现研效晋升须要全员参加和独特推动,而不仅仅是技术人员的责任和工作。因而,咱们还须要增强团队培训和技术遍及,进步团队整体程度,造成良好的研发文化和合作机制,以保障继续的研效晋升和翻新驱动。

在开发畛域,不足对立的开发流程会导致测试阶段容易受到相互影响,呈现测试环境笼罩等问题。此外,因为需要没有与分支造成绑定关系,代码追溯变更或问题排查会变得艰难。团队刚刚成立时,因配合默契度不高也会导致合作效率低。为此,咱们采取了三个措施:对立开发模式 - 分支开发、骨干提测;将 TAPD 需要与分支绑定,解决追溯问题;引入个性开关以反对并行开发,从而提高效率并解决以前互相烦扰的问题。

在服务治理方面,咱们确立了一系列规范,如对立模块目录构造、为服务减少 DevOps 能力、以及对立组件等。咱们还开发了规范组件,并将这些规范传播给团队,从而实现服务标准化。通过引入脚手架,咱们实现了开发流程自动化并进步了效率,同时保障了品质和对立标准的指标。

在整个开发过程中,团队也在继续提倡和实际测试左移的概念,次要依附单元测试和代码评审 CODING。通过 CODING 插件自建自动化流水线,将单元测试视为品质门禁。同时,咱们在团队外部建设文化氛围,与员工激励相结合,以进步参与度。

在测试畛域,咱们次要面临环境治理方面的问题。为此,咱们采纳了增量复制和路由治理等改良措施来优化资源耗费和升高对业务的侵入。另外,在部署方面,咱们进步了自动化经营覆盖率,通过流水日志主动生成测试用例,并借助公司工具平台实现了流量回放。在经营方面,咱们应用腾讯云可观测当前,可能疾速定位和解决问题,从而提高效率并升高复杂度。

综上所述,咱们通过对立开发模式、标准、自动化脚手架、欠缺 CI/CD、强化单元测试、欠缺继续公布和构建流程等措施,在开发、构建、测试、部署和经营等畛域不断创新,进而提高效率、降低成本,并优化了团队文化和经营管理体系。

腾讯云研效工作将来布局

目前,鉴于腾讯云曾经实现了各工具域之间的互联互通,但在我的项目外部的互通以及我的项目之间的互通方面依然存在一些缺失。因而,将来腾讯云的研效工作,咱们的重点是致力于继续强化我的项目外部的互联互通,并在跨 BG 方面实现更多的效率晋升。

此外,另一个维度则是扩大视角。目前,平台次要以利用为视角来组织连贯各功能模块,那么咱们的下一步打算是在此基础上扩大到我的项目视角,以理解各利用之间的关系。甚至咱们能够从产品业务视角来对待多个我的项目之间的关联关系,摸索进一步晋升的空间。

简言之,只有抓住研发效力实际、平台、以及度量这三点,能力无效晋升研效工作。咱们整个研效的外围思路是通过研效实现,平台在此基础上输入外围研效指标,以推动业务方进步研效性能,最初使得正向加强回路。

毋庸置疑,研效晋升是一项持续性工作,咱们也非常期待通过研效晋升,赋能腾讯云业务的进一步倒退。

点击此处链接,助力企业研发效力晋升

退出移动版