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

时间:2017-12-13 17:16:36

标签: azure azure-web-sites azure-storage azure-storage-blobs azure-cdn

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

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

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

我选择一个而不是另一个?

2 个答案:

答案 0 :(得分:3)

如果我理解您的问题,您就会询问两种不同情况的利弊:

  1. 使用Azure Blob存储支持的Azure CDN。
  2. 使用直接命中底层Web App的Azure CDN。
  3. 老实说,两者之间并没有太大的区别。当您向CDN请求资产时,Azure将检索内容,对其进行缓存并提供服务。因此,一旦加载了CDN的缓存,两种情况之间就没有区别了。

    如果您的缓存过期标头处于非常短的时间段内并且您正在处理非常大的文件和大量请求,那么使用Blob存储进行初始加载将是一个更好的选择来减轻您的负载网络应用。

    我可能会从最容易为您的解决方案实施的内容开始,只有在您遇到问题时才会调整。

答案 1 :(得分:2)

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

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