一、 需求背景
某客户是电商零售行业的从业者, IT基础设施在自建数据中心,近年业务规模快速扩张,并且市场范围从国内逐渐覆盖至海外,业务运营和运维团队经常会收到海外用户或部分国内用户吐槽电商网站的商品图片和展示视频等数据访问慢,诸多体验问题不利于业务长远发展,希望阿里云能协助评估解决方案。
二、问题分析
该类问题从表象上看是需要解决用户访问数据访问慢的问题,看似是一个网络问题,但通过客户调研沟通,发现客户也尝试过使用CDN加速等方案,我们认为从存储角度看在架构设计上还需要考虑:
1、视频、图片和文本等静态资源文件的存储本身是否是瓶颈,包括QPS处理能力、服务端响应性能和数据冗余保护能力等。
2、存储对外提供服务的网络是否能覆盖主流运营商和小运营商的访问速度。
3、在短期内无法实现海外内各部署一套业务系统的情况下,如何以最优的数据读写方案满足海内外用户访问需求。
因此为了解决该场景问题,我们需要为客户设计一套涵盖数据存放、管理和访问的存储解决方案。
三、方案设计
配合客户业务上云改造,我们从数据存储的源站和访问源站的传输链路上做了相应设计,方案核心包括:
1、存储资源选型使用阿里云对象存储替换自建存储
自建存储在资源弹性、网络带宽和处理性能等方面都存在瓶颈,而阿里云对象存储在图片和视频等非结构数据存储及分发访问场景有天然优势,支持丰富的SDK和API接入,通过restful方式即可访问,并能与CDN无缝对接。
2、通过闪电立方完成线下数据迁移上云
可选择闪电立方离线迁移或在线迁移两种方式,其中离线迁移可通过闪电立方硬件设备一次性批量搬迁数据,迁移速度取决于源站存储性能情况;在线迁移,在源站可提供http列表或有专线对接阿里云的场景下可采用,迁移速度取决于源站存储性能和公网出口带宽。
3、通过镜像回源保障源站切换连贯性
通过闪电立方搬迁后,在业务正式切换前,仍会有增量数据写入至客户线下源站,为保证源站切换至OSS后,增量数据可正常访问,可借助OSS的镜像回源能力,增量数据的访问将触发OSS去源站拉取新数据并在OSS存储。
4、传输加速提升境外及偏远地区的访问性能
为了改善距离CDN边缘节点较远的海外或偏远地区业务访问性能,可使用OSS的传输加速域名,将利用全球分布的云机房,将用户的访问经过智能路由解析至就近接入点,使用优化后的网络及协议,加速数据上传和下载的性能。
5、DNS智能解析实现海内外访问链路区分选择
很多客户为了节省成本或者降低架构复杂性,往往只在国内部署了业务系统,而由于OSS本身已提供优质网络及BGP多线接入,国内大部分区域访问OSS速度都较快,因而在架构设计上会有国内用户访问OSS走默认域名,海外用户访问走加速域名的需求。此时我们可以利用OSS绑定客户自定义域名和阿里云DNS智能解析功能,实现自定义加速区域,把钱用到刀刃上。
能,实现自定义加速区域,把钱用到刀刃上。
四、关键步骤配置及注意事项
1、镜像回源配置
- 源站类型:支持可通过域名或公网IP访问的公共读写源站和私有的阿里云OSS bucket,对私有bucket需要在界面配置对应授权。
- 回源业务量大小需要提前评估,目前国内region默认QPS为2000、流量2 Gbps;海外各地域默认QPS为1000、流量1 Gbps。l 传递指定http header参数:如果源站需要透传类似user-agent这样的header参数,在界面配置即可。
- 设置指定http header参数:部分场景下,源站需要请求头带上指定参数才允许访问,如指定host为某业务域名。
- 镜像回源规则和版本控制无法同时配置,一旦开启版本控制,则无法配置回源规则。
2、绑定自定义域名
- 使用国内的OSS时,需要提前对待绑定的域名做备案。
- 一个域名只能与一个OSS bucket绑定
- 如果在阿里云CDN上做过域名解析配置,则相关信息会同步到OSS控制台,但此时仍需在OSS控制台“绑定自定义域名”界面执行一次绑定操作。
3、开通传输加速
- 开通后会分配全球加速Endpoint: oss-accelerate.aliyuncs.com,必须使用该endpoint才有加速效果
- 传输加速开启及关闭操作会在30分钟内才全网生效
- 远距离场景下加速效果更明显
4、DNS解析配置
- 对需要配置需要加速的区域,默认线路记录值填写为OSS 的普通三级域名,如果要配置不需要加速的区域,此处填写OSS的传输加速域名。这样便可以实现区分不同地区的加速配置
- 使用DNS企业旗舰版可对更细的解析线路做设置,比如具体到国家和地区
五、总结
事实上,以上解决方案实践也可满足国内针对不同运营商、不同省份地市区分不同加速方案的需求,也适用于数据上传写入源站的场景,可应用在电商、娱乐社交、网盘或游戏分发等业务,是一种满足业务短期内实现加速效果的解决方案。