写点什么

Pinterest 使用 Kubernetes 和 Helix 构建下一代异步计算平台 Pacer

  • 2023-09-12
    北京
  • 本文字数:1119 字

    阅读完需:约 4 分钟

大小:796.61K时长:04:31
Pinterest使用Kubernetes和Helix构建下一代异步计算平台Pacer

Pinterest 推出其下一代异步计算平台 Pacer,用以取代旧的解决方案 Pinlater。随着公司的发展,Pinlater 在伸缩性和可靠性方面面临着挑战。新的架构使用 Kubernetes 来调度作业,使用 Apache Helix 来进行集群管理。


Pinterest 之前构建了一个异步作业执行平台Pinlater,并在几年前将其开源。Pinlater 已在生产环境中使用了多年,并支持许多关键的功能领域。Pinterest 在AWS EC2上运行了几个 Pinlater 集群,每分钟处理数百万个任务。


Pinterest 软件工程师Li QiChen Zhihuang解释了促使他们构建新平台的动机:


随着 Pinterest 在过去几年的增长和 Pinlater 流量的增加,我们发现 Pinlater 存在许多局限性,包括伸缩性瓶颈、硬件效率、缺乏隔离性和可用性。我们在平台方面也遇到了新的挑战,包括那些影响我们数据存储吞吐量和可靠性的挑战。


基于他们使用 Pinlater 的经历,团队意识到他们不可能在现有架构中解决所有已知的问题,于是他们决定构建下一代平台。


新的架构 Pacer 包含了一个无状态的Thrift API 服务(与 Pinlater 兼容)、一个数据存储(MySQL)、一个有状态的脱队列代理服务(Dequeue Broker),以及在Kubernetes上运行的作业执行 Worker 池。Apache Helix(带有Zookeeper)被用来将作业队列分区分配给脱队列代理。



Pacer 架构(来源:Pinterest工程博客


脱队列代理是一种有状态服务,负责从数据存储中预取作业队列数据并将其缓存到内存中,以减少延迟和隔离入队列和脱队列的工作负载。每个脱队列代理分配到一组作业队列分区,因此可以独占获取和执行作业,从而避免出现争用的情况。Kubernetes 为每个作业队列提供了一个专用的 Pod 池,消除因不同作业类型对资源倾斜消耗所带来的影响。


新的脱队列和执行模型缓解了 Pinlater 所遭遇的问题,包括在从热点分区获取数据时避免扫描所有分区或减少锁的争用。此外,它支持按照排队顺序(FIFO)的方式执行作业,前提是为作业队列配置单独的分区。


新的架构需要给脱队列代理实例进行独占式队列分区分配,与Kafka

消费者主题分区分配类似。Pinterest 的团队选择使用 Apache Helix 来实现这个功能。Apache Helix 提供了一个通用的集群管理框架,用于给集群内的脱队列代理进行分区分配。Helix 使用 Apache Zookeeper 实现嵌在脱队列代理实例中的 Helix 控制器和 Helix 代理之间的资源配置通信。



用 Apache Helix 和 Zookeeper 协调脱队列代理(来源:Pinterest工程博客


Helix 控制监控加入和离开集群的脱队列代理实例,以及对已配置的作业队列做出的任何变更,如果发生变更,它将重新计算理想的队列分区与代理分布。在最新的分区分配被保存到 Zookeeper 之后,各个代理实例就会更新它们的内部状态,并从它们负责的队列分区中获取数据。


查看英文原文https://www.infoq.com/news/2023/08/pinterest-pacer-kubernetes/

2023-09-12 16:303866

评论

发布
暂无评论
发现更多内容

Spring Boot「21」JPA 中的 Entity

Samson

Java hibernate Spring Boot 学习笔记 11月月更

一年前端面试打怪升级之路

loveX001

JavaScript

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

React

数据的分组与计算

芯动大师

Python pandas 11月月更

Spark SQL基本架构

穿过生命散发芬芳

spark SQL 11月月更

AI为方,产业为向:京东云数字人的技术攀爬

脑极体

人工智能’

前端面试那些题

loveX001

JavaScript

防守体系建设三部曲

阿泽🧸

11月月更 防守体系

TOGAF企业架构框架5-企业连续统一体

Marvin Ma

TOGAF 企业架构框架 架构分区 企业连续统一体 架构存储库

SAP UI5 和 Angular 的函数防抖(Debounce)和函数节流(Throttle)实现原理介绍

汪子熙

前端开发 angular Fiori ui5 11月月更

鱼骨图还能做需求优先级分析?

产品海豚湾

产品经理 产品设计 产品开发 需求分析 11月月更

研发效能|DevOps 已死平台工程永存带来的焦虑

laofo

DevOps 研发效能 持续交付 工程效率 平台工程

跟着卷卷龙一起学Camera--MIPI 01

卷卷龙

ISP camera 11月月更

前端面试指南之React篇(一)

beifeng1996

React

React循环DOM时为什么需要添加key

beifeng1996

React

EDAS 流量入口网关最佳实践

阿里巴巴云原生

阿里云 分布式 云原生 网关

安全左中右·2022 XDR 网络安全运营新理念峰会圆满落幕

未来智安XDR SEC

网络安全 XDR扩展威胁检测响应

官宣 | 袋鼠云获过亿元 C + 轮融资,深耕国产自研数字化技术与服务

袋鼠云数栈

iofod 支持生成 Electron 桌面应用

iofod jude

前端 低代码平台 iofod

以开发之名|线上家装新美学——梦想之家,由你来定

HarmonyOS SDK

AR HMS Core

MongoDB源码学习:mongod如何处理请求

云里有只猫

mongodb 源码学习

跟着卷卷龙一起学Camera--延迟04

卷卷龙

ISP camera 11月月更

融云钜惠来袭,新客尝鲜首月 2.7 折起,超值套餐 6 折起

融云 RongCloud

产品

盘点具备盈利潜力的几大加密板块,以及潜在的投资机会

BlockChain先知

【MySQL】如何构建一个完整的MySQL知识体系(MySQL专栏启动)

小明Java问道之路

Java MySQL MySQL 数据库 11月月更

AWS S3 bucket 的 ACL 控制

HoneyMoose

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

SAP UI5 BarcodeScannerButton 的初始化逻辑 - feature 检测,Cordova API 检测等逻辑

汪子熙

前端开发 Fiori SAP UI5 ui5 11月月更

python小知识-set妙用

AIWeker

Python 人工智能 python小知识 11月月更

2022-11-01:给定一个只由小写字母和数字字符组成的字符串str。 要求子串必须只含有一个小写字母,数字字符数量随意。 求这样的子串最大长度是多少?

福大大架构师每日一题

算法 rust 福大大

跟着卷卷龙一起学Camera--Rolling Shutter

卷卷龙

ISP camera 11月月更

Pinterest使用Kubernetes和Helix构建下一代异步计算平台Pacer_云原生_Rafal Gancarz_InfoQ精选文章