阿里工程师讲座(一)|学习笔记

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 快速学习阿里工程师讲座(一)

开发者学堂课程【高校精品课-西安交通大学-数据库理论与技术:阿里工程师讲座】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/12/detail/15865


阿里工程师讲座(一)


内容介绍:

一. 传统数据库架构和云的本质

二. 云原生数据库

三. 下一代云原生数据库

 

这一节来做一个实践的分享,介绍一下工业界的云原生的数据库是个什么样的状态,未来的架构眼镜是个什么样状态其实工业界跟学校更深层次的互动的加是一个很好的机制,无论是学校跟企业的联合研发,或者是课程的互动。因为老师的工作包括老师的研究性的工作,包括同学最终都是要为工业界服务的,如果能在业界落地创造价值,这是最终的目的,包括同学学习数据库,比如学习计算机的其他知识,最终也是为了就业或者是科研,科研间接也是为了就业来造福整个社会

反过来说,对于学校可能更代表业界,是怎么样来服务于社会上的各行各业企业,或者个人,或者相关的一些工作。所以尽早的在课程中介绍一些实际工业界用到的一些数据库的知识,以及相关的架构,这个对同学来说是比较有收益的,可以早在学校里学习的时候就有一个 provision,就是能看到未来工业界,比如就业里孵化该是什么样子的,在学习的过程中就会更加的有目的。

今天分享一下云原生数据库就是数据库的一个分支但是现在工业界应用比较广,以及它未来的演进。会以polarDB 为例子介绍一下,就是云原生数据库的经典架构,以及未来的眼镜这块的内容。这次分享会分为三部分首先会介绍一下传统的数据库架构是怎么样的云的本质是怎么样,传统数据库架构跟云的环境,或者说云的架构之间会有一些怎样的冲突或者现在存在的一些问题。

第二部分会介绍数据库就是当下主流的云上的数据库基本都是云原生数据库为主,这些数据库的主要特征是什么它有什么收益,需要做哪些工作来对原有的数据库进行改造。

第三部分会介绍,接下来云原生数据库这块会往哪个方向走,因为现在原生数据库刚刚起步,有第一版的形态,有这个定义出现。未来很长一段时间都是需要有架构眼镜,那未来的架构眼镜会怎么走,会从自己出发点的角度来介绍,在这方面的一些想法或者阿里云在这块的一些想法。

 

一.传统数据库架构和云的本质

首先介绍传统数据库架构,传统数据库架构不一定了解,可能课堂上会学到或者已经学过。

image.png

简单介绍一下这些 baseland 知识点,传统数据架构以前有一个名字LE,学过传统数据库的应该比较了解,就是ibm ,它生产机的,oracle 是生产数据库的,EMC 是生产存储的。

比如一家传统的企业,它要用一个数据库,自己有个机房,于是就买个小装个数据库或者拿个托管的机房把自己的机器放进去那从资源上来说它就是box,这个资源就是买的一台物理机,所有数据库就放在这台物理机的下面所有的资源都是归自己来用,如果资源不够了,比如买的小机规格不够,小机只有32个盒某天业务成长32盒不够了,就要再买个更大一点的机器,然后再来完成这个任务。

那就是一波硬件的升级,把换成一个,比如六四机器或者换成一个更好的数据库的。它生产起来,那这就是IT架构下的传统数据库。

这个 IT 架构的形态现在在云的时代已经彻底被击垮了,就是现在大量的数据库大量的企业都开始上云上云了以后不用再维护多少台机器买多少台pc或者买多少台小机这样的事情。都是在云上买拟机或者是买一些云数据库云的一系列服务云架构下的传统数据库是怎么样的,那最先来的比如有了虚拟机以后大家的做法就是买一台虚机,在虚机里面装一个数据库比如虚拟机是个16盒的一个16盒的 mac,或者是 postgre 之后就可以运行了。

那这就是云上一开始出现的自建的数据库

再后来的就是云商也会提供这种托管的数据库服务,就是传统的ids,可以买一个16盒的 ids,这个 ids 是云产商托管的,但是实际上跟自建的买个vm在上面装的数据库是一样的。只是它的周边配套会做得更好。这个架构会遇到的问题就是一个是多资源耦合的问题。假如买一个 VM那么这个 VM 是定好的,比如16扣多少 G 的 memory假设是65G的 memory,500T,应该到不了500T,500G 或者1T,2T 的数据库

