代码之家  ›  专栏  ›  技术社区  ›  CAD bloke

我是否可以设计一个web应用程序,以便将其部署到云或专用服务器/VPS?怎么用?

  •  4
  • CAD bloke  · 技术社区  · 16 年前

    是否有一个通用的架构,可以部署到云服务器或专用(或VPS)服务器,只需很少的更改?显然会有配置更改,但我宁愿让应用程序的其余部分保持一致,保持一个可维护的代码库。

    它不是面向公众的网站。我心目中的web应用是为每个客户机单独部署的。有些客户端规模较小,有些客户端更喜欢在本地intranet上运行,而不是在web上运行。对于黑盒解决方案,其他客户可能更喜欢云方法。应用程序可能运行几个小时,也可能无限期运行,这取决于客户端和项目。除了部署场景,这些应用程序或多或少都是相同的。

    正如您从标签中看到的,我假设基于消息的体系结构可能是最通用的,但我也习惯于在这方面犯错。

    1 回复  |  直到 16 年前
        1
  •  5
  •   Eugenio Pace    16 年前

    是的,这是可能的。web应用程序istelf(MVC或Webforms)可能会保持不变(配置发生了变化)。

    如果您考虑将Windows Azure作为“云”部署选项,那么需要考虑的主要事项是:

    • 会话管理:您必须使用对web场友好的方法(例如,不能使用内存服务器端会话状态)
    • 带宽使用:当您部署到云端时,本地延迟高于100%,您还需要为来回发送的更多比特支付更多的费用。对于开发更省钱的应用程序有一个美元的奖励。
    • 使用所有标准提供程序(如配置文件、成员资格、跟踪等)。所有这些都有Win-Azure实现,所以您可以更改它们。

    数据:

    • 实现最大可移植性的最简单方法是使用sqlazure,它是sqlserver的一个(大)子集。
    • 如果您使用另一个存储系统(如windowsazure表等),那么您需要抽象应用程序中的所有数据访问(更难的工作)
    • 除了SQLAzure中不可用的一些功能(如SQLCLR、SQLBroker)外,数据库大小也有限制(当前最大值为50GB)。因此,如果客户的数据库增长超过这个范围,则需要对数据库进行分区(这增加了更多的复杂性,但这是可行的)

    管理层:

    • 如果您使用标准方法进行日志记录和跟踪(如系统、诊断等),应用程序将基本保持不变。您的流程必须进行调整(以及脚本等)

    还有更多的细节 here .

    我不知道你在考虑消息队列是为了什么,但这也是你可以抽象的东西(例如,本地的MSMQ,云的windowsazure队列)。你将不得不适应一些语义上的差异,但这是可行的。