2011-12-16 67 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.