本文将带你了解FIT2CLOUD飞致云众多开源项目背后的研发体系,包括如何借助腾讯TAPD敏捷研发协作平台实现高效的研发与协作,保障众多开源项目的持续迭代。同时介绍腾讯TAPD如何与我们自身MeterSphere开源持续测试平台、DataEase开源数据可视化分析工具强强结合,发挥出各自更大的价值。
FIT2CLOUD飞致云创立于2014年,秉持“软件用起来才有价值,才有改进的机会”的核心价值观,致力于成为中国数字化团队首选的通用工具软件提供商。2017年11月,飞致云收购JumpServer开源堡垒机项目。以此为契机,飞致云近年来持续加大在开源软件研发、运营方面的投入,不断拓展开源软件产品线,旗下开源产品既有广受欢迎的JumpServer开源堡垒机(GitHub Star 20k+)、人人可用的开源数据可视化分析工具DataEase(GitHub Star 9.2k+)、一站式开源持续测试平台MeterSphere(GitHub Star 9k+)和强大易用的开源建站工具Halo(GitHub Star 26k+),也有冉冉升起的新星1Panel开源Linux面板(GitHub Star 1.5k+),产品涵盖了运维安全审计、BI分析、软件测试、建站等多个领域。
经历了五年多的持续投入和运营,飞致云旗下开源软件在企业数字化团队中的影响力不断扩大。根据国内知名的开源社区联盟开源社发布的《2022中国开源年度报告》显示,在“中国企业OpenRank排名Top30”中,FIT2CLOUD飞致云排名第六位。
之所以能取得这样的排名,离不开FIT2CLOUD旗下开源项目表现出的卓越成长性。从我们制作的飞致云开源大屏中便可以很直观地感受到数据背后各个项目的生机与活力。
“一枝独秀不是春,百花齐放春满园”。一款产品的成功可能来源于偶然,但多款产品都能取得优异成绩必定有着一些共性的原因。我们认为这是FIT2CLOUD飞致云产品观的胜利。“好的软件产品是迭代出来” 是FIT2CLOUD飞致云一贯秉持的产品观。在所有我们的工作中,帮助用户更好地把产品用起来从来都是第一要务。在用起来的基础上,我们的产研团队会收集到来自用户的广泛反馈,坚持按月发布功能版本, 按需发布补丁版本。
从上面的开源大屏中可以看到,我们的月均Release是12.3个,基本上隔一天就会有某一款产品发布新版本。
可能对于一些互联网企业来说,这样的发版速度算不了什么,但放在2B领域里如此频繁的发版确实是一个不小的挑战。之所以能够一直坚持下来,离不开背后高效研发体系的支撑。套用下CI/CD的概念,可以认为我们的产品都处在这样的一个持续迭代循环之中,大体上会包含需求管理、版本规划、开发实现、测试管理、发布和反馈这几个环节。
在整个研发流程中,我们借助了腾讯TAPD敏捷研发协作平台来实现高效的研发与协作。
腾讯TAPD是一款由腾讯公司自主研发的敏捷协作平台,为企业产品研发项目全生命周期与团队协同提供专业的解决方案。在腾讯内部支撑了QQ、微信、王者荣耀等众多核心业务的研发管理和敏捷实践。目前已服务数十万家企业客户,覆盖金融、游戏、高科制造、智慧零售等数十个行业大类,成功为中金公司、方正证券、哔哩哔哩、同程艺龙、米哈游、朴朴超市、南方航空、创维、广汽丰田等各行业企业提供行业领先的敏捷协作方案,提升企业协作效率和研发效能。得益于TAPD强大的开放集成能力,我们也通过TAPD实现了与企业微信、腾讯会议、Jenkins、GitHub等外部工具,及MeterSphere持续测试平台和DataEase数据可视化分析工具等诸多系统的对接。
需求管理:目前我们的需求来源多种多样,有GitHub仓库中的Issues,有社区交流群中用户的实时反馈,也有客户成功、售前团队的交流总结。所有的这些需求会统一录入到TAPD中进行管理,各个产品的产品经理会对所有这些需求进行分析。某个需求要不要做、为什么要做/不要做、要做成什么样子都是需要在这个环节确定的内容。通过TAPD完善的自定义状态和状态流转功能,我们可以很方便地对需求的生命周期进行管理和跟踪。
版本规划:当某个需求确定要做之后,产品经理会综合各方面因素决定这个需求规划的版本和优先级。我们主要使用到了TAPD的迭代功能来规划版本发布内容和时间。另外在临近发布时,我们还会配合发布计划功能,进一步跟踪各项任务的完成情况。
开发实现:在开发实现环节,除了开发人员各有所需的 IDE 工具以外,TAPD和GitHub也是他们需要每天打交道的软件之一。目前我们所有的开源项目代码都托管在GitHub上,并且使用了action脚本进行了Gitee仓库的自动同步。同时TAPD中我们配置了跟GitHub的代码关联功能,当GitHub仓库有代码提交时便会通过指定的webhook地址通知到TAPD。开发人员只需要在commit消息中携带特定格式的需求/缺陷ID,便可以将commit记录与TAPD上的需求/缺陷进行自动关联,方便后续追踪。
TAPD还贴心的提供了一键复制提交关键字的功能, 通过这个功能可以快速帮助开发人员得到一条符合要求的提交信息。
测试管理:软件行业有句话叫“Eating your own dog food”,自己的软件产品自己都不愿意用怎么能指望别人去用呢?换句话说一款产品能满足我们的需求,也自然能满足与我们类似的其他公司的需求。所以在测试环节我们主要使用到了自己的开源测试平台MeterSphere。基本上MeterSphere的测试跟踪、接口测试、UI测试、性能测试这几个功能模块我们自己的研发测试团队都有在深入使用。对MeterSphere功能的使用,既能满足团队自身需求,也能对MeterSphere进行进一步测试,可谓是一举多得。
另外在测试环节也少不了TAPD的身影。整个测试过程中十分关键的缺陷管理工作,目前我们是依托于TAPD来完成的。同需求类似,所有GitHub Issues中的缺陷在经过确认后也会录入到TAPD中进行统一管理。通过TAPD的自定义状态流转和自定义字段功能,配合上企业微信的TAPD通知,每一个缺陷都可以及时得到妥善处理,缺陷原因和影响范围也可以得到充分记录。
除此之外TAPD上还提供了丰富的报表功能,我们既可以在发布前洞悉整体的质量情况,做到发布不慌;也能够在发布后进行归纳总结和复盘,吸取经验教训。
发布:在构建发布环节不同的团队会有些许差异,但都不外乎GitHub actions和Jenkins两种方式。这两种方式都实现了CICD as Code的效果,所有的构建、打包、发布过程都以文件的形式包含在代码仓库中,针对这些过程的变更也都清晰可见。
反馈:针对产品的反馈整体上可以分成需求和缺陷两大类。GitHub Issues是我们针对社区用户进行反馈收集的主要阵地,所有用户都可以直接通过创建GitHub Issue的方式来提出自己针对产品的想法、需求和问题,我们的项目组成员也会在尽量短的时间内进行回复确认。除了GitHub Issues之外,客户成功和售前团队也是我们产品需求的另一大来源。我们的产品团队与客户成功及售前团队会进行定期会议沟通,统一处理他们日常工作中收集的各类需求和问题。
TAPD的标准功能中,支持在Jenkins等持续集成工具的任务里添加 “TAPD自动化测试报告解析” 步骤,用来解析一些自动化测试框架的测试报告。除此之外还有很多团队会选择建设一个测试平台来满足测试人员的需求,对于这两种方案对比起来各有优劣,在实际落地场景中不同的团队也会有不同的选择,这里不过多讨论这个话题。
我们这边选择的MeterSphere持续测试平台,很好地补充了TAPD在测试尤其是自动化测试方面的功能。
在MeterSphere中可以通过API的方式与TAPD进行对接,将MeterSphere中的项目与TAPD项目进行关联。
对接之后我们在MeterSphere中编写测试用例时便可以直接关联TAPD上已有的需求,在对用例进行测试时也可以直接在MeterSphere创建缺陷到TAPD里进行统一管理。
同时MeterSphere也提供了功能用例与接口测试、UI测试与性能测试的关联功能,这样所有测试相关的内容就都被关联在了一起,无论是从需求追踪各种类型的测试用例,还是从缺陷、用例去回溯原始需求都变得十分方便。
在项目进行中的各个阶段我们都需要对项目状态进行各种形式的跟踪、分析及可视化展示。虽然TAPD上已经提供了很好用的报表功能,但是在数据来源、图表类型、页面布局等方面与专门的BI分析工具还是有些差距的。比如跨项目的汇总分析,基于现有数据的二次计算,或者需要与外部系统的数据进行整合分析等需求在TAPD中都不能直接满足。所以我们在实际工作中使用到了我们的DataEase数据可视化分析工具,对TAPD上的数据进行了进一步的可视化展示。
在DataEase中我们可以通过添加API数据源的方式,调用TAPD提供的API接口将需要的数据依次添加到DataEase中并配置定时同步任务。
对数据进行进一步校对和处理之后,通过简单的拖拽点击操作便可以得到类似下图的研发项目概览仪表盘。
像上文提到的那样,我们所有产品在各个渠道收集到的需求和缺陷全部会录入到TAPD中进行统一处理。可以说TAPD就像是我们各个产品的一个集散中心和交通枢纽,所有的信息都在这里得到汇总,任务都在这里得到分发,流程都在这里得到衔接。
TAPD很好地满足了我们在研发项目管理上的各种需求,基本上我们在使用过程中产生的一些需求和想法都可以通过各种灵活的配置进行实现。另外随着TAPD使用的不断深入,现在不仅是我们的产品研发团队在使用,也有很多其他团队在使用TAPD进行各种形式的项目管理工作。
未来,希望我们能更好地发挥TAPD的能力,将之前没有用到的一些高级功能也充分利用起来。例如之前我们一直想将GitHub上的Issues与TAPD中的需求/缺陷进行同步,简化我们对GitHub Issues的维护工作。前段时间上线的自动化助手功能,配合上GitHub Actions看起来就可以很好地解决这个问题。再比如对于研发效率、产品质量的度量,我们也希望能够在现有TAPD仪表盘的基础上,结合上GitHub的提交记录以及MeterSphere上的用例执行情况等信息,进行进一步的优化。
随着我们TAPD使用越来越深入,接触了解的用户越来越多,我们发现在我们30万的开源用户群体,2000家的企业客户中,TAPD和飞致云的开源产品(尤其是MeterSphere、JumpServer等)高度重合,在企业客户具体实践中,很多客户同时采用TAPD和JumpServer落地安全运维、工单、审计流程,采用TAPD和MeterSphere搭建企业DevOps流水线。飞致云也在2022年正式成为腾讯TAPD的官方合作伙伴,补齐企业持续测试、安全运维等核心环节,共建腾讯云原生生态,携手为中国数字化团队提供更开放、更易用的通用工具和平台。
如果你也在使用TAPD进行项目管理,同时又在寻找自动化测试及可视化分析的补全方案,相信我们的MeterSphere开源持续测试平台和DataEase数据可视化分析工具肯定也可以满足你的需求。如果你还没有使用TAPD,那还在等什么呢?
文章来源:本文转载自腾讯云产业生态圈公众号。