【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

有了 Serverless 数据库,用户就不需要 DBA 了吗?

  • 2023-07-18
    北京
  • 本文字数:3718 字

    阅读完需:约 12 分钟

有了Serverless数据库,用户就不需要DBA了吗?

 随着 5G 和 AI 等技术的发展,作为 IT 系统核心基石的数据库技术也在持续演进,从复杂走向简单。

 

近年来 Serverless 概念的热度颇高,Gartner、Forrester 等知名咨询机构对 Serverless 投来关注的目光,AWS、阿里云、腾讯云等云计算大厂也在不断布局 Serverless 相关产品。可以说与 Serverless 的结合,再次为数据库的发展添了把火。

 

Serverless数据库是一种基于 Serverless 架构的数据库服务,它结合了云数据库和 Serverless 两者的优势。Serverless 数据库更加适用于 IoT 边缘计算、开发测试、无法预估负载等场景,这些场景平均负载比较低,资源大部分时间可能都是闲置的,使用 Serverless 后,可以节约大量成本,最高可节约 90%。

 

与传统的云数据库相比,Serverless 数据库具有以下特点:


  • 自动匹配资源:根据用户的业务负载,自动匹配相应的资源,无需用户预估业务规模,从而节省了大量精力;

  • 按需付费:用户只需根据实际使用的资源付费,无需关心底层基础设施服务,实现了真正的按需付费;

  • 降低数据库选型难度:用户无需关心数据库选型,只需关心自身业务即可;

  • 减轻 DBA 运维工作:Serverless 数据库可以根据流量洪峰自动弹性伸缩资源,为业务运行提供强有力的保障,大幅度减轻 DBA 的运维工作量;

 

在 Serverless 概念爆火之际,各厂商纷纷摩拳擦掌推出 Serverless 数据库。近日,InfoQ 有幸采访到了泽拓科技(KunlunBase)创始人 &CEO 创始人赵伟,听他聊一聊 KunlunBase Serverless 版本数据库背后的思路及对未来Serverless趋势对思考。

 

InfoQ:您能介绍下 KunlunBase Serverless 版本数据库的设计思路是怎样的?

 

赵伟:Klustron(曾用名 KunlunBase) 的设计目标是支持水平弹性伸缩的分布式数据库,同时支持金融级高可靠性。我们充分发挥了 PostgreSQL 和 MySQL 两款开源单机数据库系统各自的优势,在其中增加了大量自研的内核模块,完成诸如分布式事务处理、分布式并行查询处理、分布式 DDL 事务处理和复制,全局死锁处理,全局多版本并发控制,fullsync & fullsync HA,自动化的故障恢复,集群物理和逻辑数据备份和恢复,集群双活和多 IDC 高可用,等等一系列分布式数据库特有的新功能,并且改造了其中部分模块,最终把它们糅合成为有机协作的组件,实现了上述设计目标,达到了 1+1>>2 的效果。

 

InfoQ:Serverless 版本更适合哪些应用场景?从 0 到 1 的技术路径是怎样的?

 

赵伟:KunlunBase Serverless 基于 KunlunBase,增加了租户管理、数据隔离、以及为计费而增加的使用量统计等功能,并且限制了多租户场景下集群管理的部分功能,确保这些功能不暴露给租户,只有我们作为服务提供商才能使用。Serverless 版本适合的场景:

 

  • SaaS 场景:相同的业务逻辑,不同的用户规模,不同用户的业务规模增长速度也不同;

  • 统一的数据平台:大公司内数据平台部门,提供类似私有云的 DBaaS 给公司各部门或者各个产品、服务条线使用;

  • 公有云 DBaaS 服务商;

 

InfoQ:在使用过程中,数据库的使用成本是客户在数据库选型时会着重考虑的问题。那么,Serverless 版本的计费原则是怎样的?

 

赵伟:KunlunBase Serverless 根据每个租户存储的数据量,以及使用的计算资源数量来设计计费规则。基于 Klustron 分布式数据库的现有能力,构建Serverless模式的 DBaaS 的复杂度相对可控。

KunlunBase Serverless 概述

Klustron(曾用名 KunlunBase)目前在 AWS 上线的 DBaaS 服务就是 Serverless 模式运行的。

 

KunlunBase 使用 AWS 的 EC2 节点和 EBS 存储服务部署了一个 KunlunBase 集群,用它为多个租户提供 KunlunBase Serverless 服务。泽拓科技负责运维部署在 AWS 的 KunlunBase 的集群,用户完全不需要安装、运维 KunlunBase 集群。在运行期间只要按需增加更多的 EC2 节点和 EBS 存储空间,就可以提供更多的存储和计算能力给当前租户和更多的新租户。

 

