IBM Cloud Docs
了解Continuous Delivery的数据可移植性

了解Continuous Delivery的数据可移植性

数据可移植性涉及一套工具和程序,使您能够导出数字工件,以便使用不同的服务提供商或内部软件实施类似的工作负载和数据处理。 它包括复制和存储由Continuous Delivery服务持有的客户自有数据的程序,以及服务用于存储和处理客户自有数据的相关配置的程序。

职责

IBM Cloud服务提供界面和说明,指导您完成在所选位置复制和存储服务客户内容(包括相关配置)的过程。

您有责任使用导出的数据和配置,以便将数据移植到其他基础设施,其中包括

  • 规划和执行在不同云提供商或内部软件上建立替代基础架构,以提供与IBM服务类似的功能。
  • 在替代基础设施上移植所需应用程序代码的规划和执行,包括应用程序代码的调整、部署自动化等。
  • 将导出的数据和配置转换为替代基础设施和经调整的应用程序所需的格式。

要了解有关IBM Cloud®产品在IBM和客户之间的使用责任归属的更多信息,请参阅 IBM Cloud产品的共同责任

有关您对Continuous Delivery 的责任的更多信息,请参阅 您使用Continuous Delivery的责任

数据导出程序

Continuous Delivery提供了导出内容的机制,这些内容在您使用服务时被上传、存储和处理。 此外,Continuous Delivery还提供了导出用于处理内容的设置和配置的机制。 数据检索程序按Continuous Delivery服务的主要组件编排如下。

先决条件

所有数据检索程序都需要足够的访问权限。 更多信息,请参阅 管理资源组中Continuous Delivery用户访问权限管理资源组中工具链的访问权限

某些数据检索程序使用IBM Cloud®命令行界面 (CLI) 或IBM Cloud®API。应用程序接口。 在尝试导出数据之前,请完成以下步骤:

  1. 安装独立的IBM CloudCLI
  2. 打开命令 Shell。
  3. 使用 CLI 获取数据前,请运行 "ibmcloud login 对IBM Cloud® 进行身份验证。
  4. 在调用应用程序接口检索数据之前,运行“export TOKEN=$(ibmcloud iam oauth-tokens | sed 's!^IAM *token: *Bearer *!!') 以获取承载令牌并将其分配给”TOKEN 环境变量。
  5. 调用 API 获取数据前,请将 "REGION 环境变量设置为包含Continuous Delivery实例的区域,以便从中获取数据。 示例:'export REGION=us-south.

下面的一些程序使用开源工具 "curl从 HTTP API 获取数据。 有些程序使用 "jq来处理从 HTTP API 返回的 JSON 数据。 这些工具并非必须使用。 您可以自行决定使用不同的工具或技术来检索和处理数据。

Continuous Delivery服务实例

Continuous Delivery服务实例直接管理授权用户的电子邮件地址,并计算使用和计费指标。 大多数客户所有的数据都由与Continuous Delivery服务实例相关联的工具链和工具处理。

有关在 CD 服务中修改、导出或删除个人数据的相关信息,请参阅 管理Continuous Delivery的个人数据

授权用户电子邮件地址

要检索电子邮件地址列表,请完成以下步骤:

  1. 打开 资源列表
  2. 选择开发人员工具
  3. 单击感兴趣的Continuous Delivery服务实例。
  4. 选择管理>授权用户
  5. 选择并复制电子邮件地址表的内容到剪贴板,然后粘贴到纯文本文件。

有关管理授权用户的更多信息,请参阅 计划限制和使用

工具链和工具集成

Continuous Delivery工具链和工具集成的配置由客户所有的数据组成。

工具链配置

您可以使用工具链 API(特别是 "获取工具链列表"或 "获取工具链 "方法)获取工具链及其配置的列表。 要检索工具链配置数据,请完成以下步骤:

  1. GET https://resource-controller.cloud.ibm.com/v2/resource_groups 来获取账户中的资源组列表。
  2. 对于每个资源组,用 "GET https://api.$REGION.devops.cloud.ibm.com/toolchain/v2/toolchains?resource_group_id=$RG_ID 检索该资源组中的工具链列表。

您还可以使用 全局搜索 API资源控制器 API 来检索工具链资源元数据的子集。

工具集成配置

您可以使用工具 链 API(特别是 "获取绑定到工具链的工具列表"和 " 获取工具 "方法)检索工具集成配置数据。 要检索工具集成配置数据,请完成以下步骤:

  1. 对于特定工具链,使用 "GET https://api.$REGION.devops.cloud.ibm.com/toolchain/v2/toolchains/$TOOLCHAIN_ID/tools 可检索该工具链中所有工具集成的配置详细信息。

