.net - 在本地运行 Azure 模拟器以进行生产

标签 .net windows azure

我有一个项目(实际上是几个),我最终希望将其部署到 Azure,因此我的 VS 解决方案同时包含 Web 和辅助角色,并且在我的本地模拟器上成功运行。 (我还使用表和 Blob 存储)。

我有一台 Windows 2012 服务器,其端口 80 暴露于 www,并且想在不使用 Azure 帐户或不花钱的情况下测试一下(目前)。

当我在 W2012 服务器上部署 Azure 模拟器并基本上在本地运行 Azure 时,这是否可以在类似生产的环境(流量非常少)中完成?性能会受到严重影响吗?模拟器是否打算像这样使用,或者它们是否会为了日志记录和调试而大幅降低性能?

我当然知道整体上不推荐这样做。模拟器不适合生产等等。我明白那个。但我很好奇是否有人尝试过类似的东西。

更新:我认为我的问题不够具体。我的错,对不起。更具体:

  1. 模拟器以何种方式承受非性能关注(例如日志记录和调试)的负担?

  2. 模拟器稳定吗?有人有过崩溃或变慢的经历吗?

  3. 模拟器在任何情况下都始终返回与 Azure 云版本相同的结果吗?

最佳答案

有基本的differences计算和计算模拟器之间,以及 differences存储和存储模拟器之间。虽然我提供的链接可能有点过时(我找不到更新的链接),但您应该立即看到一些内容:

计算:

  • 负载均衡器的行为有所不同(例如:您仍然可以访问不轮换的实例)
  • 实例在进程中运行,而不是在完整的虚拟机中运行(这意味着如果不先在本地卸载软件,您就无法测试安装软件的启动脚本)
  • 没有任何 SLA
  • 您的环境的安全程度取决于您的本地计算机
  • IP 地址管理不同
  • 不支持虚拟网络(您将无法与虚拟机进行互操作,例如通过内部端口)

存储:

  • 无法扩展(Azure 存储是一个庞大的 Multi-Tenancy 系统,可以随着请求流量的增加轻松扩展)
  • 没有持久性(Azure 存储进行三重复制,并且可以选择异地复制;本地存储位于 SQL 数据库中)
  • Blob 大小限制为 2GB(Azure 存储中为 200GB/1TB)
    • 表存储和队列存储之间的其他一些差异)

此外:您将无法对模拟部署进行命令行控制(没有 PowerShell、没有 CLI),并且无法通过门户查看/设置任何内容。

有一些服务可以在 Windows Server 上本地运行,例如服务总线和缓存,您甚至可以安装 Azure Pack适用于 Windows 服务器。

底线:您没有使用模拟器在 Azure 中运行;您的代码在具有本地独立数据库进程的本地进程中执行。您将拥有 0 SLA、非冗余存储、完全无法了解整个系统的运行状况...这根本不是生产环境。

关于.net - 在本地运行 Azure 模拟器以进行生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240580/

相关文章:

.net - 通过 COM 从 Excel 调用的 .NET 自动化服务器的生命周期

c++ - LoadStringW - winuser.h。它有什么作用?

windows - 如何检查程序是否在本地控制台中运行?

android - Azure 通知中心仍依赖 GCM,并有 6 个月的时间关闭

Azure SQL Server 复制数据库脚本失败

c# - 在 .NET 中获取泛型类型的基本名称的正确方法是通过 Substring?

.net - 从 SQL 错误消息 547 获取特定信息

c# - OnCommand 与 OnClick

windows - 所有版本的 Windows 上的 Win32 透明控件

node.js - 在 Windows Azure 上托管的 Node.js 应用程序中存储私有(private)文件的最佳方式