在eBay处理数千个库发布的轻量级分布式架构

On eBay, there are lots of scenarios that require a distributed system. A typical use case is when a large amount of libraries are release. There are more than 3,000 legacy libraries still built by the old build system based on Ant, which is no longer supported. These libraries are now being migrated to a mavenized source code following standard maven development experience. After code migration, a new release solution is needed to support the periodical release of all libraries, which needs to be lightweight, scalable, stable and fast. To achieve this, the following challenges should be resolved.

在eBay上,有很多场景需要一个分布式系统。一个典型的用例是当大量的库被发布时。有超过3000个传统库仍由基于Ant的旧构建系统构建,该系统已不再支持。现在,这些库正按照标准的maven开发经验被迁移到maven化源代码中。代码迁移后,需要一个新的发布方案来支持所有库的周期性发布,这个方案需要做到轻量级、可扩展、稳定和快速。为实现这一目标,应解决以下挑战。

Challenges

挑战

The prerequisite of one library release is that all the dependencies of it must have been released already, but considering the large number of candidate libraries and the complicated dependency relationships in each other, it will cause a considerable impact on release performance if the libraries release sequence cannot be orchestrated well. 

一个库发布的前提条件是它的所有依赖关系必须已经发布,但考虑到大量的候选库和彼此之间复杂的依赖关系,如果不能很好地协调库的发布顺序,将对发布性能造成相当大的影响。

At eBay, Jenkins is the standard CI/CD tool to perform maven releases. To make the libraries release more in parallel, multiple Jenkins nodes will get involved. The challenge is to find the optimal Jenkins nodes to stably release more than 3,000 libraries in efficiency and maintain the nodes for a long term usage. So the capability of the release system should be: 

在eBay,Jenkins是执行maven发布的标准CI/CD工具。为了使库的发布更加平行,多个Jenkins节点将参与其中。我们面临的挑战是如何找到最佳的Jenkins节点,以高效率稳定地发布3000多个库,并保持节点的长期使用。所以发布系统的能力应该是。

  • Able to provide maximized in parallel capability to do release based on dependency relationship between libraries;
  • 能够提供最大化的并行能力,根据库之间的依赖关系进行发布。
  • Lightweight and easy to set up, scale and maintain; and
  • 重量轻,易于设置、扩展和维护;以及
  • Stable and fault-tolerant to make the whole release process smoothly.
  • 稳定和容错,使整个发布过程顺利进行。

Solution

解决方案

Pri...

开通本站会员,查看完整译文。

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.124.0. UTC+08:00, 2024-05-02 05:45
浙ICP备14020137号-1 $访客地图$