1. 背景介绍
随着国际化战役的进展,越来越多的客户有数据迁移的需求,其中S3迁移至OSS的需求非常典型。
特别是对于视频行业,音视频的数据批量迁移必然会形成一个通用需求。其中涉及到VOD的对接和S3的迁移,在业务整体流程上需要比较多的细节整理。
当前客户主要架构参考
如架构图所示,当前客户在视频上传环节采用了阿里云的VOD SDK,将视频写入阿里云新加坡region的OSS(VOD内嵌),并且在视频进入后通过SQS和Lambda实现数据拷贝,将数据写入S3。
经沟通,为了维持业务侧最大程度的架构稳定,在迁移后采用类似的方案。
迁移后前端业务依然使用VOD的SDK,在视频进入VOD的bucket后,调用MNS和FC,将数据写入阿里云OSS。整个流程需要VOD配合FC共同编写,同时当前VOD直接对接OSS的bucket已经支持,但是由于本项目中,OSS存储与VOD不在同一region无法实施。
迁移步骤:
2. 存储迁移
此阶段将存储在S3上的历史数据迁移到OSS,可以通过在线迁移服务从S3迁移历史数据到OSS。
登录阿里云在线迁移控制台配置需要迁移的S3的bucket和指定的前缀。在线迁移的机制对启动任务之前已经上传到S3的文件会加入到迁移列表,在迁移过程中新上传的文件,可能存在概率不能加入到迁移列表中。使用在线迁移服务,在控制台填写源数据地址和目标 OSS 地址信息,并创建迁移任务。启动迁移后,通过控制台管理迁移任务,查看迁移进度、流量等信息;也可以生成迁移报告,查看迁移文件列表、错误文件列表,全量和增量迁移均需在这里配置。
S3存储迁移配置方法参考 这里:链接
3. 镜像回源
数据迁移完成后,请在 OSS控制台设置服务Bucket的镜像回源功能,回源地址为第三方S3存储。
参考:链接
这一步的镜像回源规则需要check:链接
要重视视频镜像回源的代码逻辑和参数设置。
同时还要加上S3到阿里云OSS的镜像回源。
注意:若您OSS的Bucket开启CDN加速功能后,在Bucket中修改了Object,使用CDN加速域名访问得到的Object仍是更新前的旧版本,必须在CDN中手动刷新后才能访问到新版本的Object。
这是因为Bucket中的Object更新了,但是CDN中该Object的缓存未到期,所以访问的时候出现异常。您可以开启CDN缓存自动刷新功能。开启此功能后,若Object有更新,OSS会自动刷新CDN上的缓存,从而实现文件更新时缓存自动刷新。具体操作请参见开启CDN缓存自动刷新。
4. 客户端改造
该项目中,前端的对接由VOD完成,配合OSS实现存储服务。
阿里云OSS图片处理服务(Image Processing,简称 IMG) ,是阿里云OSS对外提供的海量、安全、低成本、高可靠的图片处理服务。您可以将原始图片上传保存在上,通过简单的 RESTful 接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。图片处理服务提供图片处理接口,图片上传请使用 OSS 上传接口。基于 IMG,您可以搭建出跟图片相关的服务。
迁移后,VOD的代码需要更改,
这快需要对应的代码开发,具体方案如下:
VOD SDK无需修改,VOD触发复制后,逻辑需要更改,数据进入OSS。
新版本使用率达到客户预期后,同时在线服务迁移数据量已经迁移的数据量已经达到客户预期(建议不低于99%),可以打开客户端的OSS开关。
上传切换到OSS过程中,可能会出现一些文件没有存储OSS。
对于访问到不在OSS上的文件,可以使用服务端的同步程序,通过显示方式将S3上的数据复制到OSS。
5. 回归测试
按测试流程,对Web端、Android、iOS、服务器端进行测试。
6. APP发布
按发版流程,进行业务发布,分步骤更新到使用阿里云。
7. 回滚方案
如需回滚,则将修改的DNS解析记录改回原S3的解析记录即可。
8. 结束工作
确认发布业务完全结束后,经过双方同时确认,删除S3存储和S3 cdn配置。