行业动态

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
DN与OSS构建灵活的全球资源加速方案
2021-02-02 11:26:46 【

这些年前端工程领域利用免备案CDN来实现网页资源优化加速的方案已经非常普遍,除了快速的资源分发外,免备案CDN在高吞吐量访问、安全防护也起到非常大的作用,免备案CDN + 回源的架构已经深入人心,这里不再探讨免备案CDN 常见的优势和原理,而是聊一聊我们在前端领域利用使用免备案CDN和云存储构建的灵活的适应多种场景的方案实践经验。下面云存储统一用OSS代替,OSS是阿里云的云存储服务,没有特殊说明免备案CDN指的是阿里云免备案CDN。当然,每一家云服务厂商都有对应的免备案CDN和云存储服务提供,服务基本是通用的。

合理的技术架构基本都会做到动静分离,对于静态的场景,比如版本化管理的的资源文件(JS、CSS、图片)、周期性更新的页面都比较适合存储到OSS,然后通过免备案CDN配置OSS为源站的方式来实现低维护成本、高吞吐、快速访问的技术方案。


一、 缓存时间与缓存命中率

免备案CDN缓存架构下,命中免备案CDN缓存才能实现访问的加速,而缓存的命中率是资源的访问频率和缓存时间来共同决定的,访问次数越多、缓存时间越长,资源的缓存命中率就会越大,那么用户平均访问时长就会越短。对于已经版本化管理的资源来说,资源的内容就是随版本确定的,该资源的免备案CDN缓存时间可以是无限期的。无限期缓存可以显著提高缓存命中率,但是访问频率非常低的资源,比如一天只有几次访问,还是会大概率触发回源。因为免备案CDN本身是分布式缓存的节点,访问次数低意味着不一定每一个节点都会有对应的资源缓存,还有一个原因是免备案CDN本身也不是无限的存储空间,有一定的按热度淘汰的算法,访问次数越低的资源淘汰的概率越高。

对于非版本化管理的资源,也就是覆盖式发布的资源文件,常见的比如页面的HTML、一段静态配置的数据。这种依据对应资源更新的频率来进行缓存,对于这种覆盖式发布的场景,不建议缓存过长时间,以免出现问题影响的时间比较长。如果不幸设置了比较长的缓存时间,免备案CDN也有清除缓存的方法,清除缓存不适合大量资源的场景。免备案CDN通常也会限制大规模的调用缓存失效的方法,避免大规模缓存失效造成流量大量请求源站。

二、全球资源加速

区别于免备案CDN的分布式多节点,OSS有地域的概念,在国内的优异的网络基础设施下,OSS数据中心的网络接入通常是多线BGP网络,不同用户运营商访问都很流畅,不考虑容灾,单个地域OSS通常能满足要求, 何况还有前置免备案CDN的加持,对于缓存命中率高的页面,回源时间可以忽略。对于命中率低的资源,即使是回源,OSS的访问速度也足够的快。

但是在海外的场景下,如果海外的免备案CDN节点还是回源到国内的OSS数据中心,跨国网络访问的线路本身就很拥挤,如果没有专线的带宽保障,那么回源超时的问题就不可忽视了,专线的成本是非常高的,很多国家还有数据本地存储的合规性的要求,所以当地的免备案CDN节点回源到当地的OSS数据中心是一个更好的方案。

如果不是特别定制,免备案CDN通常只支持配置单个源站,不支持按照地域解析到不同的源站,要做到当地的免备案CDN节点回源到当地的OSS数据中心,需要让免备案CDN特别的定制支持。对于免备案CDN的大客户来讲,可能不是一个问题。但是对于中小站点还有另一个更自主的方案,就是利用支持地域解析的DNS,来做到根据免备案CDN回源请求的源IP,解析到就近的OSS数据中心。OSS有一个限制是一个域名只能绑定在一个bucket上面。所以这里我们需要在OSS前面加一层网关接入层,来支持同一个域名在不同的地区解析到最近的OSS。


三、OSS多区域文件同步

解决了读取的问题,再来谈一谈多个区域的OSS资源如何同步的问题,OSS海外区域不支持自动同步,所以我们需要从逻辑上来保证用户访问数据的一致性。在我们实践的业务场景中,按照不同的业务类型,分为: 1、国内业务 2、海外业务,海外又会按照地理区域划分,比如东南亚、欧美。一个资源按照业务访问属性,可能只会在某一类地区被访问到,也会有一些全局的资源,每一个地区都会被访问到。

最直接的方案是资源发布时,系统内部调用不同区域的OSS发布,全部成功才认为成功。这种方案能够保证所有区域的一致性,逻辑上也简单,但是存在几个问题: 1. 业务上不是每一个资源都需要海外加速,全部同步造成资源浪费,也会影响发布时间。2. 如果某一个区域OSS出现问题,影响整体发布成功的判断。所以我们最终实现的是按照资源被访问的区域进行打标,如果资源属于国内业务,只同步国内OSS,如果资源属于海外特定区域使用,则只同步特定区域,如果资源确实所有区域都会被访问,则所有区域发布时同步。


当我们把大部分资源做到版本化管理时,利用OSS的镜像回源功能,发布又会简化很多。对于版本化管理的资源来说,一个资源一旦正式发布,确定了唯一的版本号,该版本的内容就无法修改。OSS镜像回源的功能是,当请求在OSS没有找到文件,会自动到源站抓取对应文件保存到OSS,并将内容直接返回到。我们确定一个中心区域的OSS,设置为其他区域的源站,当其他区域的OSS访问某一个资源不存在时,从中心来拉取并同步到该区域,下一次在该区域访问该资源时,资源就已经存在,直接本区域返回。这样做的好处是资源发布测逻辑变得简单,只需要发布到中心OSS,保证中心OSS是全量的内容,不需要考虑其他区域的同步、重试逻辑, 速度也会有保障。同时,资源做到按照访问区域按需同步,减少资源存储冗余。在新增一个区域部署的时候,也能够用这种方式快速同步新区域的资源。


】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇SonicWall网络工具包被滥用于网络.. 下一篇网站遭受攻击,高防IP和高防CDN选..

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:13051179500 18910191973
企业QQ:1245940436
技术支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:18910191973
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800