c# - 如何在本地/内部托管 Azure 辅助角色?

标签 c# azure azure-worker-roles

一些背景......

我们是第一次涉足 Azure,并正在尝试逐步实现这一目标。目前,我们的第一个应用程序将是监视队列以处理请求(例如发送电子邮件或执行一些屏幕抓取)的辅助角色,我们只需从本地 MVC 应用程序和 WCF 服务插入到队列中。稍后我们会将 MVC 应用和 WCF 服务迁移到 Azure。

我们的开发工作流程基本上是这样的(在不重要的方面进行了一些修改):

  1. 在本地和一些共享服务器上进行开发。检查源代码管理。
  2. 每 15 分钟,构建服务器就会构建一次并部署到“开发”环境(如果我们需要访问本地以外的“开发”环境,则兼作 CI 和覆盖)
  3. 技术测试人员手动触发构建服务器,将最后成功的“Dev”版本部署到测试环境(或者之前部署的测试版本,包括/不包括数据库)。
  4. 技术测试人员和业务测试人员手动触发构建服务器,将上次成功的“测试”版本(或者之前部署的测试版本,包括/不包括数据库)部署到 QA 环境。
  5. 有时我们会合并 QA 批准部署的变更集。
  6. 稍后,我们的生产构建服务器会将此版本部署到临时环境,然后再部署到我们的生产环境(我们在并行/独立环境中托管它 N 次)。

正如您所知,我们有许多内部托管的应用程序版本,供内部支持人员在投入生产之前使用。我希望这些对 Azure 的依赖程度相当低。我不需要完成服务器依赖性,因此我们将继续使用 Azure 队列,也许还有一些其他机制,只是因为它们很容易继续使用,但我们不希望我们的构建服务器必须部署到 Azure对于每一种环境(或者支付所有托管费用)。

那么,我们如何才能以实际测试部署到 Azure 的代码的方式合理地在本地托管我们的辅助角色?

建议的一个选择是,我们将辅助角色创建为包装器/外观,并在类库中完成所有实际工作,这是我们的计划。然而,允许我们“托管”它的后续操作是创建第二个包装器/外观应用程序,它执行与辅助角色相同的工作,只是我们可以将其作为计划任务或窗口运行服务器。最终,我不喜欢这个选项,因为整个项目在进入登台之前从未经过测试。

是否可以执行类似的操作,我们创建第二个包装器/外观应用程序,而不是调用它实际引用的类库并调用工作线程中的 Run() 函数角色?

最佳答案

你认为Azure emulator可能对你有帮助吗?这些是 differences真实的 Azure 提供商和模拟器之间。

为你的 worker 角色设置一个外观似乎是合理的。并使用适配器使任何可能的云(或其他托管)技术适应该外观?只是想提出一些想法。我之前实际上使用过这种方法,但这是一个“个人”项目。

使用PowerShell配置您的角色等等。 配置您的 Azure 模拟器,如 this .

关于c# - 如何在本地/内部托管 Azure 辅助角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7111338/

相关文章:

c# - Unity无法旋转粒子系统

Azure 服务总线命名空间创建失败并出现未知错误

Azure 服务总线 - 公开来自本地的数据(调用自定义服务)

c# - C# 中的 LINQ : Foreach inside linq

c# - WPF DataGrid - 即使 SelectedItem 是绑定(bind)属性也突出显示选定的行

c# - 检测文件是否被操作系统阻止

Azure Cosmos DB 上的 MongoDB $sortbycount 解决方法

azure - 如何解决 'Unexpected value & mapping error in YAML file (Azure DevOps)'

azure - OnStart 与批处理文件的启动脚本?

azure - 这些 csdef 和 cscfg 值的 ARM 模板等效项是什么