每个租户使用其私有账户和密码连接到 KunlunBase Serverless,并读写其数据。任何租户无法访问其他租户的数据,也无法知晓集群当前有哪些租户在使用。

 

那么,KunlunBase Serverless 背后的技术实践是怎样的?在过程中又遇到了哪些技术难题?在采访过程中赵伟对这些问题进行了详细解答。

Klustron Serverless 技术实践

数据隔离

数据隔离对于多租户模式的 DBaaS 来说是至关重要的,系统必须确保任何一个租户无法访问其他租户的数据,甚至无法看到其他租户有哪些 database、schema,、table 等数据库对象 --- 这些对象的存在性和名称对其他租户都必须是不可知的。

 

昆仑数据库团队利用 Klustron 的 database 的隔离能力,来实现不同租户的数据隔离。KunlunBase Serverless 的每个租户可以连接到其专属的 database,执行 DDL 和 DML 语句。租户可以在其 database 内创建 schema 实现数据的逻辑分割。但是租户不可以使用 DML 语句读写系统 catalog 中的元数据表。

 

与 MySQL 不同,一个客户端连接到一个 database 后,无法通过 USE 命令或者 mysql_select_db()切换到其他 database。同时,租户无法连接到其他租户的 database,KunlunBase 通过权限设置确保这一点。KunlunBase Serverless 的业务逻辑为每个租户创建其在 KunlunBase 集群的专属账户,并配置适当的权限,详见下文:

用户账户

每个租户需要使用专属用户账户来使用 KunlunBase Serverless,这样才能实现访问控制和其他高级管控功能。

 

当用户通过 AWS market place 的 DBaaS 购买界面买到一个 KunlunBase Serverless 后,购买流程中的内置逻辑会使用用户提供的数据库连接用户名和密码,在 KunlunBase 集群创建该用户的账户。每个账户配置的权限禁止它连接或者访问其他租户的数据库,不能创建账户和 database,非超级用户,也不能继承或修改权限。这个账户是这个租户的主账户,他可以使用此账户创建更多的子账户,用于其内部的权限控制。还可以在其数据库中为其不同业务创建多个 schema,分配给不同的子账户,分别给各个业务使用。所有这些子账户都只能连接此租户的数据库,并且 KunlunBase 的管控模块会合并他们对计算资源的使用量,以便 AWS 计费系统统一为此租户计费。

租户集群管控

泽拓科技扩展了 KunlunBase 的 XPanel 集群管控系统成为 XPanel Serverless,让它为每个 KunlunBase Serverless 的租户提供独立的和有限的管控功能。相比于 on premise 部署的 KunlunBase 集群,诸多集群管控功能不适用于 KunlunBase Serverless 的租户,包括扩缩容,增加/删除集群节点和存储 shard,集群物理备份和恢复,全集群的逻辑备份和恢复,多可用区(多机房)高可用,同城/异地集群双活等功能不再适用。仅有 database、schema、table 级别的逻辑备份恢复、online DDL & repartition、CDC 等功能继续有效,并且租户使用 CDC 功能只能导出租户自己的 database 的数据更新事件流。每个租户使用其用户名密码登录 XPanel Serverless,且只能访问和操作该租户所拥有的数据库以及其中的 schema 和 table、存储过程等。

后台集群管控

泽拓科技作为 KunlunBase Serverless 的技术服务方,负责 KunlunBase 集群的管控,包括扩缩容,增加/删除集群节点和存储 shard,集群物理备份和恢复,全集群的逻辑备份恢复,多可用区(多机房)的高可用,同城/异地集群双活等功能。通过 XPanel 使用管理员账号登录集群完成这些功能。

日志访问控制

KunlunBase 支持使用 ElasticSearch 收集集群所有节点的日志,出于数据安全的考虑,这些日志只有我司技术支持人员在后台集群管控界面可以访问全部日志,租户无法访问其他租户的操作产生的日志。租户只能访问其数据库对应的接口 SQL 日志(即计算节点发给存储节点的 SQL 语句),存储节点的慢查询日志,以及计算节点中的慢查询日志和 SQL 日志。

资源隔离

目前 KunlunBase Serverless 采用集群可以使用到的所有计算资源来执行来自每一个连接客户端的每一个 SQL 语句,并没有做资源隔离。从用户角度看,没有资源隔离的 KunlunBase Serverless 是非常划算的。这里对用户唯一的限制是连接数量,这个参数是在用户购买 KunlunBase Serverless 服务时提供的,并且这个参数也会作为计费的基础参数之一被使用在计费规则中。

 

