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

将本地软件扩展到云端的 5 个经验教训

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013年7月31日

CPOL

7分钟阅读

viewsIcon

19578

在本文中,我将与您分享一些在将 DNN Platform 从本地应用程序迁移到即插即用的云解决方案过程中学到的经验。

引言

您可能过去甚至最近都接触过 DNN。它于 2002 年首次发布,名为“DotNetNuke”的开源项目,我们迅速扩展成为 Microsoft 生态系统中最大的开源项目。在此过程中成立了 DNN Corp,并继续担任开源代码库的管理机构。我们还提供在其之上构建的商业解决方案。

在本文中,我将与您分享一些在将 DNN Platform 从本地应用程序迁移到即插即用的云解决方案过程中学到的经验。本案例研究将对任何 undertaking “棕地”应用程序迁移到云服务的人特别有帮助,特别是重点关注利用云的优势,而不仅仅是将站点放在基础设施即服务 (IaaS) 上。

早期云尝试

随着 2008 年 Windows Azure 的发布和 2010 年平台的推出,DNN 社区的许多人都对这种有前景的新建站方式产生了兴趣。早期工作包括使整个 DNN Platform 从 DNN 6 开始与 SQL Azure 兼容,从而使任何人都可以将应用程序安装在 Windows Azure 上,而无需修改核心代码。David Rodriguez 开发了一个名为 DNN Azure Accelerator 的完整解决方案,这是一项社区贡献(相关:对 David Rodriguez 的 Code Project 采访)。

这个开源解决方案解决了如何将像 DNN 这样动态、可扩展的应用程序交付到 Azure 云服务中的棘手问题,而 Azure 云服务是从预定义包工作的。Azure Accelerator 至今仍是 DNN 站点在 Azure 上交付的基础。

2012 年,DNN Corp 宣布与 Microsoft 达成联盟协议,在 Azure 中提供内容管理解决方案。DNN 与 Microsoft 之间的这项合作最近推出了由此产生的 But:Evoq in the CloudEvoq in the Cloud 提供我们行业领先的 CMS 解决方案 Evoq Content 和我们即插即用的社区解决方案 Evoq Social,作为无缝托管服务。

构建 Evoq in the Cloud 的 5 个经验教训

经验教训 1:SaaS 还是 PaaS - 提前并仔细选择策略

 

在云中提供应用程序时,需要解决的第一个问题是它将是一个托管解决方案,还是仅仅提供基础设施和产品。

做出此决定的基本资源是当前和潜在客户。我们有一个活跃的托管合作伙伴生态系统需要考虑。我们的客户有一长串苛刻的要求:他们想要一个按需、快速、灵活、经济实惠、可扩展且简单的服务。值得庆幸的是,Windows Azure 的所有组件都可以满足这些要求。

我们选择了 SaaS 和 PaaS 之间的折衷方案:软件作为服务交付,但允许管理员与平台进行交互和扩展。我们相信这种简单性、强大的功能、易用性和可扩展性是正确的选择。

此决定的关键在于提供完全集成的解决方案的愿望,该解决方案既包括软件又包括交付。集成解决方案可防止客户使用临时收集的工具来管理他们的站点。客户可以控制曾经可能需要经验丰富的管理员才能执行的任务。只有一个用户体验,一个供应商,并且平台提供商和软件供应商之间没有推诿。所有这些都由一个了解端到端解决方案的团队构建和测试,以协同工作。所有这些都通过提供集成服务来实现,客户告诉我们他们很喜欢。

要点:仔细考虑您是想交付真正的 SaaS 解决方案,还是以基础设施为重点的 PaaS 解决方案。这将驱动项目后续的许多决策。

经验教训 2:利用现有产品还是构建新产品?

早期提出的一个选项是构建一个精简、简化的产品,该产品仅适用于云。这对于吸引新受众有一定道理,但在忽略现有受众方面存在缺点。考虑到全球已安装 750,000 多个网站——其中任何一个都有可能迁移到云产品——使用 Azure 作为交付渠道更有意义——因此诞生了 Evoq in the Cloud

