从Req到PerfTest:中国软件开发工具生态持续进化进行时

从Req到PerfTest:中国软件开发工具生态持续进化进行时
2023年04月27日 13:32 孙永杰

软件是新一代信息技术的灵魂,是数字经济发展的基础,是制造强国、网络强国、数字中国建设的关键支撑。发展软件和信息技术服务业,对于加快建设现代产业体系具有重要意义。而作为软件基础的软件开发工具则关系着软件开发的需求、流程、效率、质量以及其发挥的作用,更是重中之重。

基础软件薄弱:软件产业加速发展,软件开发工具隐忧渐显

不可否认,在国家相关政策及企业创新的驱动下,我们在软件规模上取得了快速的发展。据工信部数据显示,从2000年至2020年,中国软件市场整体规模实现了135倍增长,美国为3.2倍;2020年,中国软件产业规模占全球软件产业的24%,占GDP比重约7.9%

与之相比,据相关统计,在当前作为基础软件的全球付费软件开发工具市场中,北美地区占有市场份额超过50%,欧洲地区超过20%。全球前十大软件开发工具企业中,有MicrosoftPerforceAdobeOracle等六家公司来自美国。

基于此,国内企业都习惯直接使用国外的领先工具。虽然近年来国内也迎来了软件开发工具的自主化浪潮,但大量工具还都是以开源软件封装为主,能够适配的企业场景有限,无法满足大型企业业务快速发展的商业诉求,更重要的是,它同样存在被“卡脖子”的风险。

究其原因,软件开发工具被认为是一种根技术的基础工具,通常被用来辅助开发者编写、测试和维护软件代码,提高软件开发的效率和质量。因此,软件开发工具可以被看作是支撑软件开发的基础设施,是软件开发的基础。在现代软件开发中,开发者使用各种软件开发工具来完成任务,例如编码工具、集成开发环境(IDE)、版本控制工具、自动化测试工具、构建工具等。这些工具的使用,有助于开发者快速高效地开发软件,并提高软件的质量和稳定性。

那么问题来了,如何让软件开发工具更好地匹配业务发展的速度,发挥最大作用为企业创造价值,同时又避免“卡脖子”的风险?

答案是搞我们的自主软件开发工具。而谁能成为该领域第一个“吃螃蟹”的人呢?

01CodeArts开启自主软件开发工具生态之路

众所周知,对于软件开发工具,需求管理是第一个环节,也是贯穿整个软件交付生命周期的重要内容,不仅对于软件开发重要程度高,而且难度最大。比如,面对数字化时代复杂多样、动态化的业务和场景,如何收集连客户也描述不清楚的需求,如何应对随业务而变化的需求变化,都是需求管理的难点和痛点。

对此,华为云于去年127日发布了一款自主研发的软件研发管理与团队协作工具CodeArtsReq,其内置华为IPD需求管理模板,支持IPD研发、DevOps敏捷交付、精益研发多种研发模式,支持特性管理、需求管理、缺陷管理、计划管理、基线与变更及任务跟踪,具有强大的跨项目协同、多项目组合管理能力。

据悉,CodeArts Req 已全面覆盖华为公司云、管、端、车、芯等相关产品的研发,高效支持华为13万研发人员的需求协作,月API调用量超过15亿次,累计管理5000多万需求。然而,需求管理只是软件开发的第一步。一款合适的需求管理工具能够从源头缓解企业的部分开发压力,丰富而全面的软件开发工具链,才能完成软件开发工具生态体系的闭环。

更让业内惊喜的是,以上述CodeArtsReq为开端,进入到今年的头两个月,华为又有至少8项软件工具公开发布或上线。其中包含自主研发的一站式测试管理平台CodeArts TestPlan、代码检查服务工具CodeArts Check、分布式编译构建系统CodeArts BuildCodeArts IDE Online服务、代码托管服务CodeArts RepoCodeArts Artifact制品仓库服务、流水线服务CodeArts Pipeline、部署服务CodeArts Deploy等。

