2012-01-13 56 views
2

将Windows服务移植到Azure时建立的最佳实践是什么?是否应该将其更改为工作者角色或迁移到虚拟机角色?还有其他选择吗?假设我的服务写入外部持久性源(MSMQ,数据库,WCF),而不是直接写入文件系统。将Windows服务转换为Azure WorkerRoles

回答

2

将Windows服务转换为工作角色比虚拟机角色好得多。虚拟机角色旨在容纳需要复杂的不可自动安装过程的应用程序。他们也是一个更大的管理痛苦,你想尽可能远离虚拟机角色。如果您可以通过工作角色找到自动部署现有Windows服务的方法,那绝对是一条可行的路。

您还可以查看HPC角色,并根据本地/非本地和加载/计算要求,将Azure机器添加到HPC群集中可能会有所帮助。

所有类型的角色(Web/Worker/VM/HPC)都是无状态的,需要能够根据需要从头开始调整或拆卸。所有类型的角色一次只能运行多个VM实例。

HTH

+0

没有HPC角色(除非我错过了某些东西?)。 Azure是HPC的理想人选,但没有特定的HPC角色 – BritishDeveloper 2012-01-14 13:56:48

+0

http://technet.microsoft.com/en-us/library/gg481749(WS.10).aspx – Igorek 2012-01-15 03:24:57

+0

感谢您确认我是对的;)否,我在开玩笑,我正在澄清,尽管Azure对于HPC来说很棒,但没有像例如“Web角色”那样具体的“HPC角色” – BritishDeveloper 2012-01-15 12:48:01

-1

Azure中有一个名为 “WCF服务Web角色”,其对应于一个Windows WCF服务Web角色的一种特殊类型。这是迁移现有服务的好处。 理想情况下,迁移之后应该利用Azure的特定功能,例如使用队列和工作角色来最大化性能和可伸缩性。

0

我之前写过一篇博文。正是在这里:

http://blogs.msdn.com/b/golive/archive/2011/02/11/installing-a-windows-service-in-a-worker-role.aspx

注意,Windows服务不会与网络控制器直接通信,所以你需要周期性地查验它来检查健康状况,然后根据需要采取行动remediative。

将Windows服务放入工作者或Web角色是可以接受的做法。使用VM角色的主要原因在于是否需要重大(> 10分钟)的设置。我的博客文章详细说明如何安装您的服务。

当然,如果您想将代码移动到工作角色中,那也很好。在这种情况下,您不需要任何特殊步骤来确保结构控制器了解其运行状况。

如果成本是一个问题,将功能组合到网络/员工中也是可以接受的做法。而且,您可以通过不处理代码将其存入网络/工作人员来进行保存。