2011-12-16 71 views
2

我有一个运行在共享IIS7主机上的ASP.Net MVC网站,允许用户创建自己的登录页面。该网站允许用户编辑内容,风格(通过UI编辑CSS)以及上传图片。具有用户可编辑内容的Azure网站

我正在考虑迁移到Windows Azure,以提高可扩展性和提高数据库备份

一个绊脚石是(使用SQL Azure数据同步看到http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-backup-and-restore-strategy.aspx,我与我的主机提供的SQL备份计划很有限的),因为客户端可以上传图像和编辑css文件,这些文件需要存储在blob存储或数据库(任何其他选项?)。我不想使用数据库,因为数据库存储成本更高。

但是,如果这些文件存储在blob存储中,考虑到从blob存储中获取文件(css,images)而不是从与网站相同的磁盘读取,这会如何影响网站的性能?我知道浏览器缓存将减少这些文件的请求,但第一次请求呢?

回答

1

这些文件需要被存储在Blob存储或数据库 (任何其他选项?)。

NO。没有其他选择。

但是,如果这些文件存储在Blob存储,怎么会考虑到文件(CSS,图像) 是从Blob存储,而不是从同一 读取获取网站的这一 冲击性能磁盘作为网站?

当用户保存编辑时,唯一的性能是“降级”。而不是当文件被提取时。但是随着常规方法的使用,你必须变得更加敏捷。不必将CSS和图像的URL指向文件系统(即/styles/site.css),而必须将它们直接指向blob(即http://account.blob.core.windows.net/styles/site.css)。

或者甚至更好 - 就像olivehour建议的那样 - 您可以启用blob存储帐户的CDN并将CSS /图像网址格式化为指向CDN版本。因此,在blob中使用CSS和图像的唯一性能影响会更好,性能更好。

请注意,您可以将自己的域与Blob存储和CDN相关联,因此不会有任何像“blob.core.windows.net”这样的花哨网址。

3

使用blob存储的CSS和图像将实际上增加您的网站的性能。正如astaykov所述,blob具有自己的URL,与您的部署URL分开。这意味着您通过Web角色的IIS服务器减少了流量,从而减少了该服务器实例的整体负载。

此外,浏览器通常配置为对给定域的两个并发连接。通过使图像和css位于单独的域上,您的浏览器现在将具有更多的并发连接。

关于编辑图像或css文件,确实Web应用程序代码需要将新内容推送到blob,这可能会增加一些延迟。但是,这种延迟可能会或可能不明显(取决于您在网络应用上的负载)。与提供内容相比,我认为这应该是一种不经常的操作。

0

现在您可以使用Windows Azure网站,如果您不想要,您不必担心迁移到SQL Azure数据库 - 它基本上与您当前通过IIS7托管的任何内容基本相同。您可以通过WebMatrix中,你的MVC的网站仍然可以写为“文件系统”管理这一切(你的客户端上载css文件)

You can find more about Windows Azure Websites here.