由上述事实我们看到,CodeArts体系的相关产品涵盖了研发产线所涉及的需求管理、代码托管、代码检查、编译构建、部署、测试、发布等多个环节,从软件开发工具生态的角度,产品体系已经基本趋于完整。

所谓知其然需知所以然,为什么是华为的CodeArts?它的产品体系从何而来?又到哪里去?

专注价值:CodeArts从挑战中来,到实践中去

说到CodeArts,其实它的问世并非一蹴而就,而是从企业自身发展中面临的挑战而来。

早在2000年左右,华为就因自身业务快速发展,加快了软件开发工具的自研之路。从2019 年开始,更是跑步前进,先后实现全面上云、多地域布局。而在攻坚一系列软件开发工具的过程中,华为一度面临着三大挑战。

首先是生态兼容。比如有些编译构建技术,距今已有十多年了,被大量的软件构建标准沿用,尽管它们还有很大的改进空间,但牵一发而动全身,仍不敢轻易改动。只能想方设法去做兼容,然后在兼容的基础上创新,这严重限制了软件架构的思路。

其次是底层技术突破。以代码仓工具为例,尽管业内已经存在开源的免费的代码仓,但如果要在可靠性、安全性、稳定性、并发性等方面进行提升,向开源社区提交的代码未必会被采纳,因此只能购买具备该功能的商业版本。因此,这就要求企业必须要扎根底层技术,并持续积累,掌握底层关键技术,才能更好地推动软件向前演进。

最后是工程能力。不同类型、不同规模的企业,在整个软件开发价值生产过程中,面临的问题各不相同。如何通过工程能力解决它们的问题?如何再进一步将这些工程能力沉淀到工具中?如何形成一整套的方法论在更多场景实现落地?这是很多软件开发工具厂商面临的一大难点。

只有把解决的手段、能力沉淀到软件开发工具里,将工具与工程能力、场景相结合,才能真正解决开发者和企业的问题。这就要求每个工具链的开发者,不仅仅要成为工具的专家,还要成为工程能力的专家。

基于上述对于挑战的认知,加之华为在软件领域的积淀,其最终成功应对了这三大挑战,并最终在2022年,华为云将华为公司在内部持续构筑并验证成熟的软件工具链能力外溢,形成CodeArts软件开发生产线,实现了端到端的工具自主研发,并形成一站式的作业平台。

需要强调的是,与目前市场上的软件开发工具相比,CodeArts有着自己独特的竞争优势,究其原因,主要是其融入了华为30多年大规模研发实践的经验,并且所有工具在对外发布之前,都已经在华为内部经过验证。

以测试管理服务CodeArtsTestPlan为例,一直以来,华为持续投入质量建设,把产品开发、测试等全生命周期的流程和标准固化至工具平台中,所以CodeArtsTestPlan自然也沉淀了华为多年高质量测试工程方法与实践,并发展出了启发式测试策略与设计、亿级测试资产管理、内置 IPD 测试流程与规范、全方位测试质量评估、测试双向追溯这五大特性。CodeArtsTestPlan也得以实现测试全流程标准化、测试资产复用及基线化、测试端到端过程动态实时监控,保障测试过程可信,持续助力客户产品高质量交付。

截至2022年年底,CodeArtsTestPlan已经高效支撑华为超过4万测试人员的测试作业,测试用例月执行超过2亿次,月API调用量超过 12 亿次,累计管理超过10亿测试用例,覆盖华为终端、网络、云计算、芯片、汽车等大规模复杂业务场景。

从挑战中来,到实践中去,并最终沉淀为产品能力的外溢,华为显然已经摸索出了一条构建和进化中国软件开发工具生态的蹊径。

APM登场:CodeArts持续进化,加码软件开发工具生态

当前,企业数字化转型和业务互联网化逐渐加深,企业对应用的高可用、可靠性提出了更高的要求。随着企业快速引入云原生、微服务、分布式等技术,业务规模和运维管理对象数量成倍增加,服务之间的依赖、调用关系愈发复杂。一方面企业享受着开发效率指数提升的红利,同时也在承受着故障定位成本居高不下的痛楚。

