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环境: