交付软件即服务
学习目标
完成本单元后,您将能够:
- 讨论部署和维护产品的单一版本的好处。
- 解释如何无缝部署更新。
平台的承诺
Salesforce 客户知道自己将高枕无忧。他们不必维护服务器和摆弄操作系统。他们不必知道如何设计、运行或优化关系数据库。他们甚至不必备份自己的数据。
Salesforce 每年都会发布三个主要软件版本,其中包含新功能和性能改进。Salesforce 客户会获得了大量的发行说明和培训材料(例如这个 Trailhead 模块)。他们还有 AppExchange,这是一个与 Salesforce 无缝协作的产品市场。开展业务所需的一切都触手可及。
寄予厚望
看到了吗?企业软件不一定会让人感到痛苦。它真的能“顺利运行”。这就是软件即服务 (SaaS) 的承诺。20 多年来,Salesforce 一直对客户信守这一承诺。即使是 Salesforce 平台的重大升级,通常也会顺利而安静地进行。
您的客户对您在我们平台上构建的产品寄予厚望。嘿,这就是成功的感觉!因此,当您更新产品时,如何才能以一种遵守 SaaS 承诺的方式将其提供给客户呢?
选择您的更新策略
更新有多种形式。补丁是最小的更新类型,它们修复错误并对您的产品进行细微调整。发布新的主要或次要软件包版本则是进行更大的更新。
更新产品时,您可以选择客户获取新版本的方式。您可以通过两种方式将其交到客户手中:
- 手动安装:您的客户决定是否需要新版本并使用您提供的 URL 进行安装。
- 自动安装—您将更新推送给客户,以便他们始终拥有您产品的最新版本,并且每个人都始终使用相同的版本。我们称之为推送升级。
此时,您可能想知道为什么我们提供自助服务选项。Salesforce 自己的版本发行不是采用这种方式,它当然也不是“无缝”的。为什么不采用 Salesforce 的方式并为每个人同步更新呢?
事实是这样的:Salesforce 在成功、低调的升级方面有着长久的良好记录。客户相信 Salesforce 会正确执行发布,并快速修复流程中可能出现的任何问题。但是,同样是这些客户,其中有些客户则需要更令人信服的证据,才愿意接受 Salesforce 合作伙伴的自动更新。
让我们谈谈推送升级的好处,以便您将其介绍给别人。
推送升级让事情变得简单
我们建议您尽可能使用推送升级来分发产品的新版本,并且仅为坚持使用自助更新的客户使用自助更新。
推送升级使您的所有客户都使用相同版本的应用程序。这对您和您的客户都有好处。为什么?想象一下其他方案:支持应用程序的多个现行版本。当您维护多个版本时,事情会变得复杂:
- 您的支持团队必须跟踪每个版本中的功能和修复,以便能够对客户问题做出相应的响应。
- 您需要维护文档和培训材料的多个版本。
- 当您修复错误时,您可能必须将其移植到多个版本。
相比之下,当您使用推送升级来让您的客户保持最新状态时,您可以避免所有额外的工作。
不要违背您的承诺
虽然无需多言,但我们还是要说一下:不要破坏您的应用程序或客户的组织。当然,要在不毁掉客户一天的情况下更新您的产品可能会很棘手。Salesforce 为您提供了一些方便的工具和一些界限,让您始终走在正确的道路上。
自动化流程
有时,更新需要您在安装新产品版本时在客户的组织中做一些工作。也许您想在安装后验证一些数据或在组织中进行一些清理。
您可以在您的应用程序中通过一个按钮来完成这些工作,但如果客户不按下它,这些就不会发生。与其让客户参与进来相比,我们更建议您在安装过程中自动完成这些任务。开发您的软件包时,将用于执行这些任务的脚本包含在内。脚本可以更新数据和某些元数据。
例如,假设您在某些计算字段中存储值的 Apex 代码中发现了错误。作为更新的一部分,您可以修复错误并运行一个脚本,该脚本还会修复在进行修复之前生成的所有错误值。
一点准备大有裨益
我们提到了 Salesforce 在低调发布和更新方面令人印象深刻的优秀记录。我们的秘诀是什么?是细致的测试。虽然是老生常谈,但确实有效。更多的测试意味着更少的戏剧性。
有时,合作伙伴过于关注他们出色的新功能,以至于在测试更新时掩盖了一些细节。下面是一个不完整测试过程的例子:您将经过升级的应用程序安装到一个新创建的空测试组织上。如果该应用程序能在此组织上运行,那它就准备就绪了,对吧?如果您的所有客户都是从新组织开始,那答案是肯定的。
但大多数实际客户在任何特定时刻都处于业务之中。他们会将您的升级安装到一个已经拥有无数内容的组织中。因此,请同样在凌乱、真实的组织和原始组织中测试您的升级。
无缝且静默地部署更新
当您的软件自行更新时,您的客户并不能简单地按下“暂停”来停止他们的业务。这不是 SaaS 承诺的一部分。不可能保证万无一失,但您可以通过考虑您的更新如何影响您的客户来最大程度地减少混乱。
- 考虑更新的影响。您是否正在改变客户使用您产品的方式?
- 先在内部测试您的更改。使用各种经过填充的测试组织,而不只是崭新的空组织。
- 考虑在您的部署中使用层:超级用户先获得更新,然后是其他所有人。Salesforce 正是使用此流程,帮助我们了解对真实客户的影响。
现在,让我们看看您可以提供更新的不同方式。
资源
- 第二代受管软件包开发人员指南:创建和更新第二代受管软件包版本
- 第二代受管软件包开发人员指南:在软件包安装/升级时运行 Apex