10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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

发布了 1137 篇内容, 共 757.4 次阅读, 收获喜欢 1276 次。

关注

评论 1 条评论

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

快速实现 CDN 直播

ZEGO即构

CDN 直播 音视频开发

语音直播app——满足不同行业的业务需求

开源直播系统源码

软件开发 直播系统源码 语音直播系统 语音直播app

【分布式集群】微服务电商应用系统的集群构建

嚯嚯嚯www

Linux

不要让CMDB沦为数据孤岛!运维高质量CMDB“修炼”之道

嘉为蓝鲸

运维 数据 配置 CMDB 配置管理

室内led大屏幕可以用在室外吗?​

Dylan

LED显示屏 户外LED显示屏 户内led显示屏

Spring Cache设计之美,你品,你细品...

华为云开发者联盟

后端 开发

京东承办“创客北京2022” 京东科技参与并推出三大服务举措

京东科技开发者

数字化转型 供应链 企业服务 中小企业

【LeetCode】用户分组Java题解

Albert

LeetCode 8月月更

什么是网络即服务 (NaaS)?

wljslmz

网络技术 8月月更 NaaS 网络即服务

一文了解如何托管SVN储存库,以及版本控制的更佳选择

龙智—DevSecOps解决方案

svn 版本控制 版本管理 版本控制系统

机器学习/评分卡常用指标及计算

Joshua

机器学习 AI 信息熵 评分卡

涛思数据加入龙蜥社区,携手共建时序数据库生态

OpenAnolis小助手

数据库 涛思数据 开源 龙蜥社区 CLA

兆骑科创双创服务平台,招商引资、招企引税、招才引智

兆骑科创凤阁

一块GPU训练TB级推荐模型不是梦,OneEmbedding性能一骑绝尘

OneFlow

深度学习 gpu 模型

软件交付周期缩短!且看精益思想如何加速全局价值流动

嘉为蓝鲸

DevOps 敏捷 精益

你要的 Helm Chart 应用金丝雀发布终于来了!

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

一文读懂工业设备预测性维护的概念与实现

PreMaint

企业设备管理 预测性维护 设备健康管理 状态检测 振动监测

2022不容错过的50个“低代码”发展现状、趋势与数据统计

优秀

低代码 无代码

Canvas 低代码拖拽建模,支持离线任务|ModelWhale 版本更新

ModelWhale

数据分析 Jupyter Notebook 课程 离线部署 低代码报告

秒杀架构分析与实践

Bruce Duan

签约计划第三季

熬夜肝了这一份C++开发详细学习路线

C++后台开发

后台开发 C/C++ 后端开发 C++后台开发 C++开发

融云 | 云办公时代,企业通讯录的技术选型

融云 RongCloud

企业 云办公

CI与开源代码安全篇 | 龙智邀您共赴GOPS全球运维大会,探索大规模、敏捷、安全、开放式的软件研发与运营之路

龙智—DevSecOps解决方案

GOPS大会 运维‘

CI/CD | 使用静态代码分析工具,有效补充持续集成

龙智—DevSecOps解决方案

cicd 持续集成 CI/CD

兆骑科创创新人才引进,高端人才引进,项目落地引进

兆骑科创凤阁

【8.5-8.12】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

Neo4j导入思知OwnThink开源的知识图谱

Joshua

nlp neo4j 知识图谱

历时4个月,4大板块,328页52188字,SpringMVC源码解析文档

冉然学Java

Java spring Spring MVC 构架 Spring Web MVC、

开源一夏 | Spring MVC深度学习

叶秋学长

开源 Spring MVC 8月月更

Java面向对象之继承

楠羽

MySQL 原理与优化:原数据锁的应用

老崔说架构

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