Case Studies

Cellebrite

Cellebrite 极大地提高了构建和打包速度,将整体构建时间缩短了 70%

Cellebrite概述

Cellebrite Ltd. 是零售和法医市场移动设备数据提取方面的市场领导者。该公司采用了微软的 Team Foundation Server,并使用了其大多数功能:源代码控制、工作项跟踪、自动化构建、报告和项目管理等。该公司的源代码涉及几百个独立的 Visual Studio 项目,其中大约 80% 为原生 C++, 20% 基于 C。

难点

流程变更 – 使开发团队转而采用门控签入方法。在增量构建执行成功之前,不能进行代码签入。在门控签入方法中,必须确保最新版本始终通过编译。该过程每天都会由每位开发人员执行多次。如果该过程耗时过长,开发人员将倾向于推迟签入,或在确保其当前签入已经通过之前,开始处理其他任务;他们可以直接等待其完成,但这会大大降低生产力。对于 Cellebrite 而言,增量构建耗时 5 – 6 分钟。其目标是将该过程缩短至大约 1 分钟。

打包:Cellebrite 拥有大量客户,每一个客户都要求使用单独品牌和许可。

因此,该公司必须单独打包和发布大量终端产品。签入任务可能在编译过程通过,但在打包过程中失败。Cellebrite 的打包过程耗时 2 小时。因此,开发人员会避免验证是否是他们的签入导致了打包过程失败。他们面临的挑战是,在不到 10 分钟内为开发人员提供一个可测试的安装包。

解决方案

Cellebrite 采用 Incredibuild 并行处理两个漫长而复杂的团队构建过程:

  •  编译: – 从源代码生成可执行代码。
  • 打包: – 从编译后的可执行代码生成最终产品安装包,并针对个体客户进行品牌和许可

Cellebrite 已经彻底改造了其构建流程。该公司正在使用微软 TFS,并通过 Incredibuild 进行加速,以简化其开发流程。在过去,发布针对所有客户的单个产品耗时几个小时,而现在,该公司可以在不到一个小时内完成整个发布周期。此外,新标准是,个体开发人员可进行代码签入,并在不到 10 分钟的时间内收到可进行测试的安装包。这导致开发人员和 QA 工程师们对自己的构建流程的看法发生了重大转变。

益处

没有 Incredibuild 的并行处理能力,就不可能实现开发流程的加速和从而带来的改善。Incredibuild 大幅缩短了构建和打包阶段所需的时间:

  • 发布周期优化 – 所有定制安装包的完整产品发布周期过去需要几个小时,而现在的耗时不到一个小时。这极大地缩短了上市时间,并节省了主要产品发布的工作量。
  • 显著的流程改进 – 只需少量精力,便可完成最小量代码签入,并进行单独测试。如果发现某个具体的安装包存在错误,只需丢弃即可,新构建的安装包会将其取代。
  • 缩短构建和打包时间 – 精简的 TFS 流程,支持可扩展的持续集成平台,并让敏捷开发切实可行。

Incredibuild 让我们大幅缩短了我们的整个 Microsoft® TFS 开发流程。现在我们的敏捷开发行之有效,且可进行扩展。没有 Incredibuild 的并行处理能力,就不可能实现加速和从而带来的改善。

Yuval Mazor

高级 ALM 架构师

实现效果

编译
17分钟
6分钟
包装
2小时
50分钟