首页> 外文会议>IEEE/ACM International Conference on Automated Software Engineering >Changing microsoft's build: Revolution or evolution
【24h】

Changing microsoft's build: Revolution or evolution

机译:改变微软的架构:革命还是进化

获取原文

摘要

Tens of thousands of Microsoft engineers build and test hundreds of software products several times a day. It is essential that this continuous integration scales, guarantees short feedback cycles, and functions reliably with minimal human intervention. During the past three years TSE's charter has been to shorten this cycle time. We went after this goal in two ways: Evolution via CloudBuild and Revolution via Concord. CloudBuild is a build service infrastructure, now being used by all major product groups in Microsoft, like Azure, Bing, Office, SQL except for Windows. CloudBuild addresses all aspects of a continuous integration workflow, like builds, test and code analysis, but also drops, package and symbol creation and storage. CloudBuild supports multiple build languages as long as they fulfill a coarse grained IO based contract. CloudBuild uses content based caching to run build-related tasks only when needed. Lastly, it builds on many machines in parallel. The speed ups of build and testing range from 1.2x to 10x. CloudBuild aims to rapidly onboard teams and hence has to support non-deterministic build tools and specification languages that under-declare dependencies. CloudBuild, being a reliable build service in the presence of unreliable components, currently achieves service availability better than 99%. Windows went a different path. Their past build exhaust was so massive that building Windows in the cloud and bringing the build results back for testing on corp.-net. was considered infeasible. So they decided to move to a new build language, codename Concord. By construction, Concord guarantees reliable builds, no over-build, and allows for efficient distribution. Adopting Concord has led to immense performance improvements, we have seen up to 100X speedup for Windows builds. But the path has been long and rocky, since it not only requires a substantial rewrite of existing build logic, but also all related developer and build lab processes have to change. Whether evolution or revolution is the right path forward - the verdict is still out.
机译:每天数以万计的Microsoft工程师几次构建和测试数百种软件产品。这种持续集成的规模,确保短的反馈周期并在最少的人工干预下可靠地运行至关重要。在过去三年中,TSE的章程一直在缩短这一周期。我们以两种方式实现了这一目标:通过CloudBuild进行演变和通过Concord进行革命。 CloudBuild是一种构建服务基础结构,除Windows之外,Microsoft的所有主要产品组(例如Azure,Bing,Office,SQL)现在都在使用它。 CloudBuild解决了持续集成工作流程的各个方面,例如构建,测试和代码分析,还涉及了放置,打包和符号创建与存储。 CloudBuild支持多种构建语言,只要它们满足基于IO的粗粒度合同即可。 CloudBuild仅在需要时才使用基于内容的缓存来运行与构建相关的任务。最后,它可以在许多并行机器上构建。构建和测试的速度从1.2倍提高到10倍。 CloudBuild旨在迅速加入团队,因此必须支持未充分声明依赖关系的不确定性构建工具和规范语言。 CloudBuild是存在不可靠组件的情况下的可靠构建服务,目前可实现超过99%的服务可用性。 Windows走了一条不同的道路。他们过去的构建工作量巨大,以至于在云中构建Windows并将构建结果带回以在corp.-net上进行测试。被认为是不可行的。因此,他们决定改用代号为Concord的新构建语言。通过构造,Concord保证可靠的构建,不会过度构建,并允许有效的分发。采用Concord带来了巨大的性能提升,我们发现Windows构建的速度提高了100倍。但是这条路是漫长而艰难的,因为它不仅需要大量重写现有的构建逻辑,而且所有相关的开发人员和构建实验室过程也都必须改变。进化还是革命是正确的前进之路-判决仍未达成。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号