2011-06-17 164 views
2

我正在研究一些Windows Azure內容,以便決定是否轉移到Azure。從Azure中的工作角色部署Web角色

基本信息
要回答這個問題,你需要我的應用程序的一些基本的瞭解,所以這裏去。

該應用程序是連接到SQL Server數據庫的ASP.NET MVC 3應用程序。

這是一個單實例應用程序,這意味着每個客戶最終都有自己的應用程序實例在我們的服務器上運行,並作爲網站部署到IIS 7。

我有一個SQL Server,其中每個實例都有自己的數據庫。

我也有一套Windows服務來做一些後臺處理。這應該是直接的,因爲我只是重寫那些在Windows Azure中使用Worker角色 - 無論如何,這些服務中的大部分邏輯都位於它們自己的類(庫)中,因此它自己只需調用一個或多個類中的方法。

我們的問題
每當有人註冊了一個免費試用,我將記錄添加到一個管理數據庫我有。

然後,我有一個Windows服務,將ASP.NET MVC 3應用程序的新實例部署到IIS,授予幾個文件夾的權限,運行數據庫部署腳本並更新記錄以反映它現在已被部署,並最終發送電子郵件給他們的免費試用版已經創建 - 這是您如何訪問它。

那麼,如何從工作者角色部署Windows Azure中的新實例?最好,我只是添加一個新的網站到現有的Azure實例,並創建一個新的SQL Azure數據庫使用該特定的網站。

這是否需要很多工作才能設置?它甚至有可能嗎?

+0

技術方面不應該太難以設置多租戶Web角色。在數據庫結構中你需要小心的是 - 在普通的SQL服務器上,一個空的數據庫不使用資源,因此基本上是免費的。使用SQL Azure將其視爲與完整的1GB數據庫相同,每月費用爲10美元。 –

回答

3

基於兩個引號,我想建議調用此多租戶應用程序:

它是一個單實例應用程序,這意味着每一位客戶,最終都有自己的在我們的服務器上運行的應用程序的情況下,

而且......

一個部署ASP的新實例的Windows服務。NET MVC 3應用到IIS,權限授予幾個文件夾

如果我理解正確的話,有「一」 IIS服務器(當然,在Windows Azure中,這是一個Web角色,擴展到多個實例),以及隨着每個新的「租戶」,你設立了一些新的東西來支持該租戶。

如果確實如此,您可以從工作角色完成此任務 - 只需查看Nate Totten的multi-tenant web role blog帖子和相關代碼即可。查看實際操作IIS的webdeploy代碼。

進一步:看看Cloud Ninja,我的一些隊友和Fullscale180一起發佈的項目。這是一個多租戶應用程序,演示瞭如何在單個部署中管理多個客戶,以及監控和擴展。

最後:如果您需要實際創建全新的服務主機和存儲帳戶,Windows Azure Management API的最新更新支持此操作。 我希望有一點幫助...

+0

它確實是多租戶。事實證明,將多個網站部署到同一實例的Azure Toolkit方法幾乎與我今天在Windows服務的專用服務器上完全相同。我在想的是在Azure包中只有一個簡單的小MVC Web應用程序,然後將Windows服務部署爲啓動任務。然後,該服務將使實例「自我感知」並精確部署這些應用程序。它負責的實例。擴展到多個實例時,同一個服務將簡單地添加網站並引用正確的SQL數據庫。 – MartinHN

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

+0

+1 - Fabrikam Shipping是支持商業的SaaS應用程序的絕佳演示。 –

相關問題