拥有完全相同的产品分发给所有客户可以简化支持和开发,并防止客户感到被锁定。它还允许我们庞大的安装基础中的任何人都迁移到云产品。

一旦做出这个决定——产品将完全相同,云将是一个交付渠道——这为系统架构的其余决策提供了信息。任何特定于云的增强功能都将使用 DNN 的优势之一来开发——可扩展性,它允许在不更改任何核心代码的情况下自定义产品。

要点:在决定新产品或改编现有产品时,请考虑您所处的市场环境,以及新代码库的成本是否可以通过收益来弥补。

经验教训 3:通过利用云功能来设计新功能

Windows Azure 提供了各种各样的功能供应用程序利用。与其看着工具试图凭空想象如何使用它们,不如先设想让客户满意的功能,然后寻找 Windows Azure 工具可以帮助构建它的方法。

通过评估我们客户群的反馈,我们很容易设想一项客户无需安装任何东西的服务。通过让 Azure Worker Role 自动运行安装过程,我们将一个手动过程自动化了。

我们轻松设计了一个备份和恢复服务,它将数据库、应用程序文件和客户特定的内容文件合并到一个压缩的备份文件中。然后,我们可以创建一个软件更新服务,该服务结合了备份和升级(类似于安装),甚至可以自动检测升级何时失败。当升级失败时,我们会自动将站点恢复到工作版本。

要点:围绕客户需求而不是工具集发明新功能

经验教训 4:利用云功能实现灵活性、性能和可靠性

为产品添加额外功能是利用云功能的一个方面。当客户想到云时,他们会想到灵活性、性能和可靠性。使用 Azure 中的 Cloud Services (PaaS) 平台在可伸缩性、访问工作角色、降低维护成本和高隔离性方面带来了好处。

这需要发明一些新技术,例如如何在可以根据需要创建或销毁的 Web 角色上保留持久性应用程序数据。通过这些新技术,回报是巨大的:一个真正可伸缩的应用程序。我们还利用了 Azure 的地理冗余存储,它比主存储位置提供了更高水平的冗余。这些功能创造了真正的差异化优势,这在托管解决方案中不容易复制。

要点:迁移到云时,请付出额外的努力来利用您所使用的平台的固有优势。

经验教训 5:客户喜欢试用。为他们提供功能齐全的试用版。

潜在客户的期望是,在进一步使用产品之前,他们可以查看、体验和与之互动。

DNN Cloud 团队通过提供基于云的试用版解决了这个问题。但客户想要更多。他们想要即时满足,而不是等待 15 到 20 分钟才能获得试用版。

为了响应客户的需求,我们实施了“设备池”,这是一组预先配置、预先安装好的云站点,供客户使用。这些池会持续分配以匹配试用客户的需求。提供云试用非常快,从开始到结束大约需要 30 秒。您可以亲自尝试:在此处获取 Evoq Content in the Cloud 试用版

结果是:客户喜欢我们的云试用版。而且,虽然他们注册率很高,但云足以充分满足需求。

要点:找出如何利用云资源为客户提供产品试用。

结论 

将本地应用程序改编为云交付并非易事。DNN Cloud 团队所做的工作受到提供现有产品新交付渠道的愿望的指导,该渠道允许现有客户顺利过渡到云。

该产品必须简单灵活才能吸引新客户。通过利用 Windows Azure 并与 Microsoft 合作,我们得以应对这些挑战。最终的产品保留了其所有原始优势,同时又增加了显著的新优势。

参加 DNN Cloud 试用挑战,在 30 秒内创建新的 云交付的 Evoq Content 试用版。或者,如果您正在构建新的在线社区,为什么不尝试一下 云交付的 Evoq Social 试用版

© . All rights reserved.