DevOps Center 是 Salesforce 在 2022 年 6 月发布的一个新工具。简单地说,这个工具允许你将元数据从一个 Salesforce Org 部署到另一个。例如,将自定义对象,Apex Class,Profiles 等从沙盒部署到生产。传统上,我们使用Change Sets来执行这项任务。
目前较为常用的针对 Salesforce 项目部署方案有如下几种:
- DevOps Center
- Salesforce CLI
- VS Code with Salesforce Extensions & Salesforce CLI
- ANT Migration Tool
- Change Sets
- 3rd party tools like Copado, GearSet etc.
使用 DevOps Center 的好处:
- 使用 DevOps Center, 你可以在完全不相关的 Org 之间部署 metadata list. 比如从 Developer Edition Org 部署元数据到沙盒或生产环境,反之亦然。使用 Change Sets, 你只能在沙盒和生产环境之间部署变更的元数据。
- DevOps Center 利用沙盒的
Source Tracking功能,可以识别在开发环境中做出的修改。有了它,你就不需要在 excel 中跟踪所有改变的组件,然后手动添加它们。DevOps Center 将显示所有更改的组件,并让你选择要部署哪些组件。 - DevOps Center 也支持元数据组件的
移除. 这意味着,如果你在开发环境中删除一个自定义字段,它也将从其他环境中删除。传统上,我们需要使用 destructiveChanges.xml 来单独执行删除任务。 - DevOps Center 使用 Source Control(Git). Source Control 维护着元数据组件中所有变化的完整历史。因此,如果项目在改变后不能像预期的那样工作,你可以立即比较这些变更历史并找到问题原因。
现在我们对 DevOps Center 有了一些了解,接下来我会介绍如何在 Salesforce 中使用它。
Enable & Install DevOps Center
在 Salesforce 的 Setup 搜索 DevOps 关键词,然后启用 DevOps Center, 我目前是以我自己的 Develoepr Org 作为我自己的 DevOps Center Org, 你也可以在 Salesforce 的生产环境安装 DevOps Center Package.

创建 Connected App
在 Salesforce 的 Setup 搜索 App Manager 关键词,然后点击 New Connected App

根据下面图中的内容填入相对应的值,然后点击 Save.

保存之后,点击 Manage, 页面往下滚动,看到 Permission Sets, 点击 Manage Permission Sets 添加 sf_devops_NamedCredentials


为当前 User 分配 DevOps Center 权限
在 Salesforce 的 Setup 搜索 User 关键词,然后点击当前 User 进入用户详情页面,点击 Edit Assignments, 添加如图的对应的权限。

准备一个 GitHub Account
因为在使用 DevOps Center 的时候需要连接 GitHub 账号管理 branch, 所以如果没有 GitHub 账号的话需要注册一个,注册链接
在 DevOps Center 创建一个 Project
在 Salesforce 的 App Laucnher 搜索 DevOps 关键词,然后点击进入。在第一次创建 Project 的时候会有一个弹框让你连接Connect to GitHub, GitHub 账号认证完成之后就可以创建 Project 了。

点击 New Project, 填入如下信息:

Project 在 DevOps Center 创建成功,这个创建过程可能会需要等一会。

Project 创建完成后,我们可以在 GitHub 上看到一个新的 repo 被创建了出来。

连接 Release 环境
现在让我们来连接 Release 环境。这里的环境指的是你要部署所有 Change 的生产环境。点击 Click to Connect

点击 0 Dev / 1 Other 连接开发和其他环境 (比如 Staing, UAT 等)

添加一个开发环境:

此次演示我只需要一个 UAT 环境,所以其他阶段的测试环境我将其移出掉不再使用。

连接 UAT 环境,点击 Connect Environment..., 注意我选择的是 Production Org, 我是将我的另外一个 Developer Org 作为我的 UAT 环境。

目前为止,我们所有的环境已经设置完毕,点击 Activate, 注意:Pipline 激活之后,你就无法再修改此 Pipline, 只能重新创建一个新的 Project, 重新配置一个新的 Pipline.

Pipline 现在已经激活,Pipline 的流程为:当你有一个需求需要部署的时候,你需要创建一个 Work Item, 一旦 Work Item 构建完成,在 Pipline 里可以将当前 Dev 环境的 Work Item 推送至 UAT 环境做 Users Testing, 一旦测试完成,可以在 Pipline 里将 UAT 的 Work Item 推送至生产环境。

DevOps Center 为我们创建了一个新的 UAT 分支。

Pipline 的目前的环境分布:

创建 Work Item
切换至 Work Items, 然后点击 New Work Item.

Work Items 列表:

点击进入 Work Item 详情,点击 Proceed

进入In Process 详情,如果你比较了解 Git 和 Source Control, 这一步类似创建一个 feature branch, 将我们的 work item 存入这个 branch 中。

现在让我们添加一些需要部署的组件,我们可以点击 Pull Changes将 Dev 环境所有的变化都拉取出来,也可以手动添加待部署的组件。我们点击Add Components Manually

添加待部署的组件,然后提交 commit:

通过Activity History, 可以看到提交历史:

在 GitHub 的 feature branch 可以查看到我们的提交记录:

完成 Review Process
目前我们已经完成了这个 Work Item, 现在可以将这些修改转移到 UAT.

点击 View Change Request, 我们会在 GitHub 上看到一个 PR 需要 Merge 到 UAT Branch

如果一切没有问题,我们可以点击 Ready to Promote.

部署组件到 UAT 环境
一旦 Work Item 的状态被标记为 Ready to Promote, 这个 Work Item 将出现在 Pipline 中,以便可以部署到其他环境:

点击 Promote Selected

现在,新建的 Object 已经部署到 UAT 环境了。

部署组件到生产环境
现在可以从 UAT 环境部署组件到生产环境了:

指定一个版本:

生产环境部署完成:

之前介绍过,我将自己的 Develoepr Org 作为生产环境,可以看到新增的对象已经部署到 Prod 环境:
