azure - 如何确保我的 Azure Web 应用程序“足够快”地为海外客户提供服务?
问题描述
我试图让这个标题尽可能具有描述性。但我希望向一家在许多不同国家/地区拥有各种“站点”(物理站点)的公司提供 SaaS 产品。
出于合规性目的,每个国家/地区都必须将自己的数据库存储在最近的 Azure 位置。无论哪种情况,为了合规与否,他们都需要一个新的数据库——所以我不妨将每个站点的数据库放在最合适的位置。
但是,我希望数据库是唯一存在于不同位置的东西。这是一个多租户系统,我的计划是让所有英国订阅都通过相同的网络应用程序服务(.Net 核心网络 API 是值得的)。这很好,但是对于拥有海外站点的公司,我如何决定是否会在通过同一英国服务器运行所有请求时受到性能影响,而不是通过配置来获得更大的利润损失每个国家/地区都有网络应用服务?
是否有一些我应该关注的指标?我很高兴提升 Web 应用服务的规范。
解决方案
您的问题不会是网络应用程序的性能,无论用户来自英国还是欧洲,它的性能都是一样的。问题是用户访问您的网站的延迟,应用程序离用户越远,延迟就越多。如果您将客户的数据存储在他们国家/地区的数据库中,那么这将使事情变得更糟,因为现在您的 Web 应用程序需要在返回到客户端之前转到另一个位置的数据库。同样,无论应用程序或数据库大小增加多少都无济于事。
您可以做的第一件事是使用您的 Web 应用程序设置 App Insights,这将为您提供有关数据库查询花费多长时间、客户端操作缓慢等的大量信息。您可以在此处查看一些基本示例。
您可以查看的另一件事是在您的 Web 应用程序前使用 Azure Front Door。这将为您的应用添加缓存和本地存在点。因此,用户将在靠近他们的 MS 网络上找到一个存在点,然后他们将通过 MS 主干连接到您的应用程序,这应该比通过 Internet 更快。
最终,如果您的性能不是您想要的英国以外的用户,那么唯一的解决方案是创建一个靠近他们及其数据的 Web 应用程序实例。
推荐阅读
- python - Python,Pandas 从数据框创建新数据
- javascript - window.open 中的 PHP Ajax 响应
- python - 在 python 中使用正则表达式在字符串中查找精确长度匹配
- c++ - 为什么按值传递 string_view?为什么 Visual Studio 不能对此进行优化?
- java - 如何复制和压缩然后粘贴多个jpg图像
- android - 所有软件包均不可下载 Android studio 3.1.2
- wordpress - 安装 wpbakery 插件后,我无法登录我的 worpress 网站。我收到以下致命错误
- javascript - 图像未从 Discord.js Bot 的嵌入式 URL 中显示
- swift - 带有 throw init 行为的快速惰性 var
- cassandra - Cassandra 是基于列的还是面向列的?