0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

唯快不破!华为云发布分布式编译构建系统CodeArts Build

科技怪授 来源:科技怪授 作者:科技怪授 2023-03-24 15:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在数字化时代,软件编译构建效率关系着企业能否快速响应客户需求,提供更好的客户体验。

以汽车行业为例,随着汽车数智升级的加速,主机厂商往往通过OTA模式快速更新软件,以带给客户更佳的用车体验。

智能化、高体验的车载软件已成为汽车的核心竞争力,然而车载软件通常包含上亿行代码,一次车载软件的编译集成需要数小时,如何提升车载软件的编译构建效率已成为汽车软件竞争力构筑的关键路径。

2月14日,华为云发布分布式编译构建系统CodeArts Build,旨在撑企业实现高效的软件开发,缩短产品上市周期,帮助企业的软件产品快速形成关键竞争力。

如何提升软件编译构建效率?

编译构建效率的提升是个系统工程,需要构建工程、构建工具、构建环境等各个方面协同优化。通过自动化的构建过程、高效的构建机制、最大化共享的基础设施,才可实现端到端的编译构建效率提升。

第一、将编译构建的过程自动化

软件是将源代码及其所依赖的二进制文件等,通过编译、链接、打包等过程形成的二进制文件。通过持续集成实现编译构建的自动化,已在业界普遍推行。软件生成过程的自动化能够减少人工干预和重复操作,实现软件的快速验证,更快地发现错误并修复。

“持续集成是一种软件开发实践,团队成员频繁地集成他们的工作,通常每人每天至少集成一次,每次集成通过自动化构建(含测试)能够更高效地查找错误,使团队更加迅速地开发软件。

软件开发大师Martin Fowler”

第二、将自动化的每个环节提速

保持快速的构建,每减少一分钟的构建时间,就为每个开发人员在每提交时节省一分钟。

编译构建通常包含如下过程:

第一步,将代码下载到构建服务器;

第二步,依赖二进制下载到构建服务器;

第三步,编译、链接、打包;

第四步,归档软件包或镜像。

每个环节都可能成为构建效率的瓶颈,从而导致软件产品开发迭代效率低、发布周期长。如车载软件往往基于AOSP(Android Open Source Project,Android开放源代码项目)开发,代码仓多达数百甚至上千个代码量达千万行甚至亿行规模,一次软件构建长达数小时。

提升代码下载效率和编译效率,是提升软件开发迭代效率、缩短软件发布周期的关键。

第三、最大化地共享基础设施

在企业内部的开发场景中,各个开发团队往往独自搭建基础设施,每个团队或个人独占自建的构建资源,导致有的团队构建资源冗余而浪费,有的团队构建资源不足而开发效率低下。

通过云化将基础设施的算力充分共享,实现统一调度,是解决上述问题的最有效方式,不但能更加高效地构建基础设施,也可大幅节省资源。

由此可见,云化是编译构建系统的不二选择。

华为云CodeArts Build让编译构建极速“狂飙”

在华为的敏捷软件开发历程中,软件的编译构建一直被重点关注。

从最初始的单机自动化构建、到多机自动化构建、再到云化的分布式构建,如今,软件的高效编译构建已很好地支撑了华为无线、数通、车、计算、存储、终端等各个业务的高速发展,实现更高效的软件发布。

华为云CodeArts Build当前已支撑华为6万研发人员的软件高效集成,每日构建任务量达77万次,集中弹性调度24.8万台构建服务器。通过代码按需下载、云化、分布式、精准增量、弹性调度等关键技术,端到端加速软件集成过程,让开发人员编译结果分钟级反馈、版本包30分钟集成、亿级代码全量构建1小时完成。

具体来看,华为云CodeArts Build的极速构建能力体现在如下六个方面:

环境搭建快:开箱即用,环境无感知,快速搭建持续集成系统

华为云CodeArts Build内置130多种构建环境、30多个模板、20多个插件,用户开箱即用。同时,CodeArts Build支持多平台、多系统构建,包括x86、ARM等计算架构,以及Linux、Windows、MacOS等操作系统

