【问题标题】:Scaling Azure cloud services geographically across multiple data centers [closed]跨多个数据中心在地理上扩展 Azure 云服务 [关闭]
【发布时间】:2015-09-11 20:37:18
【问题描述】:

我有一个相当典型的通用应用程序部署到 Azure,它包含以下组件:

  • 两种云服务 - Web 和 Worker
  • Azure 服务总线
  • Azure SQL 数据库
  • Azure 存储

在 Azure 管理控制台中,您可以选择 automatically scale out 每个云服务(意味着添加更多服务器),这发生在同一个数据中心内。

完整云服务架构(如我们的)扩展到多个数据中心的最简单方法是什么?

或者,如果将我们的云服务只是复制到另一个数据中心(正确处理负载平衡等)足够容易,SQL 和存储延迟/传输率是否会通过微软相当快数据“骨干”?

我问的原因是我们的服务器目前在欧洲,但我们即将在亚洲大举进军,并希望缓解网站(也托管我们的移动 API)的任何性能问题。

我很欣赏这是一个重要的问题,因为您需要考虑同步 SQL 数据库和 Azure 存储容器,但我希望 Microsoft 已经考虑过这个问题 :)

我目前使用 Visual Studio Azure 项目中的“发布”命令进行部署。这有一个 ServiceDefinition(包含我的两个云服务)和每个环境(实时/测试)的 ServiceConfiguration 文件。

我真正想要的是像 this 一样简单的东西(但可能来自 Visual Studio):

>git push azure-NorthCentral master
>git push azure-SoutheastAsia master
>git push azure-WestEurope master

本示例使用Git deployment for Azure Web Sites,它比我们的云服务架构更加孤立,例如无需考虑数据同步。

【问题讨论】:

  • 您的应用在 Azure 中并不是真正“相当典型”的应用。绝对是一种常见的结构,但如今,构建应用程序的方法很多。请注意,这可能会被关闭,因为它非常广泛,并且在地理缩放方面确实没有一个正确的答案。而且,由于这是一个评论,而不是一个答案:可能需要考虑转向基于命令行/脚本的部署管理,而不是使用 Visual Studio(这是一个手动过程)。
  • 感谢大卫,感谢您抽出宝贵的时间。听到我没有错过任何技巧很有用 - 同意您关于基于脚本的部署。

标签: c# performance azure architecture azure-cloud-services


【解决方案1】:

我将这个问题标记为过于宽泛,因为老实说,在地理缩放方面没有正确的答案。但是,我想就 Azure 原生提供的与您的应用相关的内容(无论您是否选择合并它们)提供一个客观的答案。

Traffic Manager 专为根据特定规则(最近、循环、主/故障转移)将您的流量路由到特定区域而设计。根据您的规范,这会将流量引导到您部署到的特定区域。

Azure 存储提供了异地复制辅助存储的能力(您不能为辅助选择选择区域;每个区域已经与另一个区域配对)。然后,您可以选择从次要区域而不是主要区域读取。您将不得不处理数据最终一致的事实。

SQL 数据库服务提供主动异地复制,您将在其他区域拥有只读数据库(同样,这是异步复制,尽管您的辅助节点在事务上保持一致)。

请注意:区域之间的带宽/吞吐量没有 SLA/性能指标。您需要进行一些基准测试。

【讨论】:

    猜你喜欢
    • 2011-07-20
    • 2010-10-19
    • 2015-08-29
    • 1970-01-01
    • 2015-07-28
    • 2014-09-28
    • 2016-08-21
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多