无论是在公交地铁,还是在街头巷尾,你总会遇到几个低头看短视频而大笑不停的路人。没错,在当下短视频就是这么的火爆,而秒拍就是时下主流的短视频平台之一。从 2011 年上线至今,秒拍不仅成为了微博短视频合作平台,更是推出了冰桶挑战赛等爆款营销活动吸引用户,目前日均覆盖用数量已经达到 7000 万,日均上次视频达到 220 万条,日均视频播放量也已经达到 30 亿次。

今年,为了提升秒拍内容推荐的精准性、用户体验和产品竞争力,秒拍牵手华为云。他们把部分业务迁移到了华为云。有做过云迁移的企业一定知道,对于秒拍这种量级的企业而言,云迁移就意味着大量的数据变更、系统兼容和架构重建。那么秒拍是如何实现云迁移的呢?华为云又给秒拍提供了哪些帮助呢?带着这些问题,我们专访了秒拍架构师李东辉。

由于与微博的关联性很强,秒拍也具有明显的媒体属性。而这种属性表现在秒拍上就是流量峰值的冲击,尤其是微博中大量明星不定期的“官宣”,这种突发性的流量对秒拍架构在云上的业务系统造成很大的冲击,和微博的运维工程师类似,秒拍的小伙伴们也是“压力山大”。而以往,秒拍的主要业务架构是部署在虚拟机上的,在扩容速度上有较大的提升空间,而且存在成本较高、扩展性待提升等问题。

那么这种弹性扩容问题如何更好的解决呢?当下热门的容器服务就具有启动速度快、资源占用小、运行效率高等特点,在应对突发性的大流量冲击时也可以实现快速扩容。也就是说,除虚拟机之外,完全可以迁移到容器中进行提升,那么阻碍是什么呢?

首先,秒拍有大量的用户,迁移的过程中需要解决用户体验和用户数据丢包等问题,另一方面云平台的迁移会有很大兼容性问题的产生,如何降低单点依赖保持最大可能性的将业务内容完整迁移也是一个大工程。

而在经过了重重的考量之后,华为云成为了秒拍最终的选择。据秒拍架构师李东辉介绍,一方面是看重了华为云近年来迅速增长的市场表现,提供了诸多业界领先的技术和成熟的架构;另一方面则是因为华为“以客户为中心”的理念,在实际迁移过程中,也正是华为云提供的有力技术支撑和无微不至的服务,保证了迁移的顺利完成。

秒拍之所以选择迁移到华为云,一方面是出于预防“官宣”式崩溃,另一方面也是为了升级原有架构,借助华为云在 AI 领域的技术积累,实时把握用户喜好,实现内容的精准推送。

云迁移的主体是资源的迁移。在秒拍迁移到华为云时,MC 过去常用作临时缓存,迁移时,建立 MC 连接后需要添加所有的服务器列表以及权重;MQ 则需要在服务端先更新配置上线,数据写入到新资源,消费端完成旧资源消费后,再切换到新资源;Redis 则是基于 RDB 快照,在新资源通过快照回放完成全量数据的迁移;DB 迁移则相对容易,全量数据预先复制一份过去,增量数据获取原平台 DB 的权限,通过 binlog 同步到新数据库;

ES 的存量数据则可以直接从 DB 拷贝,而增量数据则可以通过监听 DB 更新同步获取;版本库的则要简单一些,统一配置后直接修改即可;Dokerfile 则需要预先设置镜像,将项目代码复制到容器;后端资源迁移结束后就可以切换公网流量,然后进行全线验证,观察错误日志等同步进行即可;切换到华为云后,利用 Dokerfile 镜像即可通过 Kubernetes 实现滚动升级。

同时,此次秒拍迁移到华为云还涉及了大量的架构升级。在 MC 里,往往存在伪批量存储,可以利用 Redis 的 Pipeline 并行机制解决。在首页的推荐内容里,对推荐系统依赖过重,所以必要时需采用熔断降级策略;即先把部分列表数据存储到 cache,一旦发生熔断,就将数据从推荐系统读取渠道直接切断,转从 cache 里读取返回给用户,避免全盘崩溃。

负载均衡也发生了本质的转变,秒拍此前的的负载均衡需要请求到 VM 和端口来实现;而在容器化后,下层挂载了 Kubernetes 集群,当请求达到节点后可以均衡到不同的容器之中。日志和监控方面,通过在实例资源上部署 agent 定是收集 CPU 和内存的信息,巡检线上资源和接口,也可以及时排除系统隐患。

整体平台的底层核心存储依然是在 MySQL,其高可用性必须提供保障,目前采用的是主从与主备结合的形式,问题在于主机一旦故障就需要人工指定主机,因此需要设计双机切换的模式。核心对主机状态进行判断和决策,也可引入中介角色完成这一工作,但风险在于中介的高可用性,目前比较成熟的中介解决方案有 Zookeeper 和 Keepalived 等。

秒拍在迁移的过程中不仅面临着技术上的问题,时间和实践也都有不同的难题存在。

据李东辉介绍称,当时迁移的时间节点在夏天,华为云派出了一个技术团队驻扎在秒拍总部共同攻克技术难关。但碍于工位有限,只能一群人挤在一个很热的办公室里办公。而为了照顾用户体验,迁移的流程也只能选择在业务体量较低的凌晨进行。整个华为云的小组与秒拍团队共同克服了诸多难关,通宵达旦方才完成了整体的迁移流程。

而且,双方的合作还帮助秒拍实现了推荐算法的升级。秒拍通过与华为云 EI 产品部合作,进一步提升了内容推荐的精准性和短视频业务的差异化竞争力。而与之前相比,秒拍的视频点击率和人均观看时长也得到提升,基于用户画像的精准视频推荐帮助用户获取了个性化内容,也帮助秒拍提升了用户黏性。

在采访的最后,李东辉谈到了与华为合作的收获,他认为衡量一个合作是否成功的标准一定是看是否对双方都有利。对秒拍来讲,他们实现了一次良好的技术体系迭代升级,提升了用户体验,增强了用户黏性。而对华为云来讲,他们的技术实力得到了客户的认可,也进一步打开了互联网市场的局面,实现了双赢。

识别下方图片二维码或点击原文链接即可观看本期二叉树视频。截止到12月28日17:00 前留言区点赞前三的用户将分别获赠华为手环哦。