分布式软件构建第二部分:构建系统如何工作 注:本文英文原文在google开发者工具组的博客上[需要FQ],以下是我的翻译,欢迎转载,但请尊重作者版权,注名原文地址. 上篇文章中提到了在Google,所有的产品都是从头开始构建的.这篇文章会更深入的介绍Google的构建系统[即Blaze]是如何工作的,并介绍让软件构建过程更快的方法.在后续的文章里,我们会解释如何利用这种确定的信息来在大规模集群之上进行分布式的软件构建并在开发者之间共享构建结果. 问题:Google是如何描述驱动构建和测试的依赖关…
注:本文英文原文在google开发者工具组的博客上[需要FQ],以下是我的翻译,欢迎转载,但请尊重作者版权,注名原文地址. 之前两篇文章分别介绍了Google 分布式软件构建系统Blaze相关的为了提供对存储在云端的源码的访问支持而定制的文件系统和构建系统是如何工作的.这篇文章在前两篇文章的基础之上介绍了一个在大规模集群上面分布式高效率执行构建步骤的系统[译者注:就是Blaze].正如你看到的,源文件系统和构建系统的细节对于我们实现快速高效的分布式构建是非常重要的.所以在介绍构建步骤如何分布式执…
注:本文英文原文在google开发者工具组的博客上[需要FQ],以下是我的翻译,欢迎转载,但请尊重作者版权,注名原文地址. 之前的文章,介绍了Google在分布式构建软件过程中,如何把构建过程分发到许多台机器上并复用之前构建的结果来大幅度提高构建的速度.这种分发和复用会凸显出性能瓶颈.尤其是一个大工程的一次完整构建会产出几个G的输出文件,所有的这些文件都需要从云端传回到开发者的机器上.这加重了网络和开发者本地硬盘的负担,延迟和有限的带宽会拖慢构建的速度. 而且,开发者通常不需要访问一次构建的所有…
本文原文在google开发者工具组的博客上[需要FQ],以下是我的翻译,欢迎转载,但尊重作者版权,注名原文地址. 在Google,所有的产品都是在主干上开发的.这样的好处:每个人都可以查看和修改代码,避免了在分支上长时间开发后合并主干时候的痛苦,从源码构建也避免了库之间的二进制兼容问题.Google是跨国公司,这意味着分布在世界各地的办公室会放大下载代码的时间.通过计算依赖关系来限制下载的文件数量,我们成功地减少了代码下载的时间.然而,计算依赖关系也要花时间,而且即使这样改进了,获取源码的时间仍…
简评:原文作者 Fergus Henderson 在 Google 工作了 10 年以上,目前负责 Google 的 text-tospeech 工程小组.有很多书籍或文章会从 商业/管理 等非技术角度来讲 Google 是如何运作的,这篇文档则是从软件工程学的角度来讲 Google 是如何运作的. Google 的成功有很多原因,其中一个重要原因就是 Google 不断积累的.优秀的软件工程实践经验. 本文的目的是梳理并简要介绍 Google 软件开发的核心流程,内容上主要分为软件开发 (So…
自从计算机出现以来,我们一直在尝试寻找计算机存储一些信息的方法,存储在计算机上的信息(也称为数据)有多种形式,数据变得如此重要,以至于信息现在已成为触手可及的商品.多年来数据以多种方式存储在计算机中,包括数据库.blob存储和其他方法,为了进行有效的业务分析,必须对现代应用程序创建的数据进行处理和分…
作者Jack47 转载请保留作者和原文出处 之前博主写了系列文章Google软件构建工具Bazel原理及使用方法介绍.最近使用了一段时间后,觉得这个东西不是一种通用的构建工具,很难对接到情况复杂的大的工程项目里.今天来讲讲为什么博主觉得google bazel构建工具不会大规模流行起来.本文是参考Gradle--另外一个很出名的构建工具--的人对bazel的看法的这篇文章基础上整理而成的 Google bazel想解决什么问题? Bazel是Google内部构建系统Blaze的子集,所以Baze…
/********************************************************************************* * Android manifest 获取源代码 * 说明: * 获取Android源代码,以及使用manifest进行代码管理,这里没有涉及到如何push到 * gitlab仓库. * * 2017-11-22 深圳 南山平山村 曾剑锋 ***********************************************…
目录 BACKGROUND INVESTIGATION I 1. 连续触发的相同 job 构建不会重复入队 2. 连续触发的不同 job 构建会各自入队 3. 参数变动的相同 job 构建将分别入队 4. 允许同时触发构建将有数据错乱的可能 5. 分布式锁强制使得入队或构建触发串行化不可行 INVESTIGATION II FUTHER MORE SUMMARY leoninew 原创,转载请注明来自博客园 BACKGROUND 使用 jenkins rest api 触发的 job 会先进入任…
在Google开源SLAM软件cartographer中,相对<SLAM for dummies>使用了更为复杂.性能更好的Scan匹配与UKF算法,这里简单介绍下cartographer中使用的UKF算法. (一)滤波器参数设定 constexpr static FloatType kAlpha = 1e-3; constexpr static FloatType kKappa = 0.; constexpr static FloatType kBeta = 2.; constexpr st…