2

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

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

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

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

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

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

现在回到问题
每当有人注册免费试用时,我都会将一条记录添加到我拥有的管理数据库中。

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

那么,如何从 Worker 角色在 Windows Azure 中部署新实例?最好是向现有 Azure 实例添加一个新网站,并为该特定网站创建一个新的 SQL Azure 数据库以供使用。

这需要很多工作来设置吗?甚至可能吗?

4

2 回答 2

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上有很多很好的博客(观看视频)

于 2011-06-17T15:46:28.597 回答
3

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

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

和...

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

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

如果确实如此,您绝对可以从工作人员角色执行此操作 - 只需查看 Nate Totten 的多租户 Web 角色博客文章和相关代码即可。查看实际操作 IIS 的 webdeploy 代码。

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

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

于 2011-06-17T15:54:28.207 回答