Windows Azure Content Delivery Network简介


 

 

作为Windows Azure CTP的一部分,我们发布了Windows Azure Content Delivery Network (CDN) ,它能用来传输Windows Azure Blob 内容。 Windows Azure CDN 向开发者提供了一个全球性的解决方案来传输高带宽内容。

Windows Azure CDN 分步在全球(美国,欧洲,亚洲,澳大利亚和南美)18处地点,并会继续扩大。Windows Azure CDN 将您的Windows Azure blobs 缓存在某个最佳地点,这样能提供最大的带宽来将您的内容传输给用户。您可以通过Windows Azure Developer Portal 来为您的任何一个存储账户开启CDN传输功能。CDN只提供了对于存储于公开blob容器(能被匿名访问)的blob的边缘传输。

CDN所带来的好处是对于那些越远离存储于Windows Azure Blob服务中的内容源的用户提供越好的性能和用户体验。另外, Windows Azure CDN 提供了对于热门事件内容的世界范围的高带宽访问。

当您为存储账户开启CDN访问, Windows Azure Portal 向您提供了一个如下格式的域名: http:/ /<guid>.vo.msecnd.net/. 此域名可以被用来访问公开容器内的blob。举例来说,对于一个公开的容器 "images" ,以及一个存储账户 "cohowinery",一旦存储账户开启了CDN访问功能,用户可以通过如下任一URL访问该容器内的blob:

  • Windows Azure Blob 服务 URL: http://cohowinery.blob.core.windows.net/images/
  • Windows Azure CDN URL: http://<guid>.vo.msecnd.net/images/

当通过 Windows Azure Blob 服务 URL发送请求时,blob直接从 Windows Azure Blob服务中读取。当通过Windows Azure CDN URL发送请求时,请求被重定向至离发出该请求的位置最近的CDN端点。如果在该端点没有发现所需blob,之后CDN便会从Windows Azure Blob服务处检索获得所需blob,并缓存在该端点,且为该缓存blob设置一个生存周期(time-to-live ,TTL)。TTL 指定了在Windows Azure Blob 服务刷新该blob之前,它应该被缓存于CDN的时间。CDN只在TTL过期时才会企图刷新从 Windows Azure Blob服务处取得的blob。 默认TTL时间为 72 小时。 在2009 PDC大会上,我们会允许用户为您的Windows Azure blobs指定标准的HTTP Cache-Control 头部 。如果该值是为blob而设定的,那么TTL会被设置为Cache-Control 头部指定的值。

只有当内容是通过CDN边缘缓存传输而来的时候,在CDN中缓存blob才有意义,所以在blob生存周期只被请求一次的内容并不会从边缘缓存上获得性能的提升。性能改善最多的是那些在其生存周期内被频繁访问的blob内容。

您也可以在Windows Azure Developer Portal 内,按照存储账户来为Windows Azure CDN 访问注册一个定制的域名。举例来说,如果您希望通过"merlot.cohowinery.com"来访问您的CDN内容,您可以在门户内为CDN端点注册一个定制域名。这样便允许你通过如下3种URL方式访问:

  1. http://cohowinery.blob.core.windows.net/images/
  2. http://<guid>.vo.msecnd.net/images/
  3. http://merlot.cohowinery.com/images/

最后2种URL通过Windows Azure CDN 访问"images" 容器内的blob。而第一种URL通过Windows Azure Blob 服务直接访问blob。

通过如下步骤来为存储账户开启CDN访问功能:

  1. 访问Windows Azure Developer Portal。
  2. 单击您的存储账户。
  3. 为您的存储账户单击 "Enable CDN" 。
  4. Windows Azure Developer Portal会提供如下格式的CDN域名: http://<guid>.vo.msecnd.net/ .

为该端点所创建的配置不会立即生效;需要最多60分钟来将该注册配置传输至世界范围的CDN网络。此时立即使用CDN域名会得到一个400 错误,直到该配置在全球范围内被更新完毕。

在您完成了上述步骤之后,您必须指定哪些容器被作为公开容器。 (http://msdn.microsoft.com/en-us/library/dd179391.aspx). 之后 ,您便可以通过CDN URL访问那些容器内的blob。CDN 域名代表了存储账户,所以任何该存储账户内公开的blob容器都能通过该CDN URL访问到 。

您也可以为Windows Azure CDN 端点注册一个定制域名。按如下步骤注册,并为您的CDN内容使用一个定制的存储域名:

  1. 访问 Windows Azure Developer Portal
  2. 单击您的存储账户
  3. 在您的http://<guid>.vo.msecnd.net/ 端点上单击  "Manage"
  4. 输入您的定制域名
  5. 为了完成定制域名的注册,会验证您是否拥有该域名。您会被要求为您的 "custom.domain.name" 注册一个 CNAME 记录( 从"<guid>.custom.domain.name" 指向"domainnameverification.windows.azure.com", <guid> 是Windows Azure Developer Portal所指定的)。
  6. 一旦您注册了该CNAME,单击验证CDN端点。Windows Azure 会验证该CNAME记录是否存在,如果成功,则您的定制域名注册完成。

使用定制域名:

  1. 创建一个CNAME 记录,用来将"custom.domain.name" 指向"<guid>.vo.msecnd.net"
  2. 使用如下blob API,将希望提供匿名访问的容器变为公开容器: 
    http://msdn.microsoft.com/en-us/library/dd179391.aspx
  3. 之后,您便可以通过http://custom.domain.name/,为您的blob提供匿名访问。

如果您不再希望在CDN中缓存blob,您可以:

已经缓存在CDN内的blob会被保留,直到TTL过期。当TTL过期时, Windows Azure CDN会验证CDN端点是否依然有效以及 Windows Azure blob 是否依然可以被匿名访问。若不是,该blob不再被缓存。这意味着如果您改变了blob的内容,而该blob又被缓存在CDN内,这些新更改并不会通过CDN反馈出来,直到缓存内容的生存周期过期,CDN 刷新了其内容。

额外信息:

  • 现在CDN 访问您的blob并不会被收费。 我们会在未来提供Windows Azure CDN方案定价信息。
  • 为了达到最好的性能表现,我们建议缓存的blob小于10 GB 。
  • Windows Azure CDN 访问只支持匿名访问 。CDN访问并不支持HTTP. HTTPS 。
  • 每次一个定制域名只能被注册用于一个存储账户端点。举例,不能同时将 "merlot.cohowinery.com"注册用于2个不同的 Windows Azure CDN 端点。
  • 您可以为不同端点注册交叠域名。举例,如下域名可以同时注册用于不同的存储账户或端点。:
    • http://merlot.cohowinery.com/
    • http://vintage.merlot.cohowinery.com/

 

Brad Calder 
Windows Azure Storage

本文翻译自:http://blogs.msdn.com/b/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx

Comments (0)

Skip to main content