快手迁移案例

项目背景:

快手是一个直播平台,因为中国监管方面有要求,所有直播内容需要保存下来,并且保留期限是61天,如果有需要可以随时调取期间的备份查看视频。以前整个环境是在竞争对手上,但是竞争对手运行存在着一些问题,例如稳定性和易用性上存在不足,所以客户决定把这个项目从竞争对手迁移到Amazon Web Service云。

客户痛点:

快手是继字节跳动之后排名第一的社交媒体公司。他们获得了5亿MAU和70分钟的使用每个用户每天。2018年,他们通过直播业务获得了200亿元的收入。

快手目前拥有2.4亿每日70分钟的在线时间,快手宣布了K3计划,在2020年2月之前,他们的目标是拥有3亿每日时间。

竞争对手部署了媒体备份工作负载,从客户的角度来看,竞争对手的存储不是很稳定,使用起来也不是很方便,然后尝试寻找新的供应商来平滑他们的媒体备份工作。

迁移内容:

1.采用C5.4Xlarge实例可以容纳1100个直播视频流,而我们的竞争对手只能支持800个。

2.采用S3 ZIA在保证数据可靠性的同时降低成本。

3.基于Lambda做数据上传压缩/下载解压,减少优化成本。

4.基于Lambda做数据上传关键信息入库,查询时可以通过代理程序查询到相关URL。

5.搭建专线,实现IDC到Amazon Web Service ZHY的混合云架构。

Amazon Web Service解决方案:

对于客户的痛苦点,存储不稳定的问题,Amazon Web Service提供S3存储满足客户的期望,我们的EC2做LSR的工作,从互联网收集数据,我们的C5.4Xlarge实例可以容纳1100个直播视频流,而我们的竞争对手只能支持800个。由于S3的存储功能,当客户需要检索数据时,他们可以立即获得超出客户预期的数据。

项目成果:

1.竞争对手的 OSS 不够稳定,在客户读取数据的时候存在读取不到数据的情况。迁移到Amazon Web Service云后,我们使用 S3 ZIA 来存储数据,S3 ZIA 可以保证单个可用区 99.999999999% 的持久性和99.5% 的可用性。

2.客户旧系统中没有视频查询功能,客户体验不佳。迁移到Amazon Web Service云后,我们使用Lambda,为客户开发了视频查询功能。可以通过视频的时间、内容等相关信息对S3中的视频进行检索,最后返回视频在S3中的Url,方便客户进行视频下载,通过用户调查,用户满意度提升了3个百分点。

3.在快手媒体备份项目中,按照客户的原架构部署会产生大量的 S3 Put Requst费用,并且高峰时段会对 S3 的 Qps 造成很大的压力。针对客户的业务模型,我们对客户的系统架构进行了基于Lambda的重构。根据数据分析,LSR 服务器每个视频流,每 10 秒会截取一个视频片段(约1.8MB)和一张截屏(约100KB),这样的文件每天大概会生成2亿个,80 台 LSR 服务器每天产生约 1.8 亿次 S3 PUT 请求。我们在 LSR 服务器与 S3 之间开发了基于Lambda的代理程序,我们按照分钟的粒度进行打包,1分钟压缩一次,把12个备份文件打成一个压缩包,同时在数据库记录两级信息,包的名称和包的内容,其中包含时间,视频信息等等。然后放到S3,当用户需要查找某个时间段或者某个内容的视频时,可以从数据库中轻松搜索出这些文件的Url,并进行解压下载。根据分析,优化之后S3 Put Requst费用和Qps,此部分优化节省了大约约80%的数据查询成本。

合作伙伴的价值:

客户不熟悉Amazon Web Service,有很多迁移工作量要做这个项目,合作伙伴可以与合作伙伴的POC和解决问题时迁移,也为客户代码开发工作,每天都有2亿个文件需要备份,和EC2的巨大压力将大量的文件S3,合作伙伴开发一个代理进程,zip文件转移到S3之前,和解压文件时,客户需要检索他们的文件。合作伙伴在网络优化方面有丰富的经验,可以帮助客户的网络团队为这个媒体备份项目制定出最佳的网络架构。而本项目依赖Amazon Web Service与客户IDC的API请求直接连接,合作伙伴也可以帮助建立和优化直接连接。