那么这个资源配比是固定的,因为它是从一台物理机上面分配出来的,虚拟或者是云盘之类的。云盘对数据库的影响比较大,所以一般都是本地盘。本盘以后出现的问题就是可能某一个数据库的资源,比如存储量比较小但是需要的 cpu 跟内存比较大。虚机又是从物理机里面切分出来的,所以是没办法搞定这个事情。第二个问题就是弹性会比较困难,假设这台虚拟机也是资源用完要升级,那这时必须要把实力从一台虚拟机上迁移到另外一台虚拟机上。

因为虚拟机的存储资源有可能不在同一台物理机上,可能要迁移到另外一台物理机上。那么这时数据库是携带大量存储的因为数据库本来就是来存数据的所以会导致整个迁移过程比较复杂比较慢。因为要把存储的数据,比如本地有2T的数据,那要把这两T的数据迁移走,但又不能影响数据库服务,数据库当下还是要继续提供服务的,迁移这2t的数据时,比如两个小时,这两个小时不可能止服务,有些业务可以停服,但大部分比如淘宝买东西不可能停服的,要是停止影响就太大了。所以这会造成传统数据库在云的架构上也是有一些问题的主要就是这两块的问题,一个是资源规格的耦合另外一个就是弹性的困难比较大。

那么再说回云的本质是什么云的本质是个很大的概念,也不是某个人来定义的,所以不敢轻易判定云的本质什么,所以就摘了一些比较公认一点的资料。上面那些是维基百科上的,下面是有一个国外的普通大学的课程上的说法。所以云的本质最大的点个人比较赞同的就是云计算的本质其实是按需的一个资源的供给

image.png

谈及到的传统 I T 架构遇到的问题就是只能自己买多少资源用多少资源,不能需要多少就多少,因为需要多少的时候就需要去传统架构下采购大量的机器这个是一个非常重的过程因为它这个采购链的周期是非常长的,那云最给力的点就是可以按需来给你资源,就是现在的云上,比如虚机已经完全能做到这个地步。就是要一台就给你一台,要1000台就给你1000台,这个对于高速发展的互联网业务,或者是传统企业这种业务是非常给力,非常能支撑他们的需求的。 

第二个云的资源云的本质就是云是做资源共享的,因为刚才说过,要1000台都能给1000台,要一台也可以马上收缩回一台共享这一个资源词时就可以用它的规模下的。economies of scale 这个就是云的另外一个本质通过这种资源的共享来提高经济效益。反过来的一个例子就是如果要1000台时买了1000台,那1000台用完比如只是一个大出,只是一个双11那过完了双十一,这999台总不能卖掉因为可能又要再次使用。

如果不用云是一个自建的I T系统,那就只能把它放着,这999的都是浪费的。那云就可以这个资源的共享来搞定效率的问题这是云的本质。s云原生的系统,比如云原数据库有很多云原生的系统,那云原生的系统的本质是什么其实这句话说得挺好,就是要对现有的系统的设计和实现进行优化来让它更加的适应下沉的cloud infrastructure,就是云的底座或者云的架构层来实现 the best elasticity,cost,and effciency

落到数据库上就是需要来重新优化整个数据库架构跟它的实现来使得数据库有更好的弹性就是更低的成本跟更高的效率。这就是云原生数据库,所以云原生数据库它其实并不限制在某一种架构上,它只要能优化原来数据库的架构,来优化它的 elasticity,cost,and effciency,就是云原生数据库,所以它是个很大的 topic。但是落到具体的工程人员应该怎么去优化这个数据库系统那就是一个很大的问题了所以今天就是以这个为目的来展开介绍。

当下云原生数据库最大的特点就是传统的也就是现在市面上所在的云原生数据最大点就是存储的分离Storage Disaggregation,之前提到了好多问题那都是影子,就是传统数据库架构下的遇到的一些问题。那么存储资源分离以后为什么能解决这些问题最大的问题就是弹性的问题。原来需要大量的数据,如果升级数据库的实例的规格,就需要去做数据迁移

