首页 > 代码库 > Windows Azure Storage (18) 使用HTML5 Portal的Azure CDN服务

Windows Azure Storage (18) 使用HTML5 Portal的Azure CDN服务

  《Windows Azure Platform 系列文章目录》

 

  熟悉Microsoft Azure的读者都知道,Azure在以前的Silverlight Management Portal中,已经提供CDN服务。但是自从改版成HTML5的Management Portal之后,CDN从Azure界面中消失了,用户没法创建新的CDN服务。

  好消息是,最近HTML5的Management Portal又重新提供了Azure CDN服务,相比之前的Silverlight版本有一些区别,笔者在这里向大家介绍一下。

  

  关于CDN的概念问题,笔者不再介绍,各位看官可以参考之前的文档:

  Windows Azure Storage (8) Windows Azure 上的托管服务CDN (上)

  Windows Azure Storage (9) Windows Azure 上的托管服务CDN (中) Blob Service

 

  1.首先我们新建存储账号,命名为leicdnstorage,数据中心选择East US美国东部。数据冗余我们选择本地冗余。

  因为笔者在中国上海,如果不通过CDN的话,需要直接从美国东部的数据中心获取数据。采用CDN之后,则直接可以从最近的CDN节点读取数据,访问速度会更快。

  CDN提供了比Azure其他服务多的多的服务地点,涉及到了美国,南美,欧洲,中东,东亚,东南亚等区域。基本上覆盖了全球主要地区。http://msdn.microsoft.com/en-us/library/windowsazure/gg680302.aspx列出了所有CDN节点位置。任何一个CDN服务只要创建了,就会在所有CDN节点上都生效,覆盖全面的CDN节点为全球范围的用户体验提供了保障。

  从上面的MSDN连接中,我们可以看到离中国大陆最近的CDN节点在香港和台湾。

  

  2.创建完毕后,我们创建container,名称设置为photos,并且设置属性为public blob。

  请注意Azure CDN不支持Container属性为Private,即Private Container中的内容无法被CDN节点分发。

  

  3.创建完毕后,我们将本地的一张图片WindowsAzure.png,上传至photos。

  4.然后我们在Management Portal中,新建App Service-> CDN -> Quick Create,在Origin Domain中选择我们在步骤1中创建的leicdnstorage这个存储账号。如下图:

  

  这样就把leicdnstorage这个存储账号下的Public Container和Public Blob的内容,分发到其他的CDN节点上。

  5.创建完毕后,我们会看到CDN列表中的创建信息:

  

  请注意:虽然上图中CDN Status为Enabled,但是并不是指数据已经从Azure East US数据中心同步到其他CDN节点。

  以笔者个人经验来说,需要大约20分钟才能将storage account中的内容同步完毕。

 

  以前我们访问Azure Storage中的数据是通过blob url,即http://leicdnstorage.blob.core.windows.net/photos/WindowsAzure.png

  通过CDN服务,Azure Storage的URL映射为CDN URL,即上图中的http://az625188.vo.msecnd.net/,我们通过CDN URL访问Azure  Storage中的数据地址为:http://az625188.vo.msecnd.net/photos/WindowsAzure.png

 

  6.网络性能比较

  1)首先我们通过http://leicdnstorage.blob.core.windows.net/photos/WindowsAzure.png

  直接访问Azure East US数据中心存储的图片,通过Chrome的开发工具(F12),可以看到网络延迟在422ms左右

  

 

  2)我们通过http://az625188.vo.msecnd.net/photos/WindowsAzure.png

  访问Azure的CDN节点服务器,访问png图片,通过Chrome的开发工具(F12),可以看到网络延迟在155ms左右

  

 

  总结,Azure CDN服务可以将Azure Storage中的文件直接推送到CDN节点服务器上,用户无需访问Azure数据中文的数据,而是访问离用户最近的CDN节点服务器,可以达到比较好的访问延迟。