如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

有了 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:174774
用户头像
李冬梅 加V:busulishang4668

发布了 1182 篇内容, 共 804.3 次阅读, 收获喜欢 1301 次。

关注

评论 1 条评论

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

Linux学习方法,《Linux一学就会》教你如何学习Linux

侠盗安全

Linux 运维 linux运维 云计算架构师 linux电子书

盘点分布式软总线数据传输技术中的黑科技|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

Java开发之集成开发环境

@零度

JAVA开发 Java学习 IED

淘宝客户端安全生产体系建设

阿里巴巴终端技术

ios android 淘宝 客户端 安全生产

自动驾驶汽车的安全架构体系 易筋 ARTS 打卡 Week 77

John(易筋)

ARTS 打卡计划

Linux一学就会之Linux详细基本命令操作

学神来啦

bash Linux centos 运维 Shell

记一次拿到后台权限的过程

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

35岁程序员创业,为何选择云原生赛道

行云创新

云计算 创业 程序员 云原生 CEO

质量基础设施“一站式”服务信息平台建设,NQI一站式线上搭建

电微13828808271

鸿蒙轻内核源码分析:虚实映射

华为云开发者联盟

鸿蒙 虚拟内存 物理内存 页表 虚实映射

还有人不知道鸿蒙智联设备认证咋搞?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

Hadoop企业级生产调优手册(一)

大数据技术指南

11月日更

北京朝阳区有正规等保测评公司吗?联系电话多少?

行云管家

网络安全 等保测评 朝阳区

Java 项目中使用 Resilience4j 框架实现故障隔离

码语者

Java Resilience4j Bulkhead 故障隔离

HBase 调优详细剖析

五分钟学大数据

11月日更

面试官问:mysql中时间日期类型和字符串类型的选择

华为云开发者联盟

MySQL timestamp 时间日期 字符串类型

安全架构|云安全框架及虚拟化技术

明亮安全观

云计算 网络安全 云安全 安全架构

拿捏这10点,玩转云原生应用

BeeWorks

鸿蒙智联生态服务平台——智能硬件伙伴的最佳拍档|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

大数据开发之如何用Scala进行spark开发

@零度

scala 大数据 spark

《新程序员》走进微软亚洲研究院

刘旭东

微软 hololens

Remix.run 新手教程

程序员铮铮

JavaScript 大前端 React SSR 教程分享

这才是Springboot事务创建流程的正确打开方式(附源码分析!)

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

前端开发环境搭建在内网是如何搭建的

@零度

大前端

连续 14 年!IBM 荣获 2021 年 Gartner 主存储魔力象限领导者

BeeWorks

50强诞生!2021 OceanBase 数据库大赛百所高校争霸!

OceanBase 数据库

数据库 开源 开发者 比赛 oceanbase

大会回顾丨游戏用户体验优化如何实践,看大咖怎么说(附PPT下载)

WeTest

智能楼宇管理系统开发,智慧楼宇管控系统开发

电微13828808271

阿里一面灵魂一问:RPC或者HTTP什么时候需要序列化和反序列化?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

【Pandas学习笔记02】处理数据实用操作

恒生LIGHT云社区

Python 数据分析 pandas

3分钟教你如何在github上精确的找开源项目?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

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