无法从Continuous Delivery 获取秘密属性。 工具集成配置的某些属性是机密,如访问令牌、API 密钥和密码。 最佳做法是通过引用秘密存储(如Secrets Manager来配置这些属性。 在这种情况下,API 返回的字符串会引用秘密存储中的属性位置。 如果秘密属性值直接存储在工具集成配置中,则 API 不会返回秘密值,只会返回信息安全值的哈希值。

Delivery Pipeline

Continuous Delivery管道中的客户自有数据分为两类:

  • 客户提供的构成管道配置、管道定义、管道属性、管道触发器和管道运行请求的数据。
  • 流水线生成的数据,即 Tekton 流水线步骤和经典流水线作业执行过程中产生的执行日志和指标。

Continuous Delivery支持两种管道架构:经典和 Tekton。 检索信息的方法各有不同。

Tekton 管道

您可以使用工具链 API 检索集成到工具链中的 Tekton 管道列表。 要检索 Tekton 管道列表,请完成以下步骤:

  1. 对于特定工具链,使用 "GET https://api.$REGION.devops.cloud.ibm.com/toolchain/v2/toolchains/$TOOLCHAIN_ID/tools 可获得该工具链中所有工具集成的列表。
  2. 使用 jq等工具过滤列表,使其只包含管道工具集成,并得出相应的管道 ID。
    • 使用以下命令生成工具链中所有 Tekton 和 Classic 管道的 ID 列表:"curl -s -X GET -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" https://api.$REGION.devops.cloud.ibm.com/toolchain/v2/toolchains/$TOOLCHAIN_ID/tools | jq -r '.tools[] | select(.tool_type_id == "pipeline").id'
    • 使用以下命令生成工具链中所有 Tekton 管道的 ID 列表:"curl -s -X GET -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" https://api.$REGION.devops.cloud.ibm.com/toolchain/v2/toolchains/$TOOLCHAIN_ID/tools | jq -r '.tools[] | select(.tool_type_id == "pipeline" and .parameters.type == "tekton").id'
    • 使用以下命令生成工具链中所有经典管道的 ID 列表:"curl -s -X GET -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" https://api.$REGION.devops.cloud.ibm.com/toolchain/v2/toolchains/$TOOLCHAIN_ID/tools | jq -r '.tools[] | select(.tool_type_id == "pipeline" and .parameters.type == "classic").id'

Tekton 管道配置

您可以通过使用“Tekton 管道 API,特别是”获取 Tekton 管线数据的方法来检索 Tekton 管道的配置,包括其定义、属性、触发器和触发器属性。

要使用经典管道,请参阅 经典管道配置

要检索 Tekton 管道的配置数据,请完成以下步骤:

  1. 对于特定的 Tekton 管道,使用 "GET https://api.$REGION.devops.cloud.ibm.com/pipeline/v2/tekton_pipelines/$TEKTON_PIPELINE_ID 可检索该管道的配置。

该方法的响应不包括管道运行。 要检索管道运行数据,请参阅 Tekton 管道运行

Tekton 管道运行

管道运行数据是管道运行而非配置的结果。 我们认为,使用不同的服务提供商或内部软件实施管道工作负载并不重要。 因此,列入本节只是为了方便,而不是数据可移植性的必要条件。

您可以使用 Tekton 管道 API 方法检索管道运行的元数据 "列出管道运行记录

  1. 对于特定的 Tekton 管道,使用 "GET https://api.$REGION.devops.cloud.ibm.com/pipeline/v2/tekton_pipelines/$TEKTON_PIPELINE_ID/pipeline_runs 可检索管道运行列表。

响应包括管道运行的详细信息,管道日志除外。 要检索管道日志,请参阅 Tekton 管道日志

Tekton 管道日志

管道运行日志产生于管道的运行,而非配置。 在使用不同的服务提供商或内部软件实施管道工作负载时,它们并不被认为是必不可少的。 因此,列入本节只是为了方便,而不是数据可移植性的必要条件。

您可以使用 Tekton 管道 API 方法 获取管道运行日志对象列表获取管道运行步骤的日志内容,从而检索管道日志。

要检索日志,请完成以下步骤:

  1. 对于特定的 Tekton 管道,使用 "GET https://api.$REGION.devops.cloud.ibm.com/pipeline/v2/tekton_pipelines/$TEKTON_PIPELINE_ID/pipeline_runs/$RUN_ID/logs 可检索管道运行日志描述符列表,包括日志描述符 ID。
  2. 对于特定日志描述符,使用 "GET https://api.$REGION.devops.cloud.ibm.com/pipeline/v2/tekton_pipelines/$TEKTON_PIPELINE_ID/pipeline_runs/$RUN_ID/logs/$LOG_ID 可返回日志内容。

经典管道配置

您可以使用 CLI ibmcloud dev pipeline-get 检索经典管道的配置。 此 CLI 仅适用于经典管道。 要使用 Tekton 管道,请参阅 Tekton 管道配置

要检索经典管道的配置,请完成以下步骤:

  1. 对于特定的经典管道,运行 "ibmcloud dev pipeline-get $CLASSIC_PIPELINE_ID --output JSON

经典管道运行

管道运行数据是管道运行而非配置的结果。 我们认为,使用不同的服务提供商或内部软件实施管道工作负载并不重要。 因此,列入本节只是为了方便,而不是数据可移植性的必要条件。

要生成经典管道运行数据,请触发运行。 您可以使用 CLI ibmcloud dev pipeline-run 触发运行。 此 CLI 仅适用于经典管道。 要使用 Tekton 管道运行,请参阅 Tekton 管道运行。 要触发运行并检索有关运行的信息,请完成以下步骤:

  1. 对于特定的经典管道,运行 "ibmcloud dev pipeline-run $CLASSIC_PIPELINE_ID --output JSON

经典管道日志

管道运行数据是执行管道的结果,而不是配置管道的结果。 我们认为,使用不同的服务提供商或内部软件实施管道工作负载并不重要。 因此,列入本节只是为了方便,而不是数据可移植性的必要条件。

您可以使用 "ibmcloud dev pipeline-log CLI 检索经典管道日志。 此 CLI 仅适用于经典管道。 要使用 Tekton 管道日志,请参阅 Tekton 管道日志。 要检索日志,请运行以下命令:

  1. 对于特定的经典管道,运行 "ibmcloud dev pipeline-log $CLASSIC_PIPELINE_ID

Git Repos and Issue Tracking

Git Repos and Issue Tracking由GitLab Community Edition提供支持。 从Git Repos and Issue Tracking导出或检索数据的程序与GitLab 相同。 数据检索程序适用于各个项目。 涉及GitLabAPI 的程序需要一个身份验证令牌,如个人访问令牌。 更多信息,请参阅GitLab文档中的 身份验证

GitLab项目

如果要将“Git Repos and Issue Tracking项目迁移到另一个”GitLab,实例中,请使用“导出项目”功能。 要导出项目存档,请完成以下步骤:

  1. 转到感兴趣项目的Git Repos and Issue Tracking主页。
  2. 选择设置>常规>高级>导出项目
  3. 导出过程在后台运行。 程序完成后,页面的“导出项目”部分会出现一个“下载导出”按钮。 您还会收到一封电子邮件,内含下载存档的链接。

For more information about the "Export Project" feature, see 使用文件导出功能迁移项目和组 in the GitLab Docs.

如果你想从Git Repos and Issue Tracking中获取数据供其他系统使用,“导出项目”功能可能并不合适。 查看以下章节,了解导出GitLab数据的其他方法。

GitLab项目库

你可以通过将项目仓库克隆到本地文件系统来获得项目文件仓库的副本,包括其提交历史。 要克隆Git Repos and Issue Tracking项目,请参阅 设置本地客户端以使用Git源代码控制

当前的GitLab项目仓库文件

您可以获取包含项目任意分支中当前文件的存档。 以这种方式导出的存档不包括提交历史。 要导出存档,请完成以下步骤:

  1. 转到感兴趣项目的Git Repos and Issue Tracking主页。
  2. 选择要导出的版本库分支。
  3. 点击代码
  4. 选择导出格式,如 "zip、"tar"、"tar.gz“或”tar.bz2

更多信息,请参阅GitLab文档中的 下载版本库源代码

GitLab合并请求

要导出项目合并请求的数据,请完成以下步骤:

  1. 在项目的Git Repos and Issue Tracking主页上,选择代码>合并请求
  2. 查询所有感兴趣的合并请求。
  3. 选择操作 操作列表图标>导出为 CSV

更多信息,请参阅GitLab文档中的 将合并请求导出为 CSV

GitLab问题

要导出项目问题的数据,请完成以下步骤:

  1. 从项目的Git Repos and Issue Tracking主页,选择计划>问题
  2. 查询所有适用问题。
  3. 选择操作 操作列表图标>导出为 CSV

更多信息,请参阅 将问题导出为 CSV

GitLab片段

您可以从Git Repos and Issue Tracking项目中检索片段。 要检索片段,请完成以下步骤:

  1. 使用GitLab的 "GET /snippets/all API 列出您可以访问的所有代码段。 这包括个人和项目片段。 更多信息,请参阅GitLabAPI 文档中的 列出所有片段
  2. 使用GitLab的 "GET /snippets/:id/raw API 获取每个感兴趣片段的原始内容。 更多信息,请参阅GitLabAPI 文档中的 单个片段内容

您不能检索属于其他用户的私人片段。 如果您需要获取其他用户的私人片段,请联系该用户并要求获取其片段,或要求他们导出其片段。

更多信息,请参阅GitLab文档中的 片段

GitLab项目成员

您可以获取Git Repos and Issue Tracking项目的成员用户列表。 要列出成员用户及其基本元数据,请使用以下命令:

  1. 使用GitLab的 "GET /projects/:id/members API 列出项目成员。

您无法获取除自己以外的其他用户的详细信息。 如果需要获取项目成员的详细用户元数据,请联系成员名单上的用户,要求他们导出详细信息。

更多信息,请参阅GitLabAPI 文档中的 列出组或项目的所有成员

GitLab维基

你可以通过将维基资源库克隆到本地文件系统来获取项目维基的副本。 要克隆Git Repos and Issue Trackingwiki,请完成以下步骤:

  1. 在项目的Git Repos and Issue Tracking主页上,选择计划>维基
  2. 选择操作 操作 列表图标>克隆存储库

更多信息,请参阅 在本地创建或编辑维基页面

DevOps Insights

DevOps Insights中客户拥有的数据分为三个基本类别:

  • 客户提供DevOps Insights策略规则的配置。
  • 客户生成的构建、部署和测试记录,通常从管道步骤和作业上传至DevOps Insights。
  • DevOps Insights根据上传的构建、部署和测试记录计算分析结果。

构建记录、部署记录、测试记录和分析数据是运行Continuous Delivery管道工作负载的结果。 作为计算数据而非配置数据,它不被认为是使用不同服务提供商或内部软件实施类似于DevOps Insights工作负载所必需的。

DevOps Insights政策和规则

DevOps Insights政策由其中的规则定义。 这些都可以通过DevOps Insights图形用户界面进行管理。 要检索策略规则的详细信息,请完成以下步骤:

  1. 从概述页面选择工具链。
  2. 在搜索栏中输入"DevOpsInsights"。
  3. 如果工具链中集成了 DevOps Insights 工具,请选择它。
  4. 在DevOps Insights面板中选择策略
  5. 对于每个感兴趣的政策,选择“管理政策”>“行动行动列表图标">"编辑规则
  6. 对每条感兴趣的规则,选择“管理规则”>“行动行动列表图标">"编辑
  7. 将对话框中的数据复制到剪贴板,然后粘贴到纯文本文件中。

Code Risk Analyzer

Code Risk Analyzer 中没有客户自有数据,而这些数据是使用不同服务提供商或内部软件实施类似工作负载所必需的。

导出数据格式

Continuous Delivery支持以下导出数据、配置和应用程序的数据格式和模式:

导出数据格式
格式 数据
JSON 大多数 数据导出程序 以 JSON 格式生成数据,符合相关的 API 规范。
纯文本 经典管道日志和GitLab片段。
CSV Git Repos and Issue TrackingGitLab)合并请求和问题。
文件和文件档案 Git Repos and Issue TrackingGitLab)项目和资源库。
RFC 5322 电子邮件地址 Continuous Delivery授权用户的电子邮件地址。

Continuous Delivery不支持导出以下数据格式和导出数据、配置和应用程序的模式:

  • 由于秘密工具集成和安全管道属性的敏感性,因此不会导出这些属性。 有关管理机密和安全属性的更多信息和最佳实践,请参阅 通过使用机密引用来保护凭证
  • 上传到DevOps Insights的构建、测试和部署记录以及由此产生的分析结果不会导出,因为这些数据是在交付管道执行过程中产生的,而不是在与其他服务提供商或内部软件一起配置交付管道工作负载时使用的数据。

数据所有权

所有导出的数据都归类为客户内容。 应用 IBM Cloud服务协议 中规定的全部客户所有权和许可权。