2016-06-15 93 views
2

我是新來的Azure和雲計算平臺的發展 - 我有一個Web應用程序,我創建使用Azure的Web應用程序實例

公司表中的多個公司和 單獨使用外鍵的 company_productscompanyid

是否有可能運行多個實例,其中每個實例都有自己的SQL數據庫?我想這樣做,因爲每個客戶都是獨特的,他們可能需要量身定製的模塊。

+0

爲什麼不在一個Web應用程序下有不同的插槽,指向你創建的不同數據庫?我與Azure合作,我有一個單獨的Web應用程序,約有4個插槽全部投入生產。當然,性能有所下降,但它仍然可以完成工作。 –

回答

1

對於如何構建應用程序沒有限制。您可以根據需要創建儘可能多的數據庫,並根據需要使用多個Web應用程序(無論是在同一個應用程序服務計劃中還是跨多個應用程序服務計劃)。你如何做到這一點完全取決於你,但沒有 - 沒有任何東西強迫你使用任何單一的數據庫。

0

大衛說,你可以做到這一點你喜歡。我的建議是在應用程序的web.config中使用連接字符串來控制要與之通信的數據庫實例,然後您可以在Azure門戶(或您的ARM模板)中將您的Azure Web應用程序部署的「插槽設置」配置爲覆蓋該部署的Web配置設置。因此 - 您可以創建描述您的基礎架構的ARM模板,並且可以將您的應用服務計劃,Web應用,Web配置,SQL數據庫部署到專門命名的資源組(即針對您的某個客戶)。這將具有指向該資源組中的數據庫實例的配置,以及可能啓用/禁用特定於客戶的功能的其他配置。儘量保持代碼和部署儘可能通用,否則最終會導致未來的維護噩夢。

有關azure Web應用程序中配置設置的信息,請參閱https://azure.microsoft.com/en-gb/documentation/articles/web-sites-configure/

1

如果我正確理解您的問題,您希望每位客戶擁有自己的實例和獨立的數據庫?

看一看這篇文章:https://msdn.microsoft.com/en-us/library/ff966499.aspx

我建議使用Azure的應用程序服務,並在他們自己的應用程序運行的每個客戶的。由於所有應用都在相同的應用服務計劃下運行,因此您可以省錢。然而,對一個實例的使用不影響另一個實例的性能。 App Service有很多好處。

https://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/

對於起步的,我建議使用爲每個客戶單獨Azure的SQL數據庫。這是爲了節省資金,因爲您可以將S0/S1數據庫轉爲相對便宜。然後,您可以通過Azure門戶爲您的應用服務計劃下的每個應用設置連接字符串。

如果您最終快速縮放,請查看彈性數據庫。您爲數據庫服務器付費,併爲每個服務器獲得200個數據庫。因此,如果您擁有不少客戶,並且可以證明成本合理,那麼它的確非常經濟。但是有一些有用的Azure工具可以使管理彈性數據庫池變得更容易。查看Azure文檔以獲取更多詳細信息。

一旦建立了這個體系結構,您可以通過門戶管理您的實例/數據庫,或者設置另一個邏輯應用程序來管理所有實例。如果只是通過門戶網站進行管理,開發工作會少很多,但如果這是一款SaaS產品,並且將迅速擴展,則可能需要提前投資自動化某些流程,以便部署新的實例不必手動完成。

我更喜歡這種方法,因爲您可以在各個自定義應用程序中指向不同的子域。 (即customer1.yourdomain.com,customer2.yourdomain.com)。每個應用程序在azurewebsites.net下都有自己的域名,所以如果你不介意使用該域名,你可以堅持下去。這很好,因爲您不必管理自己的DNS或擔心SSL證書,因爲它已經爲您管理。如果你確實需要你自己的自定義域名,這裏有很多文檔。 Azure還有一個DNS服務,用於自動創建CNAME記錄,同時自動啓動一個新應用程序並將數據庫部署到您的池並初始化數據庫,等等。

相關問題