在天蓝色Web角色中运行许多项目

时间:2013-01-07 11:35:09

标签: azure installation asp.net-web-api azure-web-roles

在我现在的公司,我们正在研究azure,以便将我们的一些旧系统迁移到云端。我们有以下系统都安装在客户所在地。

数据库(SqlServer) 处理服务器(Winform应用程序) 各种客户端(Winform应用程序)

我们想要做的是将处理服务器转换为ASP.NET Web API,并创建一个新的Job Scheduler作为某种长时间运行的进程,它将轮询数据库并将请求发送到处理服务器。

这一切都很好,但我们不确定这样做的最佳方法。

我们很高兴为服务器使用作业调度程序和ASP.NET Web API的服务,但我们不知道管理安装的最佳方法。

我们想要做的是为每个大客户提供一个带有调度程序和服务器的WebRole,以及一个同时运行多个调度程序和服务器的WebRole。

所以问题,

这实际上可行吗?你可以在网络角色中运行很多项吗?

2 个答案:

答案 0 :(得分:3)

Web角色本质上是一个带有一些代码脚手架的Windows Server虚拟机。您可以运行任何可以通过无交互MSI / xcopy /等安装的东西。您有启动脚本以及从代码安装的能力(在OnStart()事件处理中)。

Web角色和辅助角色主要区别在于IIS的激活。否则,您可以将它们视为等效。

定义单独角色(无论是网络还是工作人员)的好处:每个角色都有自己的大小和数量。例如,这可以让您为前端设置一堆Small Web角色实例,也可以为一些或两个大型实例执行一些计算密集型任务。但实际上,没有什么可以阻止你将所有内容加载到一个角色中。只是现在一切都会步调一致。

SQL Server不适合Web /辅助角色模型,因为安装无法完全自动化。这更适合虚拟机(允许您构建VM并保存它,随时运行,完全构建)。有关虚拟机here的更多信息。如果你走这条路,你需要从你的网络角色直接访问你的数据库。您可以使用Virtual Network进行此操作。

关于SQL的最后一件事:Windows Azure SQL Database是数据库即服务,你不构建任何东西:只需启用它,设置你的最大大小,然后开始使用它。虽然它没有SQL Server的每一个功能,但它涵盖了绝大多数功能,并且每个数据库可以扩展到150GB(并提供用于扩展的分片)。您只需使用Windows Azure SQL支付存储容量;运行它的服务器没有成本,也不需要维护数据库服务器。

答案 1 :(得分:0)

您可以将WebRole用作API,将WorkerRole用作调度程序。您可以为两者使用不同的大小和实例计数,并根据需要将它们保存在同一个VisualStudio解决方案中。

我会避免将WebRole用于调度程序。