火山引擎构建加速服务正式发布!
近日,火山引擎正式发布构建加速服务 Build Cloud Service,该能力源自字节跳动内部工程开发实践,以无侵入的方式大幅度提升大型复杂软件项目的编译构建速度,提升了开发迭代效率。
来源 | 火山引擎云原生团队
火山引擎持续交付 CP 提供了构建加速服务 Build Cloud Service,将字节跳动内部沉淀多年的编译构建实践进行产品化输出。通过分布式缓存、分布式编译等能力加持,该服务能够极大提升编译构建的效率,大大降低编译时间。目前,构建加速服务提供了无侵入和兼容 Bazel 两种产品形态供用户选择。
功能亮点
源代码的编译是一个非常耗时的过程,尤其是在复杂的大型项目中,编译整个项目需要耗费很长时间。经过系统而细致的设计,构建加速服务可以将项目的源文件编译任务从单台机器分散到多台机器上,单个项目将能够享受到云端分布式编译集群的强大力量,在最短时间内完成编译构建任务。
构建加速服务能够利用分布式缓存机制实现增量编译。在编译一个源文件时,构建加速服务会通过一系列计算判断该源文件是否需要真正调用编译器进行复杂的全流程编译。如果满足若干条件,构建加速服务会直接从云端分布式缓存系统获取编译产物,该过程的耗时比编译器本身编译要短很多。通过最小化需要编译的源文件数量,构建加速服务可以提升整个编译效率。
构建加速服务的拦截器机制设计巧妙,使用户可以获得无侵入式的使用体验,其操作与往常的编译构建没有区别。这意味着大型复杂项目可以在不做任何更改的情况下应用构建加速服务,极大地降低了使用门槛。拦截器机制能够无成本地将构建加速服务集成到现有的构建流程中,并且不会对用户的代码或项目结构造成任何影响。因此,用户可以像平常一样进行编译构建操作,而无需进行任何额外的配置或更改。
适用场景
构建加速服务致力于为编译构建时间极长的大型复杂项目赋能,这些项目的编译构建时间动辄以小时计,严重影响了企业创新的速度。
构建加速服务采用无侵入的使用方式,目前可为由 C/C++/Objective-C 语言开发的项目提速。Bazel 使用方式则不受语言框架等限制。构建加速服务在车载操作系统、大型移动 APP、游戏服务以及嵌入式开发等领域都有广阔的应用前景。
大型安卓 APP 通常需要进行大量的编译和构建操作,这些操作可能会占用大量的时间和资源。使用构建加速服务可以有效地加速这些构建过程,从而提高开发效率和生产力。字节跳动内部广泛使用构建加速服务来提升 APP 的开发迭代效率。
以基于 AOSP 11 (Android Open Source Project)开发而来的 Pico 为例,其构建时间由 31 分钟降至 16 分钟,效率提升达到 50%。
自动驾驶技术,可以说是当下汽车产业新技术发展的风口,众多的汽车企业纷纷投入其中,以抢占市场先机。这是一项高度复杂的技术,其代码组织结构往往由数百个子项目组成。使用构建加速服务可以有效地加速自动驾驶系统的开发和测试过程,从而提高开发效率和可靠性。
以开源自动驾驶项目 Apollo 为例,在适配了 Bazel 加速方式后,编译效率得到了令人惊艳的提升,编译时间从 55 分钟降低至 1 分钟左右。
感兴趣的企业用户可以扫码联系我们,开通并感受全新编译构建体验!
扫码咨询
火山引擎云原生团队主要负责火山引擎公有云及私有化场景中 PaaS 类产品体系的构建,结合字节跳动多年的云原生技术栈经验和最佳实践沉淀,帮助企业加速数字化转型和创新。产品包括容器服务、镜像仓库、分布式云原生平台、函数服务、服务网格、持续交付、可观测服务等。