Azure Web应用程序:CDN +应用程序服务与Blob存储

问题描述 投票:2回答:2

如果在Azure中使用与网站/ webapp相关的CDN(即Azure应用程序服务),使用blob存储与仅使用Web应用程序作为端点有什么好处/缺点?

例如,一个简单的CMS网站将所有上传的图像存储在/uploads/myimage.jpg中

使用CDN我可以在mywebsite.com/uploads/设置其端点,或者我可以创建一个blob容器,将CMS设置为存储图像并将其设置为CDN的原点。

选择一个而不是另一个我有什么考虑?

azure azure-web-sites azure-storage azure-storage-blobs azure-cdn
2个回答
2
投票

正如罗布在他的回答中所说,在性能方面没有太大的区别。以下是我认为Web应用支持的CDN和blob支持的CDN之间的核心差异:

  • 通过首次命中对象(或缓存过期后的命中),Web App支持的CDN最初将通过您的Web应用程序获得该流量路径。如果它是一个非常大的资源(例如视频文件),您可能会注意到由于带宽以异常高的方式消耗而导致间歇性性能下降(直到此对象在CDN中缓存)。 Blob存储没有相同类型的带宽限制。
  • 使用Web App支持的CDN,您必须记住您的存储受到您选择的Web App层的限制。例如,如果您有10 GB的资产,这可能会迫使您进入更高级别。使用Blob存储,您将拥有500TB的总耐用存储空间,对象大小可达4.77TB。
  • Web Web App支持的CDN,存储在您的Web应用程序中的存储是持久的,就像blob存储一样,直到您删除Web App。那个存储空间消失了。使用Blob存储,即使在删除Web App(或整个App Service)之后,您的存储仍将保留。当然,如果删除存储帐户,您的对象将会消失...
  • 如果您拥有多个网络应用程序(或其他地方托管的其他应用程序)所需的资源,您将开始从一个应用程序获取链接,指向另一个应用程序的资产,引入依赖关系(例如,带有css链接到内容的网络应用程序A在网络应用程序B)。你需要仔细管理它。或者将公共资产存储在blob存储中,并避免应用程序到应用程序的链接依赖性。
  • 通过Blob存储,您可以选择在与Web应用程序不同的区域中查找静态资产。通过Web应用程序存储,它们始终是共存的。 (我不是主张在不同地区分开内容;只是指出这样做的灵活性)。
  • Blob存储的内容管理可以通过多种方式完成:直接REST API调用,基于SDK的调用以及许多第一方和第三方工具。使用Web App内容,没有这样的API和工具;您必须在启动时(或手动,或通过脚本,或者您选择的其他方式)将资产与您的代码一起部署,或者从其他来源(例如blob存储)复制内容。

3
投票

如果我理解你的问题,你就会问两种不同场景的好处和缺点:

  1. 使用Azure Blob存储支持的Azure CDN。
  2. 使用直接访问底层Web App的Azure CDN。

老实说,两者之间没有太大的区别。当您向CDN请求资产时,Azure将检索内容,对其进行缓存并提供服务。因此,一旦加载了CDN的缓存,两种方案之间就没有区别了。

如果您的缓存过期标头在很短的时间内处理非常大的文件和大量请求,那么使用Blob存储进行初始加载将是一个更好的选择,可以从您的Web应用程序中卸载。

我可能会从最简单的解决方案开始,只有在遇到问题时才会调整。

© www.soinside.com 2019 - 2024. All rights reserved.