大卫·惠勒:PGXN V2 架构

💡 原文英文,约4100词,阅读约需15分钟。
📝

内容提要

该项目旨在推动Postgres扩展生态系统的增长、可访问性和实用性。通过建立分发、发现和打包工具和服务,解决了扩展难以找到和发现、难以配置和安装以及开发工具晦涩难懂等挑战。该项目的分布式架构包括根注册表、Web UX、互动、客户端、打包和统计报告等核心系统。

🔎

延伸解读

分布式架构的治理挑战

PGXN V2 采用分布式、松耦合的独立服务架构,这虽然有利于并行开发和灵活性,但也带来了治理上的挑战。例如,互动服务需要详细的治理规范来确定哪些服务可信、需要满足什么标准,以及如何撤销访问权限。此外,还需要强大的认证和授权系统来确保访问控制。这些治理机制的设计和实现,将直接影响整个生态系统的安全性和可靠性。

客户端的关键作用与设计考量

客户端在 PGXN V2 架构中扮演核心角色,旨在成为大多数平台上开发和安装扩展的默认选择。它需要深入理解元数据,以便为开发者简化元数据管理,并为用户做出明智的决策。客户端必须能够处理多种构建流水线和依赖管理系统,并支持从源码构建或安装二进制包。其设计目标是易于安装(如单个跨平台二进制文件),并能在广泛的配置矩阵中工作。

打包服务的覆盖范围与限制

打包服务旨在覆盖90%的现代用例,支持Linux、macOS和Windows的2-3个近期版本以及64位架构。然而,它并不打算满足所有操作系统、平台、硬件架构或PostgreSQL版本的需求。因此,架构允许任何实体创建和维护自己的二进制扩展打包仓库,下游打包者可以基于打包服务或根注册表构建自己的包。这种设计既保证了核心覆盖,又通过分布式扩展了生态系统的边界。

统计与报告服务的开放性与示例

统计与报告服务被定义为一个超级开放的类别,涵盖任何对扩展进行操作并报告结果的服务。文章列举了多种可能,如社交媒体公告、仓库统计聚合、冒烟测试、升级测试、用户评分、安全扫描和分类策展等。项目计划首先实现社交媒体公告和源码仓库统计聚合两个服务,因为它们能提供高质量信号,帮助用户了解新版本和评估开发者活跃度,同时为其他服务树立榜样。

❓

Q&A

PGXN V2架构的主要目标是什么?

PGXN V2架构旨在推动Postgres扩展生态系统的增长、可访问性和实用性。

PGXN V2架构的分布式架构包含哪些核心系统?

PGXN V2架构包含根注册表、Web用户体验、互动、客户端、打包和统计报告等六个核心系统。

当前Postgres扩展生态系统面临哪些挑战?

当前生态系统面临扩展难以发现、文档不足、配置和安装复杂等挑战。

根注册表在PGXN V2架构中扮演什么角色?

根注册表是公开可用扩展的综合记录系统,提供API供其他服务使用。

Web用户体验服务的主要功能是什么?

Web用户体验服务为用户提供交互层,支持搜索、浏览和下载扩展。

未来架构如何解决扩展的可访问性问题?

未来架构通过建立六个核心系统,增强扩展生态系统的增长和可访问性。

🏷️

标签

➡️

继续阅读