Salesforce DevOps Center 入门指南

Posted by Peter Dong on December 9, 2022

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.

img img

创建 Connected App

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

img

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

img

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

img

img

为当前User分配 DevOps Center 权限

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

img img

准备一个 GitHub Account

因为在使用DevOps Center的时候需要连接 GitHub 账号管理branch, 所以如果没有GitHub账号的话需要注册一个, 注册链接

在 DevOps Center 创建一个Project

在 Salesforce 的 App Laucnher 搜索 DevOps 关键词, 然后点击进入. 在第一次创建 Project 的时候会有一个弹框让你连接Connect to GitHub, GitHub账号认证完成之后就可以创建 Project 了.

img img img

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

img

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

img

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

img

连接Release环境

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

img img

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

img

添加一个开发环境:

img img img

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

img

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

img img

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

img

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

img

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

img

Pipline的目前的环境分布:

img

创建 Work Item

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

img img

Work Items 列表:

img

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

img

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

img img

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

img

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

img img

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

img

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

img

完成 Review Process

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

img img

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

img img

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

img img

部署组件到UAT环境

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

img img

点击 Promote Selected

img img

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

img img

部署组件到生产环境

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

img

指定一个版本: img img

生产环境部署完成:

img

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

img img img


Buy Me a Coffee