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

时间:2015-05-19 15:24:41

标签: azure windows-services cloud azure-webjobs

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:6)

2016年4月4日更新

自编写本文以来,Azure中有两项额外功能可供选择,具体取决于您需要的功能:

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

Azure Service Fabric:微服务平台,支持演员模型,有状态和无状态服务。

您有3个基本选项:

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

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

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

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

缺点 - 您需要更新代码,您无法访问底层资源(如果您需要),还有更多要记住的事情而不是缺点 - 它使用相同的资源作为webapp部署的。

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

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

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

(编辑:特洛伊·亨特有一篇很棒且相对较新的博客文章,说明了我上面提到的关于网络工作的大部分要点:http://www.troyhunt.com/2015/01/azure-webjobs-are-awesome-and-you.html