应用升级(1)提供SaaS

学习目标

完成本单元后,您将能够:

  • 描述SaaS如何改变客户对软件更新的期望。
  • 讨论部署和维护单一版本产品的好处。
  • 列出一些您可以做的准备更新产品的事情。

平台的承诺

Salesforce客户知道他们有很好的表现。他们不必维护服务器和操作系统。他们不必知道如何设计,运行或优化关系数据库。他们甚至不需要备份自己的数据。

他们每年都会获得三个主要软件版本,并具有新功能和性能改进。他们获得了丰富的发行说明和培训材料(例如此工厂的Trailhead模块)。他们获得了AppExchange,这是一个与Salesforce无缝配合的产品市场。他们做生意所需的一切都在那里供他们使用。

伟大的期望

看到?企业软件不一定非常痛苦。它真的可以“只是工作”。这就是软件即服务(SaaS)的承诺。几年来,Salesforce已经向客户承诺了50多个成功的发布。即使是Salesforce平台的重大升级通常也会平稳安静地进行。

The logos of the myriad Salesforce releases that have shown our customers the promise of SaaS.

您的客户对我们平台上的产品有很高的期望。嘿,那就是成功的感觉!因此,当您更新产品时,您如何以保持SaaS承诺的方式将其提供给客户?

选择您的更新策略

更新有各种形式。修补程序是最小的一种更新 – 它们修复错误并对您的产品进行微调。升级是进行更大更改的更新。我们在下一个单元讨论补丁和升级。

当您更新产品时,您可以选择客户获得新版本的方式。有两种方法可以将它们放到他们手中:

  • Manual install—您的客户决定何时需要新版本并使用您提供的URL进行安装。
  • Automatic Install— 您将更新推送给客户,以便他们始终拥有最新版本的产品,并且每个人始终使用相同的版本。我们称之为推升级。

此时,您可能想知道为什么我们提供自助服务选项。这不是Salesforce自己发布版本的方式,它当然也不是“无缝”。为什么不用Salesforce的方式做事情,并以锁步方式更新每个人?

现实情况是:Salesforce在成功的低戏剧升级方面拥有悠久的历史记录。客户相信Salesforce可以正确执行发布,并快速解决流程中可能发生的任何问题。但是,这些相同的客户在适应AppExchange合作伙伴的自动更新之前需要更多的说服力。

让我们来谈谈推送升级的好处,以便传播良好的词汇。

推升级保持简单

我们建议您尽可能使用推送升级来分发您的产品的新版本,并仅对坚持使用它的客户使用自助更新。

推送升级使您的所有客户都保持在同一版本的应用程序上。这对您和您的客户都有好处。为什么?考虑另一种方法:支持应用程序的多个活动版本。当你维护多个版本时,事情变得复杂:

  • 您的支持团队必须跟踪每个版本的功能和修复情况,以便他们可以针对客户问题做出适当的回应。
  • 您需要维护多个版本的文档和培训材料。
  • 当你修复一个bug时,你可能不得不将它移植到多个版本。

相反,当您使用推送升级来让客户保持最新状态时,您可以避免所有额外的工作。

不要违背你的承诺

不言而喻,但我们仍然会说:不要破坏你的应用程序或你的客户的组织。当然,在不损坏客户的情况下更新产品可能会非常棘手。 Salesforce为您提供了一些便利的工具和一些边界,可以帮助您走上正确的道路。

自动化过程

有时,更新要求您在安装新产品版本时,在客户的组织中完成一些工作。也许你想在安装之后验证一些数据或在组织中进行一些清理。

你可以在你的应用中包含一个按钮来完成这项工作,但如果客户没有按下它,工作就不会发生。我们建议您在安装过程中自动完成工作,而不是牵涉到客户。当你设置你的软件包时,包括脚本来做到这一点。这些脚本可以更新数据和某些元数据。

例如,假设您在某个Apex代码中发现了一个计算存储在字段中的值的错误。作为更新的一部分,您可以修复该错误并运行脚本,该脚本还修复了修复之前生成的所有错误值。

保留现有行为

当您开始使用托管软件包时,可能您注意到无法删除已添加到软件包的某些组件(请参阅ISVforce指南以获取列表)。如果您将自定义对象或字段添加到包中,然后将该包上传到AppExchange,那么您现在就坚持使用它。

这看起来令人沮丧。但通过阻止您删除组件,Salesforce可帮助您将SaaS承诺保留给客户。他们知道他们可以依靠一定的稳定性 – 他们可以定制和构建您的解决方案,而不用担心突然的变化。

假设Salesforce不会阻止您删除组件。作为应用程序更新的一部分,您可以从托管软件包中删除自定义对象。如果您的任何客户在报告中使用该自定义对象,或者已经使用新字段进行扩展,那么它们会带来一个粗暴的惊喜。他们收到你的更新,自定义对象消失,东西破裂。混沌!

另一方面,我们知道情况发生了变化 – 尤其是在软件方面。有时最好删除一个组件,无论是修剪功能还是重新设计应用。别担心,我们不会站在你和你的目标之间。有许多方法可以让你做出任何需要的更改 – 甚至删除自定义对象。我们会在稍后的单元中向您展示这些。

一点准备工作要走很长的路

我们提到了Salesforce在低电视剧发布和更新方面令人印象深刻的记录。我们的秘密是什么?细致的测试。这不是太令人兴奋,但确实有效。更多的测试意味着少戏剧。

有时,合作伙伴非常关注他们出色的新功能,以便在测试更新时掩饰一些细节。以下是一个不完整测试过程的示例:您将升级后的应用安装在新创建的空测试组织上。如果它在那里有效,那很好,对吧?如果你的所有顾客都是从新鲜起家开始的,是的。

但是,大多数现实世界的客户在任何时候都处于业务中间。他们已经将升级安装到一个已经有一百万个组件的组织中。因此,测试您的凌乱,真实的组织和原始升级。

无缝无忧地部署您的更新

当您的软件自行更新时,您的客户不能只按“暂停”他们的业务。这不是SaaS承诺的一部分。无法保证任何事情都不会失败,但通过考虑更新如何影响客户,您可以最大限度地减少混乱。

  • 考虑你的更新的影响。您是否在改变客户使用产品的方式?
  • 首先在内部测试您的更改。使用各种各样的组装测试组织,而不仅仅是空的测试组织。
  • 考虑在你的部署中使用层:你的高级用户首先得到更新,其次是其他人。 Salesforce使用此流程,它有助于我们理解对真实客户的影响。

现在我们来看看您可以提供更新的不同方式。