【云原生数据库:原理与实践】2 -数据库与云原生

2-数据库与云原生

2.1 数据库在云时代的发展

云计算为计算问题提供了一个解决方案,即把信息化需要的基础设施作为一种服务来提供(Infrastructure as a Service,IaaS),就像生活领域的水电煤气服务一样,企业或家庭用户无须为获取这些资源而进行基础设施建设,比如自己挖井或自己用发电机发电,只要接入政府提供的生活服务网络,根据需要随时取用即可。

有了IaaS层作为基础,云计算服务提供商在此之上建立了更加丰富的层次,如平台即为服务(Platform as a Service,PaaS)和软件即为服务(Software as a Service,SaaS),为各种应用场景在云上找到了合适的舞台。

云托管:云托管是最接近传统数据库系统的部署模式。本质上,云托管是将原本部署于IDC机房内物理服务器(也可能是虚拟出来的服务器)上的传统数据库软件部署在了云主机上。

云服务:用户可以直接使用云服务厂商提供的数据库服务,而不用关心数据库管理软件具体的部署方式。在通常情况下,云服务厂商会提供多种传统的数据库服务,例如MySQL、SQL Server和PostgreSQL,等等。用户可以直接使用云数据库服务的链接地址,采用JDBC或ODBC接口直接访问数据库。

云原生:从云场景出发,设计的具有新架构能够充分发挥云计算下:资源按需使用、快速弹性扩展、高性能、高可用等特点的数据库系统。

2.2 数据库在云原生时代面临的挑战

  1. 如何实现弹性及高可用,即实现按需按量使用,让资源高效利用。
  2. 云数据库在分布式事务的协调、分布式查询的优化和强ACID特性的保证等方面,具有非常大的挑战。
  3. 多服务器安装部署、自动化扩容带来的运维挑战。
  4. 复杂云环境下的实时监控、节点故障和性能问题的安全审计挑
    战。
  5. 多种数据库系统与其业务系统的管理挑战。
  6. 海量数据数据迁移的挑战。

2.3 云原生数据库的主要特点

2.3.1 分层架构

云原生数据库在架构设计上最显著的特点,即将原本一体运行的数据库进行拆解。分层架构的处理流程分为计算服务层、存储服务层和共享存储层。其中,计算服务层负责解析SQL请求,并转化为物理执行计划。存储服务层负责数据缓存管理与事务处理,保证数据更新和读取符合事务的ACID语义,在实现中不一定是物理分离的,可能一部分集成在计算服务层,一部分集成在共享存储层。共享存储层负责数据的持久化存储,利用分布式一致性协议保证数据的一致性与可靠性。

2.3.2 资源解耦与池化

三层池化:计算池、内存池、存储池

2.3.3 弹性伸缩能力

云原生的架构,在本质上,下层是分布式共享存储,上层是分布式共享计算池,中间层用于计算存储解耦,这样可以非常好地提供弹性高可用能力,做到分布式技术集中式部署,从而对应用透明。

2.3.4 高可用与数据一致性

2.3.5 多租户与资源隔离

2.3.6 智能化运维

相关推荐
小蒜学长6 小时前
基于RFID技术的仓储管理系统设计(代码+数据库+LW)
java·数据库·spring boot·后端·rfid技术·仓储管理
梦影_6 小时前
Langchain简单快速上手教程(五)——聊天模型之流式传输
java·数据库·人工智能·python·langchain
数据狐(Datafox)6 小时前
1688商品列表API接口解析(附 JSON 样例)
java·开发语言·数据库·爬虫·json
adinnet20267 小时前
客服与工单:响应时长与满意度问数
数据库·人工智能
文人sec7 小时前
MYSQL:insert...select:为什么锁源表的所有行和间隙?怎么最快地复制一张表?
数据库·python·mysql
oradh8 小时前
Oracle联机日志文件损坏故障总结
数据库·oracle·oracle联机日志文件损坏
IvorySQL8 小时前
PostgreSQL 日报|8 字节 TOAST 值支持(9 月 16 日)
数据库·人工智能·postgresql
实验室管理云平台9 小时前
北京盛元广通推疾控中心实验室管理系统,提升检测效率
数据库·python
极限实验室9 小时前
INFINI Easysearch 向量搜索实战(一)
数据库·搜索引擎
枫叶丹49 小时前
数据库上 Kubernetes 后,KES-Operator 如何简化集群运维
数据库