今天小编分享的互联网经验:极致利用云资源,小红书技术降本之路,欢迎阅读。
本文摘自《云栖战略参考》,这本刊物由阿里云与钛媒体联合策划。目的是为了把各个行业先行者的技术探索、业务实践呈现出来,与思考同样问题的 " 数字先行者 " 共同探讨、碰撞,希望这些内容能让你有所启发。
小红书一开始就决策业务长在云上,并跟随业务快速发展较早地实现云原生化架构改造。而作为云原生开发的事实标准—— Kubernetes 容器编排技术,使得企业应用开发和部署变得更易用、可靠,也因与云的结合,在小红书有长期实践。
2018 年,小红书正式启动云原生实践,对所有的微服务进行容器化,并且部署在 Kubernetes 集群上。2020 年,小红书针对离线业务进行容器化部署。2021 年,小红书开始了 Serverless 的尝试,并且首先将一些在线、离线业务跑在 Serverless 上。2022 年,小红书对容器能力进一步增强,搜推业务完成了容器化改造和 Kubernetes 的部署,同时,基于阿里云开源的 Koordinator,实现了在线服务和离线音视频转码的混部。
追求技术降本和运维提效,一直以来是小红书基础架构优化的源动力。而伴随深度学习应用和实时数据需求的逼近,小红书面临更多新历史阶段的挑战。
云计算的原住民
" 发现美好生活点滴 " 是小红书的追求。作为国内深受年轻人喜爱的生活分享社区,小红书上每月有超过 2 亿用户分享,每日新增笔记数量可达数百万条,每天有超百亿次的笔记曝光。QuestMobile 数据显示,截至 2023 年 9 月,小红书月活 1.99 亿,同比增长 20.2%。尤其在过去一年,平台用户日均时长同比增长 5.5 分钟。
围绕内容带来的 " 带货 " 模式,也进一步推动小红书电商业务的发展。2023 年 " 双 11" 期间,小红书围绕买手电商推出 " 双 11" 电商直播扶持政策,其流量也攀升至阶段性小高峰。
这些其实都离不开小红书平台长期对内容和用户的精细化、多元化运营,通过核心的检索和推荐算法机制,将优质笔记、视频、小说等内容,与平台使用人群实现最优匹配。
小红书创始人毛文超曾阐述," 小红书首先是一家科技公司。聚焦生活方式必须用好推荐,才有机会为每一位用户度身定制一本最适合他的小红书,带他看大千世界的美好和身旁的精彩。"2015 年,小红书就已经拥抱推荐算法,依靠算法来定义自己。
搜索,是小红书 APP 上用户进行信息检索的主要入口。用户检索方式多样,检索品类也非常细分和丰富,那么在检索过程中,对用户输入查询的正确理解,引导用户精确快速完成内容搜索,以及进一步结合用户意图的实时推荐至关重要。而每一次浏览、查询、召回、下单等动作,对应用架构的弹性、对底层计算的速度、对资源的利用率等都提出了巨大挑战。
小红书自诞生起将技术体系搭建在云上,可以说就是云计算的原住民。因而,小红书的云原生路径,是跟随业务场景对云基础架构提供的抽象能力需要而发展起来的。
在小红书高速发展初期,面对搜索、推荐、广告等大量应用机器学习模型的业务场景,云资源为小红书加快业务迭代提供了稳定、可靠的支撑。
进入第二阶段,随着小红书业务体量和用户量的高速增长,原先 " 有啥用啥 " 的云资源使用逻辑已经无法满足对成本和运维效率的考虑。小红书核心开始更加关注弹性,并通过多云、原生的技术栈,实现容器调度、混部能力,以提升自建的整体利用率,降低自身 IT 成本。
技术降本的秘密
过去,在容器技术成为主流应用之前,企业采用的多是大规格的虚拟机技术,即一个伺服器上虚拟出多个虚机,每个虚机就相当于小型伺服器,虚机之间的相互通信,需要内部安装对应的軟體和应用。容器的出现,在屏蔽掉基础层复杂性问题的同时,却也带来了相当高的应用门槛。
小红书是国内少有的从一开始就基于 Kubernetes 构建统一基础架构的互联网企业。过去九年多,小红书也见证了 Kubernetes 一步步成为实施标准的全过程。如今,小红书的容器化率已经达到 80% 以上。
2023 年 1 月,阿里云成为小红书第一大云资源供应商。小红书的搜索、广告、社区等在线业务场景,以及其他少量业务,开始相继规模化用上阿里云的产品及解决方案。
小红书与阿里云的合作,将这些虚拟机实现了微服务化或模块化拆分,希望以更加高效、弹性的架构使用云资源。" 阿里云在解决性能瓶颈、内存访问带宽瓶颈上提供了很好的支撑。" 小红书基础技术部负责人秉烛评价。
2022 年 4 月,阿里云 Koordinator 项目的开源和功能演进,也让深度参与其中的社区成员小红书,在容器调度、混部实践方面产生了极大的效能改善。2023 年 4 月,小红书在社区与阿里云 ERM 团队、ACK 团队联合主导启动了 YARN 与 K8s 混部项目,同年 8 月,该方案在小红书内规模化落地。
2023 年云栖大会期间,小红书技术团队分享了这一实践经验,核心解决的是 " 在线、离线业务场景融合下,如何提升对集群 CPU 的利用率 "。
举个例子,有一些白天发生的业务需要高并发、高访问量的计算需求,还有一些业务需要长时间的线下数据分析、离线分析,可能单个 CPU 看不出计算资源的利用率不足,但当集群规模化后,这一问题就开始凸显。
小红书技术团队称," 在线服务资源使用量随着终端用户的使用习惯呈现稳定的潮汐现象,夜间 CPU 利用率极低,导致集群均值 CPU 利用率较低;业务保有大量的独占资源池,资源池割裂产生大量的资源碎片,拉低 CPU 利用率;业务为了稳定性考虑,会过量囤积资源,进一步拉低 CPU 利用率。"
在阿里云的协助下,小红书混部技术经历了四个阶段演进 : 闲置资源再利用、整机腾挪分时复用、常态混部、统一调度。
一,通过技术手段将集群中的闲置资源收集起来,分配给转码类业务场景使用;二,通过弹性能力 ( HPA ) ,在凌晨业务低峰期按比例对在线业务缩容,腾挪空出整机,并将转码、训练等离线 pod 在该时段运行起来,起到利用率 " 填谷 " 的效果;三,平台持续推进业务大规模合池,将业务由独占池迁至平台托管的公共混部池,通过合池、资源超卖等技术手段,CPU 分配率得到有效提升,同时通过建设更为细粒度的资源管理与调度能力来实现均值利用率提升的目标;四,混合云架构的统一调度来管理异构计算资源,并支持各类业务形态的工作负载调度能力。
截至目前,小红书混部能力覆盖数十万台机器规模,覆盖算力规模数百万核,支持数万规模在线、离线场景服务的资源调度。通过大规模容器混部的持续推进,小红书在资源成本效能上有显著改善。
在 CPU 利用率方面,在线混部集群天均 CPU 利用率提升至 45% 以上,部分集群天均 CPU 利用率可稳定提升至 55%。在线集群 CPU 利用率提升 8%-15% 不等,部分存储集群利用率提升可达 20% 以上。
在资源成本方面,为小红书各类离线场景提供数百万核时的低成本算力。混部集群 CPU 分配率提升至 125% 以上,相较于独占资源池,资源碎片率明显下降。
"CPU 利用率 ",已被小红书视为衡量一家企业云原生化达到行业领先水准的重要指标。
AI 时代,破除算力瓶颈
在 2023 云栖大会期间,小红书技术副总裁风笛在与钛媒体联席 CEO、ITVALUE 发起理事刘湘明的交流中提出一个看法," 随着越来越多的企业选择云原生架构,企业将更加专注自身业务,将基础设施放心地交给公有云。云原生也应适配企业自身业务规模。现阶段,小红书对公有云的诉求是能够支持超大体量的 PaaS 产品,这些 PaaS 是能够被集成、模块化的,否则双方会出现很多不兼容性的问题。"
可以看到,相较于传统行业、政企客户,互联网行业客户的一个最大特征是,倾向于开源或基于第三方服务并有能力自主改造。小红书云原生实践体现出了先进技术本身应有的价值 : 支撑核心业务运转环节,存在能够快速迭代,支持高并发、高可用的诉求。
不过,小红书由于没有自建机房,所有机器采购自云厂商,选择不同机型的决策很大程度上取决于能够采购到什么型号的机器。在此之前,云厂商提供的 AI 计算集群为小红书作了很好的资源保障和性能调优。2021 年至 2022 年期间,小红书机器学习团队进行搜推模型的 GPU 化改造,以提升推理性能和效率。
阿里云为小红书就提供了单集群近 8000 节点的超大规模容器 ACK 托管服务,为小红书核心主站的搜推业务提供稳定高效的云原生基础设施,PAI Blade 的推理优化方案也帮助小红书推理成本节约了 30%,PAI 图引擎等技术有效提升了推荐转化效果。基于 PAI DeepRec 数据读取加速和稀疏化异构计算,小红书的离线训练在成本不变的情况下,提升了 2.6 倍,训练 I/O 性能提升了 10 倍左右。
当下,AI 时代的到来让各大企业都面临着对算力激增的需求和压力,小红书对超大规模 AI 算力以应对算法和数据的需求也变得愈发紧迫。如何在有限的资源内盘活存量算力资源 ? 如何找到新的可行性方案 ? 这也是小红书和阿里云要共同探索的新方向。
过去,云计算让小红书加速快跑。现在,小红书仍在持续构建面向未来的技术架构,云计算作为公司业务发展的最佳引擎,也在不断破除瓶颈。
本文摘自《云栖战略参考》总第 15 期
扫码限时申领纸质版
↓↓