【问题标题】:Strategy for porting a web app to Azure将 Web 应用程序移植到 Azure 的策略
【发布时间】:2023-03-09 09:25:01
【问题描述】:

我们正在将 Web 应用程序迁移到 Azure,并希望对我们的策略提供一些反馈。 Azure 对我们来说是新事物,因此我们希望确保我们走在正确的道路上。请注意,我们使用的是 VS 2010。

我们当前的应用程序有两个部分:1) 用于用户界面的标准 Web 应用程序和 2) 在服务器上运行的 Windows 应用程序。 Windows 应用程序每 2 分钟唤醒一次,在 SQL 表中查找任何新记录,处理它们然后休眠。 Windows 应用程序还告诉我们处理的记录数、处理时间等,以便我们了解系统的总体运行状况。两个应用程序都读取/写入存储在服务器上的文件。 (是的,这可能应该是一个服务,但我们想要这个接口,以便我们可以快速查看整体运行状况。我们有一个服务可以检查以确保接口正在运行,并在出现故障时重新启动它。)

将 Web 应用程序移植到 Azure 很简单,我们已经在 VS 中对其进行了一些测试,没有任何问题。我们需要一些有关 Windows 应用程序和设置/访问文件的建议。

这是我们的策略。感谢所有建议。

1 - 为 Windows 应用创建辅助角色。 2 - 将此工作人员角色设置为启动项目。 3 - 辅助角色将创建 Azure 云驱动器(用于文件访问)并将驱动器号传递给 Web 应用程序。我们将在 onstart 中建立连接。 4 - 确保工作者角色是持久的,这样我们就不会丢失云驱动器。

另外两个问题:

1 - 工人角色似乎可以有一个用户界面,但也许我们误读了一些东西。如果我们尝试将 Windows 应用程序添加到解决方案中,我们会收到许多错误。我们还尝试创建一个工作角色并将其设置为 Windows 窗体应用程序,但这立即产生了一个错误,即它们不是“主要”方法,这是对我们的警告标志,我们不应该这样做。我们在这里缺少什么?

2 - 如果工作人员角色设置为启动项目,它是否需要启动 Web 应用程序,或者工作人员角色完成其启动处理后是否会自动启动?

【问题讨论】:

  • 工人角色有界面但没有用户界面。
  • 已提供答案,但我不知道您所说的使工作角色持久化是什么意思。

标签: visual-studio-2010 azure azure-configuration


【解决方案1】:

Web 和 Worker 角色基本上是 Windows Server 2008 SP2 / R2 VM,其中 Web 角色配置并运行了 IIS。您拥有的实际 webrole.cs 和 workerrole.cs 代码只是在启动 Web 角色/工作者角色实例时运行的脚手架。您还拥有可以处理提升权限任务(例如修改注册表和安装软件)的启动脚本。

关于您的策略:您不必必须为您的 Windows 服务创建辅助角色,但如果您觉得会出现性能问题,您应该考虑这样做。您可以选择在您的网络角色中运行它 - 只需从您的 OnStart() 或 Run() 启动线程。您需要确保只有一个调度程序正在运行。有许多关于在 Windows Azure 中运行调度程序的 SO 问题,例如 this one,还有一些讨论了quartz.net 的使用,例如this

关于共享的云驱动器:一个角色不能与另一个角色共享驱动器号。而使用云驱动器,只能有一个作家。事实上,每个角色实例都需要自己的云驱动器。这是您可能需要考虑将 Blob 存储用于通用文件存储的领域。

根据您提到的没有 UI 的辅助角色:虽然 Visual Studio 不便于将 Web 应用添加到辅助角色,但您可以这样做。更重要的是:由于工作角色只是一个 Windows Server VM,因此没有什么可以阻止您运行任意数量的替代 Web 服务器(例如 tomcat、jetty 和 jboss)。您只需要从启动脚本或通过启动进程从 OnStart() 运行这些。您还需要根据需要创建输入端点(例如 http 端口 80、https 443)。您可以轻松地以 Web 角色运行这些服务器(并运行支持 tcp、udp、http 或 https 的任何其他类型的端口服务器)。

关于启动项目:您的云项目将是启动项目。 Web 和辅助角色实例并行启动。

【讨论】:

    猜你喜欢
    • 2017-05-21
    • 2019-02-15
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多