65.9K
CodeProject 正在变化。 阅读更多。
Home

沙盒解决方案不是绕过应用程序生命周期管理的“敏捷”方式

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2012 年 1 月 23 日

CPOL

5分钟阅读

viewsIcon

18697

SharePoint MVP 和 AvePoint 企业架构师 Jeremy Thake 解释了为什么沙盒解决方案必须与完全信任的解决方案拥有同等的流程和审查级别。

在我担任 AvePoint 的职务期间,我有很多机会与企业客户——包括许多财富 500 强企业——交流 SharePoint 的各种事宜。根据这些对话,尤其是近期的对话,一个共同的主题浮现出来:与外部客户合作的开发人员——甚至内部团队——似乎都在推动使用沙盒解决方案,这出乎意料。通常,您会期望 IT 专业人员和治理委员会从隔离定制的角度来推动沙盒解决方案。我觉得这很令人费解,因为沙盒解决方案在设计上具有有限的 SharePoint API 子集,并且范围限定在网站集及以下。因此,与完全信任的解决方案相比,这极大地限制了可以构建的功能。

为什么是沙盒解决方案?

ISV 和客户对 SharePoint 2007 Online 多租户场中的定制体验感到不满,因为在 BPOS 中,只能通过 SharePoint Designer 2007 进行。SharePoint 2007 Online 中没有完全信任解决方案的概念,SharePoint 2010 Online——在 Office 365 中可用——的多租户场景(标准计划 - P 和 E)中也没有。沙盒解决方案是由 Microsoft 纯粹为了处理 SharePoint 2010 Online 部署具有托管代码和打包工件的定制的能力而设想的。

尽管沙盒解决方案是为多租户场景设计的,但它们在本地部署中也很有用,因为它可以隔离托管代码的执行并智能地监视所消耗的资源。如果消耗的资源达到特定的定义限制,该网站集内的所有沙盒解决方案都会被关闭。这一点人们常常意识不到,并假设只有有问题的沙盒解决方案才会在网站集内被关闭。这会带来巨大的风险,因为一个网站集可能包含许多沙盒解决方案,而整个网站集中的业务功能都会因为一个有问题的解决方案而受到影响。

我做了更多调查,发现开发人员之所以希望使用它们而不是完全信任的解决方案,是因为部署它们不需要远程访问 SharePoint 服务器。怎么做?通过网站集根网站的完全控制权限或网站集管理员成员身份,可以通过 Web 用户界面进行部署。

变更管理

允许 IT 部门以外的任何人拥有这些提升的权限来部署沙盒解决方案的担忧在于,这打破了应用程序生命周期管理的典型流程。本质上,这使开发人员能够快速将更新的解决方案部署到环境中。即使我临终,我也不会允许他们在生产环境中这样做!!!我听说他们正在使用新的“敏捷”开发方法,并且这是必需的。我完全不同意这种说法:当然,您可以在开发环境中敏捷,但无论您使用何种方法来实现定制,在开发环境之外都需要相同级别的严谨性。

应用程序生命周期管理流程确保对环境的任何更改都会通过开发环境、集成环境和测试环境进行推广,并在这些环境中经过质量保证,然后进入生产环境。在每个阶段,都会有一个变更管理流程来强制执行质量并确保生产环境的零停机。当解决方案包更新时,需要进行重大的质量保证,因为现有的网站集数据以及发生的任何工件更改——例如将网站列添加到现有内容类型——都需要进行测试。

防止部署

实际上,如果他们拥有完全控制或网站集管理员权限,是无法拒绝部署到解决方案库的,该库实际上就是一个具有权限的库,就像文档库一样。阻止沙盒解决方案的唯一真正方法是在本地部署场中的每个 SharePoint 服务器上完全禁用它们,即禁用沙盒解决方案 Windows 服务,这在 SharePoint 2010 Online 中显然是不可行的。这是一种全有或全无的方法,大多数组织都不希望这样做。用户也很难剥夺完全控制或网站集管理员的权限,因为 SharePoint 的其他方面可能需要他们拥有该级别的权限。

限定功能的可用性

沙盒解决方案的一个好处是,当您将其部署到网站集时,其功能和工件仅在该处可用,这是我们的一些客户所欣赏的。对于部署到 Web 应用程序的完全信任解决方案,该功能在所有网站集中都可用。这通常不是一个可行的方案,因为一个解决方案可能只需要在场的一个位置,而不应允许其他网站集激活它。

我们的客户还发现,利用第三方产品,例如 AvePoint 的 DocAve Deployment Manager for SharePoint,也可以帮助有效地管理和自动化发布操作,从而促进其 SharePoint 部署中的成功应用程序生命周期管理。

总结

您必须以对待完全信任解决方案的相同流程来对待沙盒解决方案。

参考文献

© . All rights reserved.