在 Serverless 模式下,传统使用 cgroup 做资源隔离的做法不再合适,因为 KunlunBase 任何一个存储节点的进程/线程可能在服务任何一个租户,与租户没有 1 对 1 的对应关系。因此,如果要针对租户做资源隔离,就要统计租户的资源消耗并做资源调度,这些工作本身也会消耗可观的 CPU 和内存资源。所以,目前泽拓科技还没有做这方面的工作,赵伟表示以后会适时完成。

 

InfoQ:您认为当前 Serverless 数据库还面临哪些挑战?又有哪些应对之策?

 

赵伟:缺少精确的资源隔离和用量控制,这需要较多系统级开发工作量。目前我们的做法是不做资源隔离,而是让用户充分使用计算资源来服务其请求。同时,我们作为 DBaaS 服务提供商,我们能够即使发现这种资源吃紧的情况,从而迅速提供更多计算资源来服务更多用户请求。由于按量计费,所以这样做对厂商来说其实是更有利的。

 

InfoQ:您是如何看待未来 Serverless 数据库的发展趋势?会有怎样的机会?

 

赵伟:未来 Serverless 的数据库服务对中小用户还是很有吸引力的,因为 Serverless 模式大大简化了数据库运维管理工作,用户的 DBA 的工作负担大幅降低,可以专注于查询性能优化,Serverless 服务状态监控,数据访问控制机制管理等工作。用户的数据库使用成本也会相应大幅降低。从这个角度看,Serverless 就是一种共享 DBA 的技术。 


采访嘉宾:

赵伟,泽拓科技创始人 &CEO 创始人

2023-07-18 17:173839
用户头像
李冬梅 加V:busulishang4668

发布了 819 篇内容, 共 388.0 次阅读, 收获喜欢 1006 次。

关注

评论 1 条评论

发布
用户头像
👍👍👍
2023-07-18 17:41 · 北京
回复
没有更多了
发现更多内容

JavaScript 中如何比较变量的相等

devpoint

JavaScript ES6 8月日更

Linux之rcp命令

入门小站

Linux

【设计模式】中介者模式

Andy阿辉

C# 后端 设计模式 8月日更

MySQL 系列教程之(四)MySQL 中的数据类型

若尘

MySQL 数据库 8月日更

毕业设计:电商秒杀系统

唐高为

架构实战营 毕业设计:设计电商秒杀系统

Ahu

【自驱型成长】——控制感

LeifChen

压力 控制感 8月日更 自驱型成长

持久层Mybatis中对于SQL注入的问题,聊聊你的想法?

卢卡多多

SQL优化 8月日更

crudapi增删改查接口零代码产品成功案例之商会联盟卡项目

crudapi

Java Vue 零代码 crudapi qusar

从0开始的TypeScriptの七:函数

空城机

typescript 大前端 8月日更

Web框架Gin | Gin 中间件

xcbeyond

Go 语言 gin gin-middleware 8月日更

QDS04 TensorFlow

耳东@Erdong

tensorflow 8月日更 qds

python-类,对象--》多态,封装,继承

加里都好

Python

手撸二叉树之二叉树的堂兄弟节点

HelloWorld杰少

数据结构与算法 8月日更

模式包括问题和解决方案

escray

学习 极客时间 如何落地业务建模 8月日更

配置Flink流式应用(九)

数据与智能

flink Kubernetes YARN

【Flutter 专题】66 图解基本约束 Box (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Seata搭建与分布式事务入门

码农参上

SpringCloud spring cloud alibaba seata 8月日更

在线日期计算器

入门小站

工具

实战架构训练营总结

贯通

#架构实战营

「让我们一起Golang」让协程自己kill自己

Regan Yue

协程 Go 语言 8月日更

【Vue2.x 源码学习】第三十五篇 - 组件部分 - Vue.component 实现

Brave

源码 vue2 8月日更

万字文肝Python基础知识

ベ布小禅

8月日更

https 与 http 区别

一个大红包

8月日更

有书香气的七夕节

箭上有毒

8月日更

架构训练营毕业总结

Neil43

架构训练营

【Dubbo3.0 技术专题】总体技术体系介绍及技术指南(目录)

洛神灬殇

dubbo Dubbo服务 8月日更 Dubbo3

梳理会在Scrum中是活动还是事件?——《Scrum指南》重读有感(6)

Bruce Talk

Scrum 敏捷 随笔 Agile

前端之算法(四)快速排序

Augus

算法 8月日更

部署MinIO存储服务的四种方式

liuzhen007

8月日更

Android开发:Android Studio插件GsonFormat根据Json自动生成javabean的方法

三掌柜

8月日更 8月

有了Serverless数据库,用户就不需要DBA了吗?_数据湖仓_李冬梅_InfoQ精选文章