通过内置上述的跨平台环境,可消除人工搭建编译服务器、配置持续集成软件等环节,帮助用户快速完成持续集成系统的搭建。

代码下载快:基于文件内容指纹的代码缓存技术,让代码极速下载

随着产品的规模增加,产品的代码量也会急剧膨胀,构建过程中的代码下载时间也变得越来越长。

以AOSP项目13版本为例,代码量为140G,千兆带宽全量下载一次代码需要20分钟左右,代码下载时长成为影响构建效率的关键瓶颈之一。如果将代码固定到构建执行机上,每次构建增量下载,又可能会存在代码不一致或代码在构建过程中被污染的问题。

华为云CodeArts Build提供代码下载加速技术,通过对源码文件树进行特征识别码计算,基于构建专用的分布式文件存储系统,对源码进行权限加密和去重存储,实现文件一次缓存多次复用,大大减少了从代码仓下载文件的次数。

同时,通过VPC内的专用网络通道,高效地从缓存复用代码,从而实现构建时代码的高效下载。

编译速度快:大规模分布式、精准增量编译,突破单机物理限制,构建效率成倍提升

大型嵌入式项目通常包含数量庞大的模块或组件,如车载软件、基站、智能终端、存储产品等,且C/C++代码量巨大,上千万行甚至上亿行,编译执行时间长是阻碍产品迭代开发效率提升的关键因素。传统的软件开发构建,一般在单机上编译,受限于编译服务器的性能,一次复杂软件的全量构建时间往往长达几小时甚至数十小时。

华为云CodeArts Build提供分布式编译、精准增量等技术,突破单台机器的性能瓶颈,通过云的大规模弹性资源实现C/C++语言的编译加速。同时通过共享的分布式缓存和精准的依赖识别,实现编译命令的按需分发,在节约成本的基础上成倍提升构建效率。

组件集成快:提供BuildFlow编排模式,多任务并行构建,实现多组件的高效集成

大型软件项目往往涉及到多个团队协作开发,同时软件构建时也可能涉及多种计算架构和多种操作系统。

如华为5G基站产品,一次软件构建,需要集成来自4条产品线、20多个团队提供的组件,并且需要同时在x86和ARM计算架构上集成出包。各个组件间基于软件架构的设计,形成有向无环图,需要一次完成软件包的集成。

针对这一涉及到多个团队协作、多种计算架构、多种操作系统和构建工程存在依赖的复杂构建场景,华为云CodeArts Build提供了BuildFlow编排模式,开发或集成工程师基于多组件依赖关系的按需编排,可让构建任务按照任务依赖关系以有向无环图的方式构建。

通过高效、灵活的BuildFlow构建模式,不仅可以满足复杂的构建要求,还可以将现有的构建任务以模块化的方式进行拆分,通过多任务并行构建,实现软件包的快速构建集成。

poYBAGQdT0uALfiWAAFjwtn_fQM455.png

多代码仓下载快:提供基于Repo工具的多仓下载模式,实现多代码仓高效集成

智能终端、车载软件、物联网设备等嵌入式软件领域,通常基于鸿蒙、AOSP等系统开发,一次构建需要同时集成数百甚至上千个代码仓,多代码仓的集成下载效率至关重要。

华为云CodeArts Build集成Repo下载工具,用户只需进行简单配置即可实现多个代码仓的联动集成下载。同时也可集成代码缓存技术,实现多个代码仓的联动高效下载。

资源利用效率高:支持企业范围内的资源共享,高效利用构建资源

华为云CodeArts Build通过统一弹性调度华为无线、数通、光、车、计算、存储等各产品线的构建资源,实现企业级数十万台构建资源的共享。相比各产品、项目团队自建、独占构建资源,可节省70%构建资源。

同时,对于不同产业的不同产品研发场景,提供对应的编译构建算力,用极低成本实现高效的研发作业。通过实践外溢,可帮助企业实现构建资源的高效利用。

poYBAGQdT02AajiYAAFdm_7JdUs528.png

华为云CodeArts Build已支撑华为公司云计算、网络、终端、芯片、汽车等各个业务的高速发展。

