Adam Hendel:用Rust构建托管Postgres服务:第一部分

Adam Hendel:用Rust构建托管Postgres服务:第一部分

💡 原文英文,约1700词,阅读约需6分钟。
📝

内容提要

Tembo成立于2022年12月,旨在为工作负载提供优化的Postgres实例。平台由控制平面和数据平面组成,高度解耦。控制平面包括Web UI和处理CRUD请求的HTTP服务器。有限状态机用于管理Postgres实例的生命周期。平台的大部分代码使用Rust编写,包括状态机。平台使用队列在控制平面和数据平面之间缓冲任务。控制平面将CRUD事件发送到PGMQ,由数据平面的Conductor处理。控制平面接收来自数据平面的状态事件,并将其持久化到其Postgres数据库。该平台是开源的,并持续进行迭代。

🎯

关键要点

  • Tembo成立于2022年12月,旨在为工作负载提供优化的Postgres实例。

  • 平台由控制平面和数据平面组成,二者高度解耦。

  • 控制平面包括Web UI和处理CRUD请求的HTTP服务器。

  • 有限状态机用于管理Postgres实例的生命周期。

  • 平台的大部分代码使用Rust编写,包括状态机。

  • 控制平面将CRUD事件发送到PGMQ,由数据平面的Conductor处理。

  • 控制平面接收来自数据平面的状态事件,并将其持久化到Postgres数据库。

  • 平台是开源的,并持续进行迭代。

  • 控制平面的初始版本包括Web UI和HTTP服务器,处理CRUD请求。

  • 所有状态都持久化在专用的Postgres实例中,包括实例的基础设施需求和配置。

  • 有限状态机管理Postgres的生命周期,状态转换由事件驱动。

  • Tembo平台的状态机用Rust实现,所有状态作为单一枚举的变体表示。

  • 任务处理时间可变,使用队列缓冲请求,避免系统故障。

  • Conductor服务处理来自控制平面的CRUD事件,并与Kubernetes API通信。

  • 控制平面接收数据平面的状态事件,并进行状态一致性检查。

  • Tembo持续迭代,Kubernetes操作员和其他服务是开源的。

  • Tembo正在招聘多个平台和产品角色,欢迎有兴趣的人士申请。

➡️

继续阅读