50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Pinterest 在迁移到 Kubernetes 的过程中发现了罕见的搜索失败

作者:Craig Risi

  • 2025-08-15
    北京
  • 本文字数:1270 字

    阅读完需:约 4 分钟

大小:617.77K时长:03:30
Pinterest在迁移到Kubernetes的过程中发现了罕见的搜索失败

Pinterest 的工程师最近披露了他们在将搜索基础设施迁移到 Kubernetes 时遇到的一个极其罕见的“百万分之一”故障的调试过程,这一举措旨在现代化运维并提高可扩展性。这一事件突出了大规模云原生迁移的技术挑战,以及在分布式系统中需要细致的调试流程。

 

这个故障是在 Pinterest(负责数十亿用户查询的搜索系统的搜索系统)迁移到基于 Kubernetes 的部署过程中出现的。工程师发现会偶尔出现查询不匹配问题,这些不匹配问题发生的频率极低,导致难以重现。问题在多个测试环境中持续存在,促使工程师深入研究基础设施交互、查询路由和存储后端。

 

经过广泛的调查,该团队追溯到故障的根本原因是在容器化搜索组件和遗留基础设施之间过渡时引入的细微不一致。故障是由网络和存储同步中的一种罕见的时序条件触发的,这种场景在正常流量下几乎不可见,但在高流量测试中会暴露出来。

 

Pinterest 的调试方法结合了组件的增量隔离、自定义日志记录和使用捕获的生产流量重放来识别异常。工程师开发了专门的诊断工具,实时比较新旧系统之间的结果,使他们能够大规模地确定差异。

 

这一事件凸显了将关键任务搜索和推荐系统迁移到 Kubernetes 这一更广泛行业领域所应汲取的教训。即使是计划周密的迁移,也可能揭示出之前未曾见过的边缘情况,这就要求组织投资于强大的可观测性、混沌测试和混合部署策略,以确保平稳过渡。

 

Pinterest 成功解决这一问题,最终为完成其迁移铺平了道路,为其搜索基础设施提供了更灵活的扩展和标准化编排。事后分析突出了在进行云原生转型的大型分布式环境中进行系统调试的操作复杂性和价值。

 

虽然 Pinterest 的调试故事是独一无二的,但其他大型科技公司在现代化搜索基础设施时也面临着类似的挑战。例如,Netflix将其部分推荐和搜索系统迁移到 Kubernetes,但在完全部署之前严重依赖于金丝雀部署和混沌测试来发现罕见的错误。他们的重点是自动回滚机制和合成查询重放,Pinterest 也采用了这些策略,但由于他们的缺陷出现的频率极低,因此必须进一步细化。

 

多年前,LinkedIn 将其搜索平台Galene迁移到容器化环境时也遇到了类似的困难。与遇到时序不匹配问题不同,LinkedIn 的团队报告了跨集群的索引延迟和状态同步问题,他们通过开发强大的内部可观测性管道和最小化查询影响的滚动迁移来缓解这些问题。他们的经验与 Pinterest 的教训相呼应,即罕见的边缘情况通常只会在高峰流量负载下出现,要求进行详尽的预生产流量镜像。

 

Airbnb 也记录了将实时服务迁移到Kubernetes期间的类似经历。他们的方法包括采用服务网格和流量跟踪,在生产环境中并行测试新集群,在不影响用户的情况下帮助检测异常。这与 Pinterest 的流量重放使用相呼应,但也凸显了一个日益增长的行业实践,即增量切换策略,以降低迁移风险。

 

这些公司的共同点很明显:将核心搜索或推荐系统迁移到 Kubernetes 总会暴露隐藏的依赖关系、网络边缘情况和时序敏感的缺陷。一致性解决方案模式涉及分层可观测性、重放框架和逐步推出策略,这强化了在现代分布式系统中构建健壮的预部署验证的重要性。

 

原文链接:

https://www.infoq.com/news/2025/08/pinterest-search-failure-k8/

2025-08-15 10:446049

评论

发布
暂无评论

阿里云2024云栖大会门票开抢啦!数量有限,先到先得!

MasterInTech

深度解读KubeEdge架构设计与边缘AI实践探索

华为云开发者联盟

AI 边缘计算 kubeedge 企业号 8 月 PK 榜 2024企业号8月pk

银行业数据分析的关键应用场景探索

镜舟科技

数据库 数据 银行

人工智能|ChatGPT 的 API 使用

霍格沃兹测试开发学社

GOTC 2024 全球开源人才及教育论坛议程出炉!

OSCTraining

基于人工智能的代码分析与 Bug 检测实战

测吧(北京)科技有限公司

测试

LED显示屏行业发展现状与未来展望

Dylan

行业 LED LED display LED显示屏 市场

虚拟ECU:纯电动汽车发展下的新选择

DevOps和数字孪生

电动汽车 虚拟ECU

如何在 K8s 中实现指定数据库实例下线?

小猿姐

数据库 Kubernetes 容器 云原生

引入JaCoCo导致的类型转换问题分析

京东科技开发者

【AIGC】 0成本学习:AI工作流生成Joy(ComfyUI)

京东科技开发者

人工智能丨ChatGPT 的 API 使用

测试人

软件测试

人工智能|ChatGPT 的 API 使用

测吧(北京)科技有限公司

测试

【YashanDB数据库】大事务回滚导致其他操作无法执行,报错YAS-02016 no free undo blocks

YashanDB

yashandb 崖山数据库 崖山DB

监控系统原理揭秘-数据运算篇

京东科技开发者

玩转提示工程,优化LLM的实践指南!

神州数码

英伟达新型AI芯片将推迟三个月发布,谷歌微软坐不住了!第二位人类患者植入脑机芯片!马斯克表示一切顺利|AI日报

可信AI进展

人工智能

Python爬虫实战:利用代理IP爬取百度翻译

袁袁袁袁满

【YashanDB知识库】statement级别的触发器在jdbc接口调用executeBatch时被多次触发

YashanDB

yashandb 崖山数据库 崖山DB

如何建立测试团队的知识库

老张

团队管理 软件测试 质量保障 知识库

RUM技术探索:前端监控数据采集与实践

乘云数字DataBuff

前端监控 #RUM

24年广西具有资质等保测评公司汇总

行云管家

广西 等保 等级保护

Databend 开源周报第 156 期

Databend

读友好的缓存淘汰算法

百度Geek说

架构 页面缓存 企业号 8 月 PK 榜 淘汰算法 广告检索

Pinterest在迁移到Kubernetes的过程中发现了罕见的搜索失败_后端_InfoQ精选文章