数据库大讲堂·第五期 云数据库服务:共享还是专属,这是一个问题

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: “世界上只需要5台计算机”,老沃森的观点究竟是一个笑话还是对于未来大胆的预言?数据库技术是如何一步步发展到今天的?未来,我们选择数据库服务时应该选择共享还是专属?在本文中,阿里云智能数据库PD吴林为大家分享云时代需要的数据库服务形态,讨论行业案例分析,业界资源隔离方案,ECS资源分配原理、专属集群如何保证资源专属等内容。

演讲嘉宾简介:吴林(无才),阿里云智能数据库PD,18年IT领域工作经验,对数据库、云计算、金融领域有深度实践,现负责阿里云数据库专属集群MyBase产品。

以下内容根据演讲视频以及PPT整理而成。
观看回放https://developer.aliyun.com/live/245475
更多课程请进入“数据库大讲堂”了解
https://developer.aliyun.com/topic/database/lives
本次分享主要围绕以下四个方面:
一、背景介绍
二、共享和专属
三、云时代需要什么样的数据库服务
四、问答环节

一、背景介绍

世界只需要5台计算机——笑话还是预言
在1943年的时候,IBM董事长托马斯·沃森(老沃森)提出了一个预言:世界只需要5台计算机.当时,世界上的很多人相信这个预言。而当今天回头再看1943年老沃森提出的这个预言,很多人认为是一个笑话,因为现在计算机非常多。其实老沃森在做这个预言的时候肯定是有历史背景的,因为在1943年的时候,全世界的数据量也非常小,而随着计算机技术发展到今天,整个世界的数据量变大非常大,需要以万亿亿来进行计算,因此不能仅靠5台计算机进行计算。

我们所熟知的微型机
在大家的生活中可能会接触到台式机和笔记本电脑,这类电脑属于专属计算机,一般情况下不会共享。

image.png
大型机
除了上述微型机之外还有很多其他类型的计算机,比如下图所示的大机计算机,其体积非常大,可能占据整个房间,而且线非常多并且杂乱。此外,当时使用的主要是真空管和晶体管等,并且主要提供给科研人员使用,这是因为其输入非常复杂,计算机输入所使用的是大家可能没有见过的卡带,也就是在卡带纸条上进行打孔作为输入。此外,机房的环境非常恶劣,因为晶体管和真空管等散热非常严重,因此需要有水来散热。
image.png
上图中右侧是近代金融机构和大型企业所使用的大型机,有点类似在阿里云机房看到的机柜,一个机柜基本上是一个大型主机的规模。在老沃森所处的历史背景下,一台大型机处理一个企业的数据规模基本上是满足要求的。

与大型机相对的就是小型机,以前有一个话题是“去IOE”,所谓“IOE”分别代表IBM、Oracle和EMC。下图是2013年5月17日,阿里集团最后一台IBM小型机下线的场景。
image.png
云时代
为什么小型机要下线,是因为我们要进入云时代。机房中,机架上的每一排都是刀片服务器,而需要散热,有很多风扇,因此在机房中非常吵。
image.png
其实,回到老沃森提出的全世界只需要5台计算机这个预言,其实他说的是全世界需要有5大中心节点来处理大家的需求。在云时代,像亚马逊、微软、阿里云以及谷歌等云产商来全球用户提供服务,从这一点来看,老沃森说的也没有错。进入云时代以后,很显然,大家都希望能够共享,这是因为在公有云中,大家都希望能够随时随地享受到云服务。

二、共享和专属

数据库发展历程
今天分享的主题是共享和专属,在以前的大型机时代,肯定是专属于某一个大型企业和科研机构的。而在云时代,则走向了共享经济,大家可以随时随地享受到便捷的云服务。
image.png
数据库的历史发展非常久远,最早的大型机是在19世纪50年代出现的。标准意义上的大型机是从1964年推出的第一款S360机器开始,当然之前可能还有一些没有量产的机型在50年代就已经出现了。当时出现的数据库有层次数据库和网状数据库,层次性数据库和树状结构非常相似,像是具有根节点的倒立的树,其中具有代表性的层次数据库就是IBM IMS。在小型机时代,出现了关系型数据库,包括MySQL、Oracle、IBM DB2等。进入PC时代之后,数据呈现出百花齐放的状态,能够看到NoSQL数据库、开源数据库以及进入云时代,阿里云等厂商所提供的云原生数据库,能够满足更多客户和场景的诉求。

传统自建数据库的挑战
进入云时代之后,云厂商会提供云数据库服务,但是依然会有很多用户会选择自建数据库。而对于企业而言,所需要维护的数据库数量非常多,虽然现在很多企业选择使用开源数据库,不需要为商业许可证付费,但是对于自建数据库而言,运维成百上千个数据库的压力非常大。而如果企业选择使用开源数据库,技术来源于自身的积累或者开源社区,缺少商业服务,而商业数据库的服务则是收费的,比如Oracle和SQL Server,收费是非常昂贵的。
image.png

三、云时代需要什么样的数据库服务

image.png
在云计算时代,我们所需要的数据库服务需要关注资源、成本、安全、运维、内核的完整方案。

资源隔离
image.png
对于数据库的资源隔离而言,主要有几种类型,包括物理资源隔离、ECS资源隔离以及Docker资源隔离。本次分享中主要介绍物理资源隔离,大家在使用云服务的时候需要选择使用共享实例还是独享实例。

