SphereEx 正式开源面向 Database Mesh 的解决方案 Pisanix

SphereEx SphereEx 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

今天,SphereEx 正式对外推出了面向 Database Mesh 的开源解决方案-- Pisanix v0.1.0 版本。Pisanix 从设计之初就吸收了 Database Mesh 的核心思想:通过可编程实现高性能扩展,应对云上数据库治理挑战。这标志着 Database Mesh 不再停留于纸上,而成为了一个真正可以实现和落地的框架。

Pisanix(https://github.com/database-mesh/pisanix)是 SphereEx 面向 Database Mesh 推出的开源解决方案,由 Go 及 Rust 编写,适配 Kubernetes 环境,目前已支持 MySQL 协议。其主要包括 Pisa-Controller、Pisa-Proxy 和 Pisa-Daemon(即将推出)三个组件,帮助用户轻松实现基于 Database Mesh 框架下 SQL 感知的流量治理、面向运行时的资源可编程、数据库可靠性工程等能力,助力用户云上数据库治理。

 

1   Pisanix v0.1.0 版本特性

 

本次正式发布的 Pisanix v0.1.0 版本,已支持的特性有:

  • Pisa-Controller

  • 支持 Sidecar 注入
  • 读取 Kubernetes 自定义资源:VirtualDatabase, TrafficStrategy 和 DatabaseEndpoint 并转换为 Pisa-Proxy 配置

  • Pisa-Proxy

  • 支持 Kubernetes Sidecar 部署并从 Pisa-Controller 获取配置

  • 支持多端口 MySQL 协议代理

  • 支持连接池和基础负载均衡

  • 实现了基于 Yacc 的 SQL 解析器,已支持:SELECT、INSERT、UPDATE、DELETE、PREPARE、EXECUTE、BEGIN、SET

  • 支持基于正则的 SQL 断路器

  • 支持 SQL 并发控制:基于正则,限制指定时间内执行的 SQL 数量

  • 可观测性:支持 sql_processed_total、sql_processed_duration

  • 支持非 Kubernetes 环境以独立组件部署

 

2  Pisanix 简述

 

Pisanix 采用控制面和数据面分离的经典部署模式,通过各种 CustomResourceDefinition 支持统一的数据库接入声明配置、支持可编程的数据库访问资源限制、支持标准化的数据库自动维护体验,实现多种数据库治理行为的云原生编排。

目前 Pisanix 主要包含三部分能力:

  • SQL 感知的流量治理:借助 SQL 解析能力,提供对流量的负载均衡、审计、访问控制、可观测性等功能;

  • 面向运行时的资源可编程:通过多种 Linux 内核能力,实现流量治理运行时的资源可配置和可编程;

  • 数据库可靠性工程:以工程师为中心、以数据库可靠性为原则设计产品形态,建立数据库上云统一界面。

 

 

Pisa-Controller

Pisa-Controller 是 Pisanix 的控制面,由 Go 语言实现,是必选组件。它负责对数据面组件的管控,是 Pisanix 所有配置的入口。其主要功能为:

  • Sidecar 注入:借助 MutatingAdmissionWebhook 向指定 Pod 中注入 Pisa-Proxy 容器;

  • Pisa-Proxy 配置下发和指标采集:获取并转换集群里 CRD 格式的服务发现、负载均衡、限流、SQL 防火墙规则等,并下发给 Pisa-Proxy,以及采集 Pisa-Proxy 运行时的各种指标;

  • Pisa-Daemon 配置转换和指标采集:获取并转换集群里 CRD 格式的流量 QoS 等规则,并下发给 Pisa-Daemon,以及采集 Pisa-Daemon 运行时的各种指标。

Pisa-Proxy

Pisa-Proxy 是 Rust 实现的高性能代理,是必选组件。Pisa-Proxy 以 Sidecar 方式与业务应用部署在同一个 Pod 中,监听 MySQL 协议获取应用访问数据库的流量,并提供各种治理能力:

  • SQL 流量治理:通过解析 SQL,实现多种负载均衡策略、限流等;

  • 访问控制:根据用户和数据权限关系,实现细粒度的权限控制;

  • SQL 防火墙:阻止高危 SQL 语句执行;

  • 可观测性:暴露各种数据库访问指标:如吞吐、延时等。

Pisa-Daemon(即将推出)

Pisa-Daemon 是节点级数据面,是可选组件。Pisa-Daemon 部署在 Kubernetes 集群中每个节点上,通过宿主机内核的各种能力提供资源管理等功能。现已支持:

  • 运行时流量管理:借助 eBPF 等技术为数据库访问流量提供 QoS 保证,减少流量之间的相互干扰。

 

3  Pisanix 示例

 

在 Database Mesh 中,治理框架依赖于如下工作负载:

  • 虚拟数据库:开发人员视角里一个可以被访问的数据库端点

  • 流量策略:对数据库访问流量的治理策略,如标签路由、分库分表、负载均衡、并发控制、断路

  • 访问控制:根据指定规则提供细粒度的访问控制,如表级别

  • 安全声明:数据安全性声明,如数据加密等

  • 审计申请:记录应用对数据库的操作行为,如接入风控系统

  • 可观测性:数据库的访问流量、运行状态、性能指标等可观测性的配置

  • 事件总线:接受数据变更的事件总线

  • QoS 声明:提高数据库整体 SLO 指标而设定的资源 QoS 指标

  • 备份计划:按计划任务的方式执行数据库备份

  • Schema 流水线:以代码方式管理数据库 schema 变更,提高数据库 DDL 和 DML 变更的成功率

目前 Pisanix 已支持 VirtualDatabase、TrafficStrategy 和 DatabaseEndpoint 三个 CustomResourceDefinition。

VirtualDatabase

VirtualDatabase 是所有数据库治理行为发生的中心概念。对于开发人员来说,VirtualDatabase 代表了数据库访问的端点,对于 DBA 来说代表了一个逻辑的数据库,并且需要为该 VirtualDatabase 提供实际的后端数据源 DatabaseEndpoint,以及指定流量策略 TrafficStrategy。

Pisanix 目前支持 MySQL 类型的 VirtualDatabase,配置示例如下:

apiVersion: core.database-mesh.io/v1alpha1
kind: VirtualDatabase
metadata:
  name: catalogue
  namespace: default
spec:
  services:
  - databaseMySQL:               # 声明虚拟数据库类型为 MySQL
      db: socksdb                # 声明虚拟数据库 schema
      host: 127.0.0.1            # 虚拟数据库访问地址
      port: 3306                 # 虚拟数据库访问端口
      user: catalogue_user       # 虚拟数据库访问用户名
      password: default_password # 虚拟数据库访问密码
    name: mysql                  # 虚拟数据库名称
    trafficStrategy: catalogue   # 声明指定虚拟数据库流量策略

TrafficStrategy

TrafficStrategy 描述了数据库访问流量的治理策略,DBA 根据实际业务需要进行策略配置,如基于标签的请求路由、SLA 驱动的负载均衡、SQL 断路和并发控制等。

Pisanix 目前已支持基础负载均衡、基于正则的 SQL 断路和并发控制,配置示例如下:

apiVersion: core.database-mesh.io/v1alpha1
kind: TrafficStrategy
metadata:
  name: catalogue
  namespace: default
spec:
  loadBalance:                   # 声明虚拟数据库访问负载均衡策略
    simpleLoadBalance:           # 声明负载均衡策略为基础负载均衡
      kind: random               # 声明负载均衡策略为随机
  selector:
    matchLabels:                 # 声明标签选择器以选择目标 DatabaseEndpoint
      source: catalogue

DatabaseEndpoint

DatabaseEndpoint 描述了真实的数据库访问端点,它可以是部署在云上的数据库实例,是 DBA 关心的重点资源。作为真实数据库的抽象,DatabaseEndpoint 可以被多个 VirtualDatabase 所消费,从而将开发人员的视角和 DBA 视角进行区分。

Pisanix 目前支持 MySQL 类型的 DatabaseEndpoint,配置示例如下:

apiVersion: core.database-mesh.io/v1alpha1
kind: DatabaseEndpoint
metadata:
  name: catalogue-db
  namespace: default
spec:
  database:
    MySQL:                        # 声明数据源类型为 MySQL
      db: socksdb                 # 声明数据库 schema
      host: cataloguedb.codtynlacssn.rds.cn-northwest-1.amazonaws.com.cn # 声明数据源地址
      port: 3306                  # 声明数据源访问端口
      user: root                  # 声明数据源访问用户名      
      password: fake_password     # 声明数据源访问密码

Weaveworks 的 Socks-shop 是一个面向用户的在线销售袜子商店系统,旨在帮助微服务和云原生技术进行演示和测试,并且提供一个真实可测试的应用程序。该项目使用了以下技术或框架:Java Spring Boot、Go、Node.js 并使用容器进行构建部署。

以 Socks-shop 微服务项目为例,如果使用 Pisanix 框架进行治理的流程如下:

1. 由开发人员为 Catalogue 服务提交 VirtualDatabase 申请虚拟数据库;

2. 由 DBA 为 VirtualDatabase 创建关联的 TrafficStrategy 和 DatabaseEndpoint;

3. 由负责上线的 SRE 为 Catalogue 服务添加标签pisanix.io/inject=enabled,开启 Sidecar 注入,然后配置 Catalogue 数据库访问信息为 VirtualDatabase 中的地址并启动应用。

配置完成后,访问 front-end 服务即可验证:

 

 

4  Pisanix 设计思想:Database Mesh

 

在《数据库治理的云原生之道 —— Database Mesh 2.0》文章里提出了一种以数据库为中心的治理模型:

  • 数据库是一等公民:一切抽象都围绕数据库治理行为进行,比如访问控制、流量治理、可观测性等;

  • 面向工程师体验:对于开发人员,通过便捷易用的数据库声明和定义,即可继续进行开发,无需关心数据库的位置;对于运维和 DBA,提供多种数据库治理行为抽象,实现自动化的数据库可靠性工程;

  • 云原生:以开放的生态和实现机制适配不同的云环境,面向云原生构建和实现,而无需担心厂商锁定。

 

详见:https://www.database-mesh.io

 

5   展望

 

Pisanix 项目目前仍处于早期阶段,在接下来的工作中,会首先重点增强流量方面的治理能力,如添加基于分片键的数据分片能力、针对数据访问行为的审计申请、流量运行时资源 QoS 等,同时不断提升性能和易用性。未来 Pisanix 计划开放插件扩展机制,用户编写适应不同的业务场景的策略,实践 Unix “策略与机制分离”的设计哲学。

 

6  社区

 

开源项目千万步,Pisanix 才刚刚起步。开源是一扇门,Pisanix 欢迎各位小伙伴一起参与进来,发表自己的想法,分享自己的见解,不管是代码还是文档,issue 还是 pull request,社区一样欢迎。在这里,我们诚挚邀请对云原生及数据库治理领域感兴趣的小伙伴加入我们,共同建设 Pisanix 社区。

目前 Pisanix 社区每两周都会组织线上讨论,详细安排如下,我们等你。

邮件列表

https://groups.google.com/g/database-mesh

英文社区双周会(2022年2月27日起),周三 9:00 AM PST

https://meet.google.com/yhv-zrby-pyt

中文社区双周会(2022年4月27日起),周三 9:00 PM GMT+8

https://meeting.tencent.com/dm/6UXDMNsHBVQO

微信小助手

pisanix

Slack

https://databasemesh.slack.com/

会议记录

https://bit.ly/39Fqt3x

 

欢迎点击链接,了解更多内容:

Pisanix 官网:https://www.database-mesh.io/

Pisanix GitHub 地址:https://github.com/database-mesh/pisanix

SphereEx 官网:https://www.sphere-ex.com

...全文

相关推荐

基于混合储能协调控制的三相并网逆变系统设计【附说明文档】

内容概要:本文围绕“基于混合储能协调控制的三相并网逆变系统设计”展开,系统阐述了蓄电池与飞轮储能等混合储能系统在微电网中的协同控制策略。研究涵盖三相并网逆变器的能量管理、SOC(荷电状态)恒压恒流充放电控制、PQ控制与双闭环控制等核心技术,并基于Matlab/Simulink仿真平台实现了系统建模与动态仿真验证。文中深入探讨了飞轮储能系统的机侧PQ控制与网侧变流器的恒压双闭环控制,分析了微电网在调频调峰、功率协同分配等方面的运行特性,强调多能源间的协调优化与系统的快速动态响应能力,旨在提升微电网的运行稳定性、电能质量及能源利用效率。; 适合人群:具备电力电子、自动化或电气工程等相关专业背景,从事新能源发电、微电网控制、储能系统集成与优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究混合储能系统在微电网中的协调控制机制与能量管理策略;②掌握三相并网逆变器的建模、控制算法设计及Matlab/Simulink仿真方法;③实现储能系统的高效充放电管理与并网功率精确控制;④为学术论文撰写、科研课题申报、工程项目开发或实验复现提供完整的技术方案与参考实例。; 阅读建议:建议结合所提供的仿真模型、说明文档及参考文献,按照系统架构从单元控制到整体协调的顺序分模块学习,重点关注各控制策略的设计原理、参数整定方法与协同逻辑。推荐在Matlab环境中动手复现仿真,通过调整参数和工况来观察系统响应,以深化对理论知识的理解和工程应用能力的掌握。

梦想科研社_研学

科技中介服务机构在服务企业时,如何通过平台降低服务门槛和操作复杂度?.docx

科技中介服务机构在服务企业时,如何通过平台降低服务门槛和操作复杂度?

BIZKEEN

运维管理基于Hyperfilelens的Docker Compose业务系统备份恢复:机房设备更换场景下的数据迁移与验证方案设计

内容概要:本文介绍了在机房存储设备更换及固件升级背景下,通过 Hyperfilelens 实现多套 Docker Compose 部署的业务系统备份与恢复的全过程。文章围绕备份迁移的实际操作,详细阐述了从主机接入、备份路径选择、策略配置、恢复执行到业务验证的七个关键步骤,并结合截图说明各环节的操作要点。特别强调了不仅要完成数据备份与恢复,还需核对目录结构、服务启动状态和业务功能可用性,确保迁移后系统完整可用。最终总结了 Hyperfilelens 在集中管理保护对象、制定备份策略、明确恢复目标和提供可核查记录方面的核心价值,倡导将备份作为常态化运维机制而非临时应急措施。; 适合人群:从事运维、系统管理及相关技术岗位,具备一定 Docker 和服务器管理经验的技术人员,尤其是面临机房设备更新或系统迁移任务的团队成员。; 使用场景及目标:①解决老旧存储设备更换过程中的业务系统平滑迁移问题;②实现基于 Docker Compose 架构的应用数据可靠备份与异机恢复;③建立可复用的备份恢复流程,提升运维自动化与可靠性。; 阅读建议:建议结合文中提到的平台界面和操作命令逐步实践,重点关注备份范围确认、一致性保护、恢复路径核对及业务端到端验证,避免仅依赖工具状态而忽视实际业务可用性。

。。。。609

chromedriver-mac-arm64-158.0.8127.18(Beta).zip

chromedriver-mac-arm64-158.0.8127.18(Beta).zip

LCG元

政府科技管理者在推动区域科技成果转化时,如何实现科技成果与产业需求的精准对接?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论
收藏 已收藏
分享
返回顶部
SphereEx
SphereEx 企业官方账号 企业官方账号
SphereEx 18 成员 19 内容