在一个 CI 工具链上配置多个应用程序

通过 Continuous Integration (CI) 运行服务产品时,请考虑将所有产品微服务或组件整合到单个公共工具链中,而不是管理每个存储库的多个工具链。

要配置 CI 管道拉取请求(PR)管道 以用于多个应用程序的存储库,很简单。 使用以下步骤和更改来启用多个应用程序。

工具链定制

通过将工具链添加到多个应用程序并增加其功能来定制工具链。 下面是具体步骤:

  1. 为要在工具链管道上构建的每个应用程序添加 GitHub 工具集成。
  2. 针对可针对特定应用程序配置的任何额外 问题库存证据 存储库添加更多 GitHub 集成。
  • 请参阅文档页面和最佳实践,以了解应用程序是否需要这些额外的存储库。

  • 子系统是一组相互依赖的关联服务,它们共同开发并部署。

    • 单个子系统内的服务必须共享一个共同的库存库和证据库。 每个子系统必须在其库存库与证据库之间保持1:1的对应关系。 跨多个存储库的证据检索不被支持,因为这会扩大搜索范围并增加数据冲突的风险。
    • 您还可以将多个子系统分组,使其共享相同的库存和储物柜。
    • 示例: 将相关服务(如 authuser-profile)归入一个子系统。 该模型支持在 Continuous Delivery 环境中进行可扩展的微服务管理。
  • 应用程序 存储库还可以充当其自己的问题存储库。 仅当在工具集成上启用了 GitHub 问题选项时,这才适用。

  • 库存 存储库必须足以作为用于记录构建记录的单个合并存储库,因为这些记录已被 app-name 划分,只要该参数不同,任何内容都不会丢失或混淆。 虽然您可能希望查阅 库存文档 以了解有关如何处理此存储库的想法,因为其主要功能是帮助支持持续部署管道中的部署。

  1. 设置 IBM Cloud® Object Storage 存储区。

    IBM Cloud Object Storage 是管道证据工件的首选证据锁定程序方法,并且是审计合规性所必需的。 对引入到 CI 工具链中的每个应用程序使用相同的 Object Storage 存储区。 此外,在将 CI 工具链与 CD 或 CC 工具链集成时,请复用相同的 Object Storage 存储区。

  2. 可选: 额外的 HashiCorp 保险库文件集成。

    由于 HashiCorp 保险库文件工具集成仅支持一条路径,因此根据配置 HashiCorp 保险库文件密钥的方式,您可能需要更多路径。 不同的应用程序可能需要彼此不同的凭证或其他凭证。

CI 和 PR 管道定制

通过使用以下步骤配置 CI 和 PR 管道来对其进行定制:

  1. 为每个应用程序创建 Git 触发器。

    • 复制现有触发器以在创建触发器时保存一些 tedium。
    • 确保每个触发器都指向所需的 GitHub 存储库和分支。
    • 确保设置了以下触发器属性:
      • app-name (文本): 应用程序名称在不同应用程序之间必须唯一。 这是因为在库存中使用应用程序名称,DevOps 洞察以及其他应用程序名称作为放置和记录工件时的唯一标识。
      • cos-bucket-name 应用程序证据所在 Object Storage 存储桶的名称。
  2. 每个应用程序的环境属性更改。

    • 这是需要更改为每个应用程序的不同值的可能环境属性的列表。 这可以通过使用管道触发器上的触发器属性来完成; 这将使用您自己选择的值覆盖环境属性。
      • app-name (文本): 应用程序名称在不同应用程序之间始终需要唯一,因为在放置和记录工件时,会在库存和 DevOps 洞察等中使用应用程序名称作为唯一标识。
      • cos-bucket-name 应用程序证据所在 Object Storage 存储桶的名称。
      • repository (文本): 此参数控制克隆到管道的应用程序存储库,并充当各种合规性和安全任务的 CI 和 PR 管道的目标。
      • 可选项:evidence-repo (文本):作为应用程序证据锁的 repo 的 URL。
      • 可选项:incident-repo (文本):作为应用程序的问题库的 URL。
      • 可选:inventory-repo (文本):URL 作为应用程序库存仓库的仓库。
  3. optional step 为每个应用程序设置手动触发器。

    • 在技术上,您只需要一个手动触发器,因为它的属性可以在调用时进行编辑,但团队可以使用预先编写的手动触发器来保存一些步骤,以编写应用程序之间的所有可能的小差异。
  4. optional step 为应用程序创建计时器触发器。

    • 最好经常重新构建和重新验证应用程序,这样您就可以持续关注任何合规性和漏洞问题以及任何构建问题。
    • 配置触发器属性的方式与配置手动触发器的方式相同,因为计时器触发器只是计时器上的手动触发器。
    • 使 cron 作业相互错开,否则可能会使工作程序集群超负荷,并且您的作业可能会遭受增加的构建时间或阶段之间的延迟。

有关可以在管道触发器上或环境属性内设置的其他属性的信息,请参阅 管道参数目录