存储计算分离就是存储的分离以后从数据库分离出去以后有什么好处首先它弹性时就不需要去做数据的牵引,它的统计结构变得非常的快,就跟边这个例子,如下图:

image.png

它只要重新分配一个计算节点,这计算节点有更多 cpu 更多的内存那它的数据是不用迁移的,因为数据是在一个大的共享存储池里面的所以就能解决这个问题就是这里的第二条 scale up for compute node第一个点是现在资源结耦的问题一定程度上也解决了原来耽误里机最大的磁盘,无论差多少块估计10T这个级别就差不多,如果用 ssd 的大存储可能更高,但数据库一般要求比较高,至少也是个 ssd基本上也就能到达10T这个维度

如果一个数据库有20T,那就放不下了现在因为是个共享存储,所以可以达到比如像现在最大可以达到100T,也可以做的更大那么这个存储的就已经没有问题了最后可以在一份存储上加入更多的读解点,所有人可以来共享同一份存储的数据。那么就是 scale for read 这个点,所以存储计算分离是当初在想怎么去 redesign  database时,这一个比较大的点认为能解决掉这些问题。所以这也是云原生数据库当下,第一代云原生数据库最大的特点。

相关文章
|
Cloud Native Linux API
.NET 发展历程
.NET 是开源、跨平台、社区活跃技术开发平台,中国信通院在 2022 | OSCAR 开源产业大会大会上发布的全球开源生态研究报告里首次提出开源社区成熟度度量模型,.NET 法律合规表现出色,组件许可证兼容性较高,法律风险较小。其生态基于 MIT 和 Apache 2.0 协议基础上构建,对商业友好。
439 1
.NET 发展历程
|
10月前
|
存储 定位技术 开发工具
坦克大战小游戏的实现
坦克大战小游戏的实现
|
7月前
|
数据采集 JSON 算法框架/工具
Python3,听说这个第三方库竟碾压python自带JSON库。
Python3,听说这个第三方库竟碾压python自带JSON库。
88 0
|
11月前
|
Linux 编译器 调度
【Linux】Linux进程的理解 --- 冯诺依曼体系、进程描述符、状态、优先级、切换…-1
【Linux】Linux进程的理解 --- 冯诺依曼体系、进程描述符、状态、优先级、切换…-1
|
10月前
|
SQL Java 数据库
我的创作纪念日
我的创作纪念日
101 0
faker所有常用函数整理,测试工程师自动生成测试数据生成
faker所有常用函数整理,测试工程师自动生成测试数据生成
200 0
faker所有常用函数整理,测试工程师自动生成测试数据生成
|
9月前
|
C语言
c语言第二课------地基打牢,基础打紧,不可放弃2
c语言第二课------地基打牢,基础打紧,不可放弃
|
10月前
|
C语言
C语言中什么是转义字符,又有哪些呢,又如何使用呢?
C语言中什么是转义字符,又有哪些呢,又如何使用呢?
154 0
|
存储 负载均衡 NoSQL
把酒言欢话聊天,基于Vue3.0+Tornado6.1+Redis发布订阅(pubsub)模式打造异步非阻塞(aioredis)实时(websocket)通信聊天系统
“表达欲”是人类成长史上的强大“源动力”,恩格斯早就直截了当地指出,处在蒙昧时代即低级阶段的人类,“以果实、坚果、根作为食物;音节清晰的语言的产生是这一时期的主要成就”。而在网络时代人们的表达欲往往更容易被满足,因为有聊天软件的存在。通常意义上,聊天大抵都基于两种形式:群聊和单聊。群聊或者群组聊天我们可以理解为聊天室,可以有人数上限,而单聊则可以认为是上限为2个人的特殊聊天室。
把酒言欢话聊天,基于Vue3.0+Tornado6.1+Redis发布订阅(pubsub)模式打造异步非阻塞(aioredis)实时(websocket)通信聊天系统
|
机器学习/深度学习 程序员 编译器
面向初学者的 20 大 Python 面试问题和答案
面向初学者的 20 大 Python 面试问题和答案
290 0