物理机资源隔离
image.png
阿里云对于物理资源隔离分成了共享实例、专享实例、独享实例以及独占主机实例。对于共享实例而言,一个物理部署里面可以创建多个数据库,让数据库1服务于A客户,数据库2服务于B客户,可以通过账号进行隔离。对于专享实例而言,就是说这一个数据库实例就是给某一个用户或者说企业使用的,不会和其他的用户在一起,一般是通过Cgroup进行资源隔离。所谓独享实例就是希望对于资源在一定范围内能够保证资源独占性。对于更加“土豪”的客户而言,就可以使用独占主机实例。

使用Cgroup进行资源隔离
image.png
在使用Cgroup进行资源隔离时,阿里云数据库使用了memory、vlkio、cpu三个子系统分别对实例的内存、IO和CPU时间片资源进行了隔离。使用cpu.share配置各个实例的权重,根据Instance_leve表的limit_memory值进行内存隔离,并根据iops进行配置隔离。针对独享实例,CPU子系统不能完全避免CPU资源的竞争,开始引入CPUSET对独享实例绑定CPU核心资源。独享实例使用CPU+CPUSET两个子系统隔离CPU资源。绑定的CPU核心为逻辑核心,不考虑被绑定的逻辑核心是否在相同的物理核中。

CPUSET
由于独享实例已经使用CPUSET绑定CPU核心,而不同实例绑定不同的CPU核心,因此不会相互争抢CPU核心资源。阿里云数据库团队在使用CPUSET时设置了独享实例CPU核心规格均为偶数,如2、4、8、16、32,并同时考虑逻辑核和物理核之间的关系,让一个物理核虚拟出两个逻辑核,避免不同独享实例之间共享相同的物理核心而产生资源争抢。
image.png
云数据库服务形态
image.png
对于资源隔离的要求而言,在专享服务里面,云服务就是共用资源池,因此用户不知道自己的机器是哪一个,那么很有可能不同用户的数据库实例出现在同一台物理机上,如果某一个客户使用的资源比较多,那么就有可能会产生资源争抢。而对于一些对于性能、安全要求比较高的客户而言,则希望在公共云里面对于某些资源进行独占。

云数据库专属集群
image.png
基于用户的上述考量,阿里云就推出了云数据库专属集群MyBase,这个产品就是为了解决用户的此类问题。阿里云云数据库专属集群产品已经上线一段时间了,现在已经能够支持MySQL、PostgreSQL、SQL Server、Redis和MongoDB等五款数据库引擎,在赋予用户PaaS层数据库服务同样能力的同时,还具备资源超配、混合部署、资源调度、弹性策略、更开放的权限、自主运维能力等,能够满足大中型企业客户对云上数据库自主管理的核心需求。

Redis专属集群助力CC视频轻松应对业务洪峰
2020年,在线教育、视频以及游戏行业特别火热。这些行业在业务洪峰的时候就会出现上述资源争抢的情况,进而影响到自身业务。对于下图中例子的CC视频而言,就会影响其直播效果。
image.png
在疫情期间,直播业务场景内聊天、课件、进出日志等信息实时数据量剧增,几百万在线并发使得传统Redis实例在CPU和带宽、流量方面无法承载。而CC视频采用自建MQ等工具不仅使得管理和运维成本增加,也使得整个数据链路变成。与此同时,随着在线教育的发展壮大,核心业务数据库压力越来越大,需要性能优化和支撑。后来,CC视频在阿里云上采用了多台专属集群主机承载直播视频场景下消息分发业务。当业务高峰来临之前,将核心Redis实例进行独占主机部署,独享整机的CPU和带宽,这是因为对于资源具有独立控制权;而在业务低峰时,通过智能调度整合,通过合理资源缩减和调整分配,降低整体成本。

四、问答环节

最后是本次分享中三个互动问题:
问题1:层次型数据库和关系型数据库,哪个处理更快?
回答1:虽然层次型数据库出现比关系型数据库更早,但是从处理速度上来看,层次型数据库更快。以前的大型机里面有一种语言叫做COBAL,访问数据库的时候不像关系型数据库这样用户友好,需要程序员自己定义访问路径,包括根节点、父节点、子节点等,所以从处理角度来讲,层次型数据库比关系型数据库更快,因为指定了访问路径。
image.png
问题2:专属集群支持哪些数据库引擎?
回答2:当前阿里云专属集群支持MySQL、PostgreSQL、SQL Server、Redis和MongoDB等五款数据库引擎。

image.png
问题3:Cgroup中采用哪三个子系统进行资源隔离?
回答3:Cgroup中memory、vlkio、cpu三个子系统分别对实例的内存、IO和CPU时间片资源进行了隔离。
image.png

目录
相关文章
|
3月前
|
Oracle 数据管理 关系型数据库
云数据库问题之云计算的普及化对中国数据库厂商的全球化发展有什么影响
云数据库问题之云计算的普及化对中国数据库厂商的全球化发展有什么影响
|
23天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
67 3
|
23天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
65 2
|
1月前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
24天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
52 0
|
2月前
|
SQL JavaScript 关系型数据库
Node服务连接Mysql数据库
本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。
43 0
Node服务连接Mysql数据库
|
3月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
73 0
|
3月前
|
运维 数据库 数据库管理
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
|
1月前
|
缓存 弹性计算 NoSQL
新一期陪跑班开课啦!阿里云专家手把手带你体验高并发下利用云数据库缓存实现极速响应
新一期陪跑班开课啦!阿里云专家手把手带你体验高并发下利用云数据库缓存实现极速响应
|
4月前
|
NoSQL Cloud Native Redis