替代在Azure云中运行窗口服务

Muh*_*air 2 cloud windows-services azure azure-webjobs

我们目前有一个窗口服务,它在对数据库(SQL数据库)进行一些处理后向用户发送一些通知电子邮件.每天运行一次.

我们想在天蓝云上移动它.一种替代方法是将其按原样放在Azure VM上.但我找到了其他最好的解决方案.

我研究重复和按需Web工作,但我不确定这是最好的解决方案.还有可能更新App.config中的服务代码配置,而无需在云上重新部署服务代码.我的意思是我们可以从Azure门户管理配置.

提前致谢.

Vea*_*tch 6

2016年11月4日更新

自编写本文以来,Azure中有两个额外的功能,这两个功能都是很好的选择,具体取决于您需要的功能:

Azure Functions(基于下面描述的WebJobs):可以以各种方式触发/调用的无服务器代码,并具有扩展支持.

Azure Service Fabric:微服务平台,支持actor模型,有状态和无状态服务.


你有3个基本选择:

  • 在VM上运行的Windows服务
  • WebJob
  • 云服务

关于这些选择之间的权衡,有很多信息,但这里有一个简短的总结.

VM - 优点:您可以基本上按原样移动服务,而无需更改太多或任何代码.它们还具有与Azure中其他资源(blob存储,虚拟网络等)的最简单连接.缺点是您放弃了所有PaaS优势,仍然无法管理自己的VM基础架构

WebJob - 优点:多个调用选项(队列,blob,手动,队列接收循环,连续循环样式等),已安排(将覆盖您的情况).易于部署(可以通过网站,作为控制台应用程序,通过Kudu自动执行),在Azure门户中有一些内置的日志记录 - 是的,为了回答您的问题,您可以更改门户网站本身的配置以获取连接字符串和应用程序设置.

缺点 - 您需要更新代码,您无法访问底层资源(如果您需要),并且需要记住更多的东西而不是缺点 - 它使用与部署的Web应用程序相同的资源.

Web Jobs是最新的选项,但同时似乎正在积极开发以增加功能和实用性.

云服务 - 与托管虚拟机一样,具有一些部署选项,可根据需要访问底层虚拟机.需要从现有服务进行一些代码更改.

你在用例中没有提到任何让我认为Web作业不应该是你尝试的第一件事.

(编辑:特洛伊亨特有一个伟大的,相对较新的博客文章,说明我上面提到的关于网络工作的大多数观点:http://www.troyhunt.com/2015/01/azure-webjobs-are-awesome-and -you.html)