爱奇艺作为业内知名的在线视频平台,凭借其丰富多样的内容和优质的用户体验,业务增长迅猛,数据量也随之剧增。为了满足业务需求,爱奇艺自 2017 年开始使用 TiDB,应用涵盖 30 多个业务线,服务器数量超过 500 台,集群数量超过 100 个,同时运行的 TiDB 版本数量达 20+。本文将深入探讨爱奇艺如何通过升级,成功将百套 TiDB 集群从多个旧版本升级至 v7.1.5,攻克多版本运维挑战,获得更稳更快的 TiDB 使用体验。
TiDB 社区活动(上海站)回顾 & ppt 下载: 【TiDB 上海地区交流回顾】TiDB 在小红书、爱奇艺、咪咕、华安基金、数禾科技的核心场景/简化技术栈/降本增效实践
随着互联网用户对内容需求的增长,爱奇艺的业务规模迅速扩大,数据量和会员数不断攀升。传统的分库分表方式在数据校验和流量切换方面逐渐显得力不从心,严重影响了业务的高效运行。TiDB 以其卓越的分布式架构和强大的数据处理能力,为爱奇艺提供了一个超大号的 MySQL 解决方案,有效解决了分库分表带来的诸多痛点,确保了数据的一致性和业务的稳定性。
TiDB 的 TiFlash 列存特性为爱奇艺带来了显著的性能提升。通过利用 TiFlash,爱奇艺能够高效地进行数据分析和查询,加速了业务决策过程。此外,TiDB 节点的易扩展性使得爱奇艺能够灵活地应对不断增长的数据量和业务需求。不同的 TiDB 节点可以分别处理 TP(事务处理)和 AP(分析处理)任务,实现了读取一份数据即可满足多种业务需求,避免了繁琐的 ETL 数据清洗工作,进一步提高了业务的响应速度和决策效率。
自 2017 年开始使用 TiDB 以来,爱奇艺的 TiDB 集群规模不断扩大。截至目前,爱奇艺拥有超过 500 台服务器,集群数量超过 100 个。单集群数据量从 300G 到 40T 不等,涵盖了会员数据归档、风控、BI、素材、营销数据、设备指纹等 30 多个应用业务线。这些集群不仅支撑了爱奇艺的核心业务,还为数据的高效存储和快速访问提供了坚实保障。
随着业务的不断发展,爱奇艺的 TiDB 集群中运行着多个不同版本,从 v3.0.19 到 v6.0.x 共有 20 多个版本在线运行。多版本并行不仅增加了运维的复杂性,还给自动化运维带来了诸多挑战。针对版本管理和运维面临挑战,爱奇艺数据库团队对 TiDB v7 版本进行全面评估和方案设计,决定所有集群升级到 TiDB 社区推荐版本。
爱奇艺在升级过程中主要考虑了两种方案:原地升级和迁移升级。原地升级的优势在于操作简单,无需额外的硬件资源,但存在不支持回退、升级过程中禁止用户发起 DDL 操作等风险。迁移升级则具有业务影响时间短、不受版本跨度限制、可回退等优点,但需要额外的硬件资源,成本较高。根据集群的实际情况和业务需求,爱奇艺灵活运用这两种方案,确保了升级过程的顺利进行。
爱奇艺采取了分版本逐步升级的策略,从 v3 开始,依次升级到 v4、v5、v6,最后升级到 v7。这一策略参考了滴滴跨版本的升级经验,避免了一次性跨越多个版本带来的风险。同时,爱奇艺优先在测试环境中进行升级,并让业务团队进行充分验证,确保升级方案的可行性和稳定性。此外,团队还优先升级了 v6 和 v5 版本的集群,因为这两个版本尚未到达生命周期末期,可以在社区中寻求厂商支持,及时解决升级过程中遇到的问题。对于流量小、容量小的非核心业务集群,爱奇艺也优先进行了升级,通过观察升级过程中的问题,进一步优化了升级 SOP。
在升级过程中,爱奇艺遇到了一些问题,并找到了相应的解决思路。
在 TiDB 升级过程中,我们看到了基础服务正常(如 NFS、NTP 服务)、业务充分验证的情况下,滚动升级比较简单平滑,90+ 集群升级下来,仅 2 套集群升级遇到问题。升级后,有效收敛了业务高峰期 P99 duration 高和负载高的告警数量。运维也变得更加简易,白屏化的绑定执行计划、更短的添加索引时间,使得在慢 SQ L 导致集群性能下降的情况下,能够更快地恢复集群性能,减少故障时间。
升级后,TiDB 集群在性能和稳定性等方面取得了显著提升。
在 TiDB 运维和升级的过程中,TiDB 官方社区给予了大力的支持和帮助,为本次升级工作提供了有力的技术保障。
爱奇艺的 TiDB 升级实践证明了 TiDB 在大规模数据处理和业务支撑方面的强大能力,也非常期待 TiDB 在数据清理速度、SQL 性能优化等方面进一步提升,得以满足不断增长的业务需求。 未来,爱奇艺将继续与 TiDB 携手,共同探索更多优化和创新的可能性,为用户提供更加优质、稳定的服务。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。