
Pinterest 推出了PinConsole,这是一个统一的内部开发者平台(IDP),用于将工程工作流集中到单个界面中。PinConsole 的构建旨在解决由多个孤立的部署、监控和服务管理工具造成的开发体验碎片化问题。通过提供一致的抽象层,PinConsole 使工程师能够专注于业务逻辑,避免基础设施导航的复杂性。
PinConsole 集成了常见的开发工作流,如持续部署管道、监控仪表板、告警和所有权元数据。工程师可以使用控制台管理发布、查看日志和指标,并调查事件,而无需在不同的工具之间进行切换。Pinterest 表示,这个共享的抽象层有助于标准化团队之间的工程实践并简化开发体验。
PinConsole 以 IDP 模型为设计思路,从Backstage、Kubernetes和gRPC中汲取了灵感。通过提供一致的界面和标准工作流,PinConsole 促进了重用,使不同团队之间的工程实践更加一致。

PinConsole 统一开发平台(图片来源:Pinterest工程博客)
为了支持这个统一平台,Pinterest 还构建了一个实体数据模型。借助 Backstage 的 ldapOrg 提供程序,该模型每 60 分钟与 LDAP 目录同步一次。这可以确保用户和组信息始终是最新的,从而实现了准确的所有权跟踪、基于团队的视图和跨平台的细粒度访问控制。
在底层,PinConsole 在生产和准生产环境中都使用了 AWS RDS 上的PostgreSQL数据库。Pinconsole 界面使用Pinterest的Gestalt设计系统进行了定制,而没有使用 Backstage 的默认组件。PinConsole 的一个核心特性是 PinCompute 插件。它提供了一个统一的界面来管理 Kubernetes 工作负载。Pinterest 的 PinCompute 环境引入了自定义资源,如 PinApps 和 PinScalers,并由自定义 Kubernetes 插件提供支持。该平台还支持多租户、访问控制,并集成了 Pinterest 的安全系统、服务注册表和工件仓库。

PinCompute 插件内部结构(图片来源:Pinterest工程博客)
按照 Pinterest 团队的说法,为了确保可扩展性,他们对多个层做了优化。Apollo Client的缓存策略是主动预取常用数据,而React.lazy和Suspense启用了代码分割。关键页面使用服务器端渲染,缩短了首次有意义绘制的时间,并且采用了多级缓存策略——涵盖CDN资产和 API 网关响应——降低了延迟,增强了感知性能。
据 Pinterest 工程师介绍,PinConsole 被设计成了可扩展的,团队可以贡献插件和工作流并在平台上共享。这使得以前单独维护的部署过程可以实现标准化,并且仍然允许定制。工程团队指出,共享插件还允许一个团队的改进在更大的范围内被采纳。
Pinterest 工程师强调,自推出以来,PinConsole 已经拥有超过 700 名日活跃用户,大约 30%的 Pinterest 工程师每月都使用这个工具。团队报告显示,其净推荐值超过 70。Pinterest 工程师还强调,一致的工作流、可发现的服务和可扩展的插件架构是 PinConsole 被采用的关键因素。
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:
https://www.infoq.com/news/2025/09/pinterest-pinconsole-unified-idp/
评论