由于传统的监控只覆盖了基础设施、中间件、业务指标相关的观测能力,缺少深入代码级的性能监控和对用户的真实体验感知,给开发者、运维性能分析、故障定位和恢复带来了极大的困难和挑战。

权威数据显示:每100毫秒延迟会使销售额下降1%,每一秒钟服务器延迟会导致收入下降2.8%。例如,某著名搜索服务结果页面从100毫秒放缓到400毫秒,会使收入流失4500万到1.35亿美元。由此可见,全面掌控、感知应用性能和用户体验已经变得愈发重要,甚至关系到商业公司生死存亡和社会影响。

具体到软件,众所周知,当今的软件系统通常是大规模、分布式的,由许多不同的组件组成,因此管理和监测这些系统的性能是非常重要的。在这种情况下,APM成为了一种非常重要的软件开发工具。其功能主要体现在以下几个方面。

首先检测和报告应用程序中的性能问题,例如请求延迟、错误频率等等。开发者可以利用这些报告,确定性能问题的瓶颈所在,并在此基础上优化应用程序的性能;其次具有代码跟踪和调试功能,开发者可以通过这些功能来分析代码执行过程中的问题,并及时进行修复,从而大大缩短故障排除的时间,提高应用程序的可靠性和可维护性;第三提供用户行为分析,而开发者可以通过分析用户行为来了解用户使用应用程序的情况,并针对性地优化应用程序的功能和性能,从而提高用户体验;最后,具备自动化性能监测和报告功能,开发者可以利用这些报告,快速定位和修复性能问题,而不需要手动检测和排除问题,从而提高开发者的生产力。

以近日发布的华为云全链路应用性能管理服务CodeArts APM为例,其为华为内部百万微服务提供应用性能监控,帮助研发人员日常性能诊断、故障定位和排查,通过使用CodeArts APM实现现网故障1分钟感知、5分钟定界、10分钟恢复能力的构筑,有力的支撑了华为云、终端、车、能源等各类型产品的应用性能管理和日常运维保障。

与其他CodeArts产品一样,华为云将内部多年积累的应用性能管理能力沉淀到CodeArts APM,使得该工具具备全链路应用性能监控,提供从用户到代码层面的监控;前端性能监控,全面感知终端用户体验;内置资源管理服务CMDB,解决海量资源对象与应用的管理难题;自动发现应用访问拓扑关系,分钟级快速定位故障以及分布式调用追踪,深入代码级的性能诊断和优化5大特性。

而正是得益于上述特性,华为云CodeArts APM如今已广泛应用于电力、物流、社保、汽车等领域,帮助企业提升用户体验,发现应用性能瓶颈,提升问题定位及处理的效率。

如深圳某知名物流企业通过使用华为云CodeArts APM,故障定位的平均耗时从120分钟降至5分钟,平均故障恢复时长从60分钟下降至10分钟,极大地提升了故障处理的效率,成为服务运维保障的利器。

需要说明的,软件开发工具生态是一个持续进化、不断扩大的过程。具体到华为CodeArts,随着市场和用户的需求,其自身的产品也在不断推出中。

例如在上述APM之后,近日,CodeArts PerfTest全新上线,且已广泛应用于金融、车企、互联网、政企等领域,帮助企业预估性能容量基线,合理利用资源,提升服务稳定性,为企业发展夯实基础。

写在最后:综上,我们知道,软件开发工具其实是一个非常复杂和庞大的系统,它涉及到多个领域和技术,需要各种工具之间的协同和集成,才能最大限度地发挥其效益。而从CodeArtsReqCodeArts APM,再到最新上线的CodeArts PerfTest,我们看到,CodeArts已经能够提供完整的应用开发、测试、部署、管理、运维等全生命周期服务,涵盖了应用开发、DevOps、微服务架构、分布式部署、持续集成与交付、智能运维等多个领域,且在不断进化,在有助于扩大中国软件开发工具生态圈的同时,还会不断提高中国软件产业的技术水平和竞争力,促进中国软件产业的转型升级,推动数字经济的发展。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部