【问题标题】:Azure webapp instancesAzure webapp 实例
【发布时间】:2016-06-15 14:01:54
【问题描述】:

我是 azure 和云平台开发的新手 - 我有一个 Web 应用程序,并且我使用一个

company 表和 分开 company_products 使用外键:companyid

是否可以运行多个实例,每个实例都有自己的 SQL 数据库?我想这样做是因为每个客户都是独一无二的,他们可能需要量身定制的模块。

【问题讨论】:

  • 为什么不在一个 Web 应用程序下有不同的插槽,并让它们指向您创建的不同数据库?我使用 Azure,我有一个 Web 应用程序,大约有 4 个插槽都在生产中。当然有性能下降,但它仍然可以完成工作。

标签: c# asp.net asp.net-mvc azure webforms


【解决方案1】:

对于您如何构建应用程序没有任何限制。您可以根据需要创建任意数量的数据库,并根据需要拥有多个 Web 应用程序(无论是在同一个应用程序服务计划中还是跨多个应用程序服务计划)。如何执行此操作完全取决于您,但不 - 没有什么会迫使您将单个数据库用于任何事情。

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您希望您的每个客户都有自己的实例和单独的数据库吗?

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

    我建议使用 Azure 应用服务,并在您自己的应用中运行您的每个客户。您可以节省资金,因为所有应用都在同一个应用服务计划下运行。但是,在一个实例上的使用不会影响另一个实例的性能。应用服务有很多好处。

    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 记录,同时自动启动新应用并将数据库部署到池中并初始化数据库等...

    【讨论】:

      【解决方案3】:

      正如大卫所说,您可以按照自己的喜好进行操作。我的建议是在应用程序的 web.config 中使用连接字符串来控制要与之通信的数据库实例,然后您可以在 azure 门户(或 ARM 模板)中配置 azure Web 应用部署的“插槽设置”以覆盖该部署的 Web 配置设置。

      所以 - 您可以创建描述您的基础架构的 ARM 模板,并且可以将您的应用服务计划、Web 应用、Web 配置、sql 数据库部署到一个特定命名的资源组(即针对您的一个客户)。这将具有指向该资源组中的数据库实例的配置,以及可能打开/关闭客户特定功能的其他配置。尽量保持代码和部署的通用性,否则将来您将面临维护噩梦。

      请参阅https://azure.microsoft.com/en-gb/documentation/articles/web-sites-configure/,了解有关 Azure Web 应用程序中的配置设置的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        • 2013-03-08
        • 1970-01-01
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 2011-04-14
        相关资源
        最近更新 更多