【问题标题】:Running Azure emulators locally for production在本地运行 Azure 模拟器以进行生产
【发布时间】:2013-11-27 10:58:17
【问题描述】:

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

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

当我在我的 W2012 服务器上部署 Azure 模拟器并基本上在本地运行 Azure 时,这甚至可以在类似生产的环境中完成(流量非常少)吗?性能会因此受到严重影响吗?仿真器是打算像那样使用,还是在性能上有很大下降,有利于日志记录和调试?

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

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

  1. 仿真器在哪些方面会因不注重性能(如日志记录和调试)而负担过重?

  2. 模拟器稳定吗?有没有人遇到过他们崩溃或减速的经历?

  3. 模拟器是否总是在任何情况下返回与 Azure 云版本相同的结果?

【问题讨论】:

  • 这是个好问题。我的任务是设计一个应该是在 azure 下运行的 Worker Role 的应用程序——但该组织的发展非常缓慢,也许永远不会朝那个方向发展。我也想以这种方式创建一个应用程序并进行部署,着眼于最终将其移至 Azure。这种方法是否至少与在 IIS 中托管一样稳定——允许我在不自己构建的情况下进行日志记录、配置、托管等...

标签: .net windows azure


【解决方案1】:

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

计算

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

存储

  • 无扩展(Azure 存储是一个大型多租户系统,可随着请求流量的增加轻松扩展)
  • 没有持久性(Azure 存储是三重复制和可选的异地复制;本地存储位于 SQL 数据库中)
  • Blob 限制为 2GB(Azure 存储为 200GB/1TB)
    • 表和队列存储的其他几个差异)

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

服务可以在 Windows Server 上本地运行,例如服务总线和缓存,你甚至可以为 Windows Server 安装Azure Pack

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多