从Azure中的辅助角色部署Web角色

时间:2011-06-17 15:13:08

标签: asp.net-mvc-3 azure azure-worker-roles azure-web-roles

我正在研究一些Windows Azure的东西,以便决定是否迁移到Azure。

基本信息
要回答这个问题,你需要对我的应用程序有一些基本的了解,所以这里就是。

该应用程序是连接到SQL Server数据库的ASP.NET MVC 3应用程序。

这是一个单实例应用程序,这意味着每个客户最终都有自己的应用程序实例在我们的服务器上运行,并作为网站部署到IIS 7。

我有一个SQL Server,每个实例都有自己的数据库。

我还有一组Windows服务来进行一些后台处理。这应该是直截了当的,因为我只是重写那些在Windows Azure中使用辅助角色 - 无论如何,服务中的大多数逻辑都位于他们自己的类(库)中,所以它自己只调用一个或多个服务课堂上的方法。

现在回答问题
每当有人报名参加免费试用时,我都会将记录添加到我拥有的管理员数据库中。

然后我有一个Windows服务,它将一个ASP.NET MVC 3应用程序的新实例部署到IIS,授予几个文件夹的权限,运行数据库部署脚本并更新记录以反映它现在已经部署,最后发送一封电子邮件给潜在客户,他们已经创建了免费试用版 - 以下是您访问它的方式。

那么,我如何从工作者角色在Windows Azure中部署新实例?最好是,我只是将一个新网站添加到现有的Azure实例,并为该特定网站创建一个新的SQL Azure数据库。

这需要大量工作吗?它甚至可能吗?

2 个答案:

答案 0 :(得分:3)

我认为你想要实现的大部分事情是可能的。

肯定需要一些工作来设置!

有关如何实现所需内容的一些想法,请查看MS SaaS示例 - http://www.fabrikamshipping.com/ - 专门用于将现有应用移植到Azure上的SaaS。在这个应用程序中,他们有一个“入职流程” - 该流程包括设置新的SQL连接和新门户。

http://blogs.msdn.com/b/vbertocci/archive/2010/10/07/new-online-demo-introducing-fabrikamshipping-saas.aspx

上有很多关于此事的好博客(观看视频)

答案 1 :(得分:3)

基于两个引号,我建议将其称为多租户应用程序:

  

这是一个单实例应用程序,这意味着每个客户最终都有自己的应用程序实例在我们的服务器上运行,

和...

  

将ASP.NET MVC 3应用程序的新实例部署到IIS的Windows服务,授予几个文件夹的权限

如果我理解正确的话,那就是“一个”IIS服务器(好吧,在Windows Azure中,它是一个Web角色,可以扩展到多个实例),并且每个新的“租户”都会设置一些新的东西来支持租户。

如果情况确实如此,那么你绝对可以从工人角色来做这件事 - 只需看看Nate Totten的multi-tenant web role blog帖子和相关代码。查看实际操作IIS的webdeploy代码。

进一步:看看Cloud Ninja,我的一些队友和Fullscale180一起发布的项目。这是一个多租户应用程序,演示了如何在单个部署中管理多个客户,以及监控和扩展。

最后:如果您需要实际创建全新的服务主机和存储帐户,Windows Azure Management API的最新更新支持此功能。 我希望有所帮助...