案例研究:Pinterest 过去、现在和未来稳固在云原生上 公司:Pinterest 地点:加利福尼亚州旧金山 行业:网站和移动应用程序 挑战: 经过八年的发展,Pinterest已经成长成为1,000...对各种解决方案进行评估后,Pinterest选择了Kubernetes。...影响: “通过迁移到Kubernetes,团队能够构建按需扩展和新的故障转移政策,此外还简化了Jenkins等复杂基础架构的整体部署和管理,”Pinterest的云计算和数据基础设施组产品经理Micheal...在KubeCon + CloudNativeCon 2017奥斯汀,Michael Benedict@Pinterest分享了Pinterest从虚拟机到容器的旅程,这里可以重温: 链接以了解更多。...在KubeCon + CloudNativeCon 2017柏林,Michael Benedict@Pinterest也分享了大规模地管理微服务的生命周期,这里可以重温: 链接以了解更多。
Pinterest 在官方博客上发布了自己对于 ZooKeeper 的运用经验,下面一起看下 Pinterest 是如何应用 ZooKeeper 及遇到的问题和解决方式 应用场景 1服务发现 Pinterest...Service 需要知道这个用户信息是在哪个具体的数据库中 用户ID与数据库的对于关系就是相当于一个配置信息,这个配置会变,例如增加一个新用户后,这个用户后落在某个数据库,就涉及到配置信息的变更...为了让 Data Service 的所有机器都可以快速知道最新的配置,Pinterest 把配置放在了 Zookeeper 中,Data Service 对其进行监听,配置数据有变化后,Data Service...可以立即进行更新 ZooKeeper 出现问题的因素 Pinterest 在使用 ZooKeeper 的过程中也遇到了一些问题,引发问题的因素主要包括: 1连接数太多 Pinterest...ZooKeeper 的主要应用场景是服务发现和配置管理,为了防止 ZooKeeper 出现故障后产生严重影响,使用静态文件做为回退方案 使用静态文件记录服务列表和配置信息,可行,但由于数量太大,会产生管理噩梦
原文 https://medium.com/pinterest-engineering/pinterest-is-now-on-http-3-608fb5581094 文 / Liang Ma, Scott...Beardsley, Haowei Yuan 译 / 核子可乐 技术审校 / Liang Ma 图一:Pinterest的HTTP/3架构 现在,HTTP/3已经在Pinterest落地。...这些优势与Pinterest用例显然高度契合——实现更快的连接建立速度(首请求首字节时间)、更好的拥塞控制(我们掌握着大体量媒体)、保证多路复用时不存在TCP队头阻塞(同时多次下载),并可在Pinterest...这样,当用户在Pinterest上挥洒灵感之时,他们将获得更快、更可靠的使用体验。 在Pinterest落地HTTP/3 策略 安全和指标永远第一。...对于多CDN问题,我们选择了相对较短的ALT-SVC TTL(生存时间)以贴近DNS记录TTL,并尝试在各CDN上配置相同的协议设定。
原文 https://medium.com/pinterest-engineering/managing-videos-on-android-f59da9601d5f 2016年Pinterest安卓应用上发布的视频模块...我们还提取了所有Pinterest特定的分析代码,用以来聚焦在视频管理器(管理和播放视频)功能上,同时让这个管理组件和应用程序之间保持独立。
Pinterest 开发了一个通用的 PubSub 客户端库,与原生客户端库相比,它提供了统一的抽象和增强的功能。PSC 支持自动服务发现、优化配置、自动错误处理、拦截器、指标和优化配置。...这种方式可以防止像原生客户端那样出现因使用无效主机 / 端口组合、错误的 SSL 配置选项和凭据、区域等导致的错误。...迁移任务通常涉及替换导入和引用,以及更新客户端配置,包括新的 Resource Name 字符串。...PSC 对 Flink 作业重启的影响(来源:Pinterest 工程博客) Pinterest 计划进一步在 PSC 中引入增强功能,包括自动处理更多可修复的错误,例如检测和刷新即将过期的 SSL 证书...Pinterest 还在开发 C++ 版本的客户端,并计划开发 Python 版本。Pinterest 的平台团队希望利用客户跟踪功能来支持客户扣款,以便将基础设施成本归入项目和团队。
例如,团队中曾有服务开发人员抱怨缺少或错误配置的入口弄乱了他们的端点,负责批量处理的工程师也有过利用模板工具生成数百份副本,结果调试时宛如噩梦的经历。...此外,Pinterest 团队还在批处理作业中引入了对配置映射模板和 PVC 模板的支持,以及许多用于跟踪标识、资源利用率和垃圾回收的环境变量。...Artifactory 检索工作流配置 YAML 文件和其他构建属性(例如版本 ID),并将它们发送到 Job Submission Service; Job Submission Service 是通往各种计算平台...用户身份验证、配额执行和部分 Pinterest CRD 配置验证都在此处进行; CRD 通过 Job Submission Service 验证后,将其发送到 Kubernetes API; CRD...同时,配置管理初始化容器和守护程序将确保在应用程序容器启动之前下载所有必需的依赖项。
寻求灵感,Pinterest 核心基础设施系统的需求增长的比以往任何时候都快。...Mcrouter 的配置 API 为复杂的路由提供了强大的基础,包括区域亲和性路由,用于实现数据冗余的复制,多层缓存层和影子流量。...尽管从 Pinterest 早期开始,memcached 一直就是 Pinterest 基础架构的一部分,我们对其客户端的拓展策略在这些年来也在不断进化。...全局共享的代理配置会给更改部署带来风险,因为在部署时,所有控制平面更改都会应用到 Pinterest 的含有数万台机器的整个集群中。...原文链接: https://medium.com/pinterest-engineering/scaling-cache-infrastructure-at-pinterest-422d6d294ece
•如果分配的 mappers 数量与总 mappers 的比率超过配置的阈值,则禁用 preempting reducers。...•将磁盘使用监控线程添加到 AM,这样如果磁盘使用超过配置的限制,应用程序将被终止。...当启用此配置时,运行中的 NodeManager 不会尝试清理容器,因为它会假设立即重启并恢复容器。...•Hadoop 2.10 不小心在 io.serialization 配置的多个值之间引入了空格,这导致了 ClassNotFound 错误。我们进行了修复以删除配置值中的空格。...本文翻译自:Large Scale Hadoop Upgrade At Pinterest https://medium.com/pinterest-engineering/large-scale-hadoop-upgrade-at-pinterest-a23a112deb73
Pinterest 的机器学习工程师 Aayush Mudgal 在 2023 年旧金山 QCon 上发表了一场关于解析 Pinterest 广告排名系统机制的演讲。...在分享中,他介绍了 Pinterest 如何使用深度学习和大数据为其用户量身定制各种广告。 与大多数在线平台一样,个性化体验是 Pinterest 的核心能力。...例如,Pinterest 过去使用 XGBoost 进行训练,然后将其转换为 TensorFlow 模型,再将其转换为 Pinterest 的服务语言 C++。...过去,Pinterest 的每个团队都有许多管道:大家都在重新构建同一个轮子。Pinterest 需要以更具扩展性的方式做到这一点。去年大多数迭代都是针对这件事的。...为了能够调试系统,Pinterest 开发了几种工具。关键之一是了解广告投放渠道:检索、预算、索引和广告客户。Pinterest 的工具可帮助他们定位广告从漏斗中移除的位置。
这是一家基于兴趣的社交分享网站,网站为用户提供了一个简单地采集工具,帮助用户将自己喜欢图片重新组织和收藏。网站布局美观合理,内容丰富。此原型模板所用到的组件有按...
作者:Anson Qian,译者:冯旭松,原文:https://stackshare.io/pinterest/scaling-kubernetes-with-assurance-at-pinterest...在 Pinterest 的 Kubernetes 平台上,不同命名空间的工作负载是由不同项目的不同团队所拥有,平台用户使用 Pinterest CRD 来配置他们的工作负载。...Kubernetes 通过将其 API 客户端与可配置 QPS 和突发的基于令牌桶的限流器 [7] 结合。...对于超过配置阈值的 API 调用,“too many requests”(HTTP 429)响应将被返回给客户端,以触发适当的重试。...引用链接 [1] Pinterest 的 Kubernetes 之旅: https://medium.com/pinterest-engineering/building-a-kubernetes-platform-at-pinterest-fb3d9571c948
用例: Pinterest(照片分享网站,堪称图片版的Twitter) 使用 Apache Kafka。...该公司建立了名为 Secor 的平台,使用 Kafka、Storm 和 Hadoop 来进行实时数据分析,并将数据输入到 MemSQL 中。 5.
Pinterest近日完成2亿美元的融资,使得公司的市值达到了50亿美元。 Pinterest逐渐建立了自己独有的模式:通过可视化搜索引擎,允许人们分享和搜索自己感兴趣的对象。...Pinterest中的许多图像都与人们想要购买的物品有关——家居装饰,服装,食品等等,使得Pinterest成为了电子商务网站一个给力的入口,也为了消费者发现新品牌的地方。...同时,Pinterest的目标也是走向世界各地。...销售广告也是Pinterest想要力推的对象,现在Pinterest已经推出了它的第一个广告产品Promoted Pins。...通过建立自己的产品,Pinterest得以在激烈的竞争中站稳脚跟,在试探性地推出Promoted Pins后,Pinterest得到了卡夫和Gap这两个客户,他们向Pinterest付钱来突出它们的品牌内容
作者 | Pinterest Engineering 译者 | 王强 策划 | 蔡芳芳 Pinterest 的内部搜索引擎 Manas 是一个通用的信息检索平台。...如今,Manas 支持大多数 Pinterest 产品的搜索功能,包括广告、搜索、Homefeed、Related Pins、Visual 和 Shopping。...为不断变化的数据实现扩展 为了避免过度配置,系统采用了自动缩放以根据实际查询负载来调整副本。如果索引是不可变的,那么新副本创建起来就相对容易:你只需将索引复制到新节点即可。...一旦活动实时段达到一个可配置的阈值,它就会被密封,转为不可变并放入一个刷新队列中。同时,系统创建了一个新的活动实时段以继续累积突变。...原文链接: Manas Realtime — Enabling changes to be searchable in a blink of an eye https://medium.com/pinterest-engineering
在 Pinterest,流数据处理支持广泛的实时用例。 近年来,由 Flink 提供支持的平台通过提供近乎实时的内容激活和指标报告,已被证明对业务具有巨大价值,并有可能在未来解锁更多用例。...我们在图中标记了配置的最大 JM/TM 内存,以及 90% 的使用阈值,以帮助用户快速发现哪些容器接近 OOM。...有效配置 Flink 作业可以在不同级别进行配置,例如执行级别的代码内配置、作业属性文件、客户端级别的命令行参数和系统级别的 flink-conf.yaml。...工程师在不同级别配置相同参数以进行测试或热修复的情况并不少见。 使用覆盖层次结构,最终生效的值并不明显。...为了解决这个问题,我们构建了一个配置库,它计算出作业运行时使用的有效配置值,并将这些配置呈现给 Dr. Squirrel。 可查询的集群工作健康度 提供丰富的工作统计数据,Dr.
下面将介绍 Redis 是如何被利用在“美版小红书” Pinterest 中的。...哈希表在 Pinterest 中的应用 在 Pinterest 的应用里,每个用户都可以发布一个叫 Pin 的东西,Pin 可以是自己原创的一些想法,也可以是物品,还可以是图片视频等,不同的 Pin 可以被归类到一个...所以 Pinterest 将很多这些关系图都保存在了 Redis 里面,从而不必从数据库中读取内容。...从 Pinterest 公布的工程论文中可以知道,他们会将一个用户所关注的其他用户保存在 Sorted Sets 里。...Pinterest 也会将对于一个 Board 的所有关注用户存放在 Redis 的 Hash 里。
注:本文作者 Fanshu Jiang 和 Lu Niu 任职于 Pinterest 流处理平台团队。 Pinterest 流处理已赋能多项实时用例。...有效配置 Flink 任务可在不同层级上配置,例如执行层的 in-code 配置,客户层的任务属性文件和命令行参数,以及系统层的 flink-conf.yaml 文件。...在测试和热修复(hotfix)中,工程人员常常会发生在不同层级配置同一参数的问题。由于各层级间存在各异的覆盖关系,很难考虑到具体那一层级上的配置值是最终生效的。...为解决这个问题,我们构建了一个配置库,指明任务运行中所使用的有效配置值,并提供给 Dr. Squirrel 展示。 可查询的聚类任务健康状况 Dr....更多 Pinterest 流处理参考资料: Pinterest 的统一 Flink 源:流数据处理(Unified Flink Source at Pinterest: Streaming Data Processing
Pinterest是世界上最大的图片社交分享网站。网站允许用户创建和管理主题图片集合,例如事件、兴趣和爱好。以下为来自Pinterest工程师关于代码审查的一些思考。...具体来说,我们想解决以下两个问题: 给定一张图片,查找之前在 Pinterest 上是否使用过相同的图片(或轻微的变化,也就是 NearDup) 给定一张图片,找到 Pinterest 上使用的所有相似图片的列表...出于实际原因,Pinterest 使用的整个图像世界被分解为一组不重叠的集群。...挑战 Pinterest 上的大量图像在可扩展性和稳健性方面提出了一系列挑战。...Manas:自定义搜索引擎 我们使用 Manas(Pinterest 的可配置搜索引擎)通过 LSH 词匹配来寻找潜在的候选图片。 上一篇博文中解释了如何使用 LSH 术语识别相似图像的详细信息。
来自Pinterest的开发人员以及斯坦福大学的研究人员合作推出PinSage,这是一种基于深度学习的高级推荐框架,用于社交网络中的广告和购物推荐。...“随着使用Pinterest的月活跃用户数超过2亿,图像保存数量也越来越多,我们必须不断建立新技术,不仅要跟上,还要提出更明智的建议,”Pinterest工程师Ruining He在一篇博文中表示。...Pinterest工程师说,“我们的模型依赖于此图形信息来提供上下文,并允许我们消除(视觉上)相似但在语义上不同的Pins的歧义。
作者 | Pinterest Engineering 译者 | Sambodhi 策划 | 蔡芳芳 众所周知,应用程序的大小(下载大小 [1] [2])是非常重要的,并且在应用程序的大小和客户参与度之间存在关联...近来,我们对 Pinterest 的 iOS 版 v9.1 进行了改进,使其体积大大减少: 表 1:iPhone 11 Pro 是我们的目标机型。...关于 Pinterest 的背景,我们使用 Bazel 进行 iOS 版本构建。加入你不熟悉 Bazel,这篇文章值得一读。...举例来说,它是 /path/to/Pinterest.app/PlugIns/SiriExtension.appex/ 而非 /path/to/Pinterest.app/。...[2] 本地安装大小是指实际应用在你的手机磁盘上的大小(设置应用→iPhone 存储→Pinterest→应用大小)。它是为你的手机型号瘦身的,所以通常比通用体积小。
领取专属 10元无门槛券
手把手带您无忧上云