例如,CodeArtsBuild通过极致的构建加速能力,帮助光产品线各产品亿级代码全量构建时长缩短20倍,组件间集成周期从1周缩短到1小时;通过云的弹性调度能力,实现构建资源的按需获取和低成本构建,构建服务器消耗从3.6万台降低到1万台。

面向未来,华为云CodeArts Build将基于AI决策实现更为高效、精准的弹性调度能力,面向更多复杂语言的软件产品,实现多语言的编译构建框架,与客户、伙伴和广大开发者一起,不断书写软件世界的新篇章。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分布式
    +关注

    关注

    1

    文章

    1116

    浏览量

    76753
  • 华为云
    +关注

    关注

    3

    文章

    2837

    浏览量

    19396
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI Ceph 分布式存储教程资料大模型学习资料2026

    。如何构建高性能、高吞吐、高可扩展的 AI 分布式存储系统,已成为解锁大模型基建能力的核心科技命题。这不仅关乎数据存得下、读得,更直接决定了 GPU 集群的利用率与模型训练的最终效率
    发表于 05-01 17:35

    NetApp与Google Cloud深化合作:重构分布式数据基础设施的“安全主权”新范式

    NetApp与Google Cloud签署四年期企业级协议,通过NetApp存储解决方案与Google Distributed Cloud(GDC)的深度集成,为全球企业构建“全栈物理隔离+内建安全”的分布式数据基础设施,尤其
    的头像 发表于 04-27 11:04 1382次阅读

    西格电力微电网总体架构设计:分层分布式控制体系构建

    运行的“骨架”,统筹各类单元的布局与联动;分层分布式控制体系是系统运行的“神经中枢”,决定着各单元协同调控的效率与精度。二者相辅相成、深度融合,构建起“架构支撑控制、控制优化架构”的良性循环。《微电网
    的头像 发表于 03-31 11:44 634次阅读
    西格电力微电网总体架构设计:分层<b class='flag-5'>分布式</b>控制体系<b class='flag-5'>构建</b>

    深入解析RK平台编译核心:build.sh的知识点、调试技巧与开发价值

    在瑞芯微(RK)Linux SDK 开发中,build.sh是整个编译构建系统的“入口中枢”—— 它统一管理环境配置、命令解析、模块构建与日
    的头像 发表于 02-03 16:02 3976次阅读
    深入解析RK平台<b class='flag-5'>编译</b>核心:<b class='flag-5'>build</b>.sh的知识点、调试技巧与开发价值

    机载系统智能化的基石:分布式网络控制系统与容器虚拟化技术的深度融合实践

    创新的“-边-端”分布式智能架构,该架构深度融合了分布式综合模块化航电系统、边缘计算、容器化软件及确定性网络等前沿技术。
    的头像 发表于 01-27 09:13 910次阅读
    机载<b class='flag-5'>系统</b>智能化的基石:<b class='flag-5'>分布式</b>网络控制<b class='flag-5'>系统</b>与容器虚拟化技术的深度融合实践

    智慧能源进万家:分布式光伏运维平台如何助力构建居民级微电网生态系统

    acrelgy=188+6O99&OO2O=安科瑞顾月 摘要:在当今追求绿色可持续发展的时代,越来越多的企业选择部署分布式光伏系统,既响应环保号召,又能降低用电成本。然而,随着分布式光伏项目规模
    的头像 发表于 12-17 17:36 797次阅读
    智慧能源进万家:<b class='flag-5'>分布式</b>光伏运维<b class='flag-5'>云</b>平台如何助力<b class='flag-5'>构建</b>居民级微电网生态<b class='flag-5'>系统</b>

    分布式光伏“四可”装置:可观、可测、可控、可调的技术内核全解析

    分布式光伏“可观、可测、可控、可调”四可装置,精准切中并网核心痛点,通过全维度功能构建,成为推动分布式光伏从“被动并网”向“主动协同”转型的关键支撑。
    的头像 发表于 11-24 11:20 790次阅读
    <b class='flag-5'>分布式</b>光伏“四可”装置:可观、可测、可控、可调的技术内核全解析

    分布式光伏运维局之道:AcrelCloud-1200平台如何重塑发电效益新标杆

    分布式光伏装机将达 1.4 亿千瓦 ,较 2020 年增长超 300%。国内市场同样火热,2024 年前三季度新增分布式光伏装机 8522 万千瓦,占光伏新增总量的 53%,从居民屋顶到工商业园区,分布式光伏正
    的头像 发表于 10-10 17:03 957次阅读
    <b class='flag-5'>分布式</b>光伏运维<b class='flag-5'>破</b>局之道:AcrelCloud-1200<b class='flag-5'>云</b>平台如何重塑发电效益新标杆

    【节能学院】Acrel-1000DP分布式光伏监控系统在奉贤平高食品 4.4MW 分布式光伏中应用

    摘要:在“双碳”和新型电力系统建设背景下,分布式光伏接入比例不断提高,对配电网电压、调度运行及调峰等环节造成强烈冲击。本文设计包含平台层、设备层二层架构体系的分布式光伏管控平台,以及小容量工商业
    的头像 发表于 08-23 08:04 3762次阅读
    【节能学院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏监控<b class='flag-5'>系统</b>在奉贤平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中应用

    分布式光伏发电监测系统技术方案

    分布式光伏发电监测系统技术方案 柏峰【BF-GFQX】一、系统目标 :分布式光伏发电监测系统旨在通过智能化的监测手段,实现对
    的头像 发表于 08-22 10:51 3607次阅读
    <b class='flag-5'>分布式</b>光伏发电监测<b class='flag-5'>系统</b>技术方案

    AcrelCloud-1200 分布式光伏运维平台 用于居民屋顶光伏发电

    摘要:在当今追求绿色可持续发展的时代,越来越多的企业选择部署分布式光伏系统,既响应环保号召,又能降低用电成本。然而,随着分布式光伏项目规模的不断扩大,企业在运维管理方面面临着诸多难题。如何管理
    的头像 发表于 08-05 10:48 1262次阅读
    AcrelCloud-1200 <b class='flag-5'>分布式</b>光伏运维<b class='flag-5'>云</b>平台 用于居民屋顶光伏发电

    多电站监管不再难!分布式光伏运维平台的局之道

    安科瑞 王晶淼 Acrel-wjm 摘要:在当今追求绿色可持续发展的时代,越来越多的企业选择部署分布式光伏系统,既响应环保号召,又能降低用电成本。然而,随着分布式光伏项目规模的不断扩大,企业在运维
    的头像 发表于 08-04 16:14 928次阅读
    多电站监管不再难!<b class='flag-5'>分布式</b>光伏运维<b class='flag-5'>云</b>平台的<b class='flag-5'>破</b>局之道

    分布式光伏总出问题?安科瑞分布式光伏监控系统来“救场”

    一、分布式光伏的痛点大揭秘 在 “双碳” 目标的大力推动下,分布式光伏作为绿色能源领域的重要力量,正以前所未有的速度蓬勃发展,越来越多的企业和家庭选择安装分布式光伏系统。然而,随着
    的头像 发表于 07-16 16:50 1032次阅读
    <b class='flag-5'>分布式</b>光伏总出问题?安科瑞<b class='flag-5'>分布式</b>光伏监控<b class='flag-5'>系统</b>来“救场”

    Ceph分布式存储系统解析

    在当今数据爆炸的时代,企业对存储系统的需求日益增长,传统的集中式存储已经无法满足大规模数据处理的要求。分布式存储系统应运而生,而Ceph作为开源分布式存储
    的头像 发表于 07-14 11:15 1352次阅读

    双电机分布式驱动汽车高速稳定性机电耦合控制

    摘要:为了利用所设计的双电机防滑差速驱动系统来提高分布式驱动汽车的动力学性能,在前期同轴耦合驱动控制理论研究的基础上,开展该车的高速稳定性机电耦合控制研究。建立并验证包含所设计驱动系统在内的
    发表于 06-18 16:37