SRE Book摘录:Rapid系统

Google的持续构建和部署系统叫Rapid,它管理软件生命周期的各个状态,包括构建、分支、测试、打包、部署。下图展示Rapid系统的各个主要组件。它使用名为blueprints的配置文件进行管理。blueprints用google内部的配置语言编写,用来定义构建和测试目标、部署规则、管理信息(例如项目拥有者)。基于角色的访问控制列表决定谁能执行Rapid项目的哪些特定操作。

rapid

Each Rapid project has workflows that define the actions to perform during the
release process. Workflow actions can be performed serially or in parallel, and a
workflow can launch other workflows. Rapid dispatches work requests to tasks run‐
ning as a Borg job on our production servers. Because Rapid uses our production
infrastructure, it can handle thousands of release requests simultaneously.
A typical release process proceeds as follows:

  1. Rapid uses the requested integration revision number (often obtained automati‐
    cally from our continuous test system) to create a release branch.
  2. Rapid uses Blaze to compile all the binaries and execute the unit tests, often per‐
    forming these two steps in parallel. Compilation and testing occur in environ‐
    ments dedicated to those specific tasks, as opposed to taking place in the Borg job
    where the Rapid workflow is executing. This separation allows us to parallelize
    work easily.
  3. Build artifacts are then available for system testing and canary deployments. A
    typical canary deployment involves starting a few jobs in our production envi‐
    ronment after the completion of system tests.
  4. The results of each step of the process are logged. A report of all changes since
    the last release is created.

Rapid allows us to manage our release branches and cherry picks; individual cherry
pick requests can be approved or rejected for inclusion in a release.

此条目发表在Common分类目录,贴了标签。将固定链接加入收藏夹。