云计算的快速发展,打破了传统技术架构的高壁垒,加速创新技术的普及和应用,帮助企业减少信息基础设施投入、降低软硬件运维人力成本、消除软件合规问题、保障数据安全。在云计算大势的推动之下,数据库作为云计算关键技术和最基础的服务之一,同样需要不断进化以适应新的场景需求,“生于云,长于云”的云原生数据库应运而生,并逐渐从星星之火发展为燎原之势。
与传统数据库不同,云原生数据库要求应用或服务从开始就基于云的架构来设计和构建,还要求数据库有更高的扩展性,支持多租户、分布式部署等能力。企业云化从“ON Cloud”走向“IN Cloud”, “以资源为中心”演进到“以应用为中心”,代表着数据库不再是简单的资源供给,而是具备在架构和技术能力上能感知应用特征,一切设计围绕应用出发,可以让企业应用系统更高效快捷地处理数据,充分发挥数据的价值。
为了让大家更好的理解云原生数据库,本篇文章从技术架构、数据存储、自动化管理、安全和隐私保护、未来发展等方面来介绍云原生数据库的技术特点和优势,为读者深入了解云原生数据库提供参考。
一、云原生数据库的技术架构
我们知道数据库是最常用的基础软件之一,它通常能提供计算和存储的能力。单机数据库部署在普通主机上,其存储和计算能力受限于主机的硬件,难以扩展。分布式数据库可以通过适当增加节点,来拓展数据库的容量和计算能力,但是集群节点的能力依旧受到机器资源的限制。虽然分布式数据库也做到了很好的扩展性,但它不能算是云原生。首先,它弹性扩展的单位是节点,而非更加细粒度的计算和存储资源。其次它在设计的时候,并不会考虑云平台的特征,没有相应的优化,以达到最优性能和成本。引入分布式事务、分布式集群管理等模块,也让系统变得更加复杂(当然分布式数据库这条路也有巨大的优势,例如数据量极大、分布式的灵活管理与控制、多副本安全可靠等)。云原生数据库的核心,是要设计一种更加符合资源弹性管理这一理念、充分利用云平台池化资源、适配云平台已有的基础设置的数据库架构。由于云计算平台的存储和计算资源是可以分开扩展的,所以云原生数据库必定是存储计算分离架构。云原生数据库的主要架构特征是“存算分离”,即采用计算资源层与存储资源层解耦的技术
架构,让所有节点都共享一份存储,从而实现增加计算节点无需调整存储资源或拷贝数据文件的目的。在这种架构下,云原生数据库能充分发挥各种资源的弹性能力,从1U到数百U都可以充分利用 CPU 计算能力,支持百 TB和PB以上的存储容量无感弹性伸缩。在云原生 2.0 时代,计算资源层中 CPU 算力与内存也会解耦,从 1G 到上 T 的内存也都可以在线热伸缩。
Aurora 是 AWS 推出的 OLTP 云数据库先驱,在 MySQL 代码基础上改造出存储计算分离架构。Aurora 下推到存储的主要功能主要和 redo 相关,包括:日志回放、故障恢复和备份还原。技术层保留了查询处理、事务处理、缓存管理、锁管理、访问控制等大部分功能。Aurora 激进提出“日志即数据库”的口号,其核心思想是存储网络尽量传输日志流,对于读操作,存储网络传输数据页在所难免,但是计算节点可以通过 buffer pool 来优化。Aurora架构如下图所示。
PolarDB是国内阿里云推出的新一代关系型云原生数据库,同样采用存储计算分离架构,计算节点是一个 MySQL 实例负责存储 SQL 解析、事务处理等,存储节点是 PolarDB 的核心组件 PolarStore,负责数据可靠存储。同一个集群的多个计算节点(1个读写实例和多个只读实例)共享一份数据,正因为如此,扩展只读实例的速度和成本都非常低。数据库实例的高可用通过只读实例在 failover 时迅速转变为读写实例保证,数据的高可用和一致性由 PolarStore 内部实现的 Parallel-Raft(支持乱序提交,性能比 raft 更好)保证。计算节点与存储节点采用高速网络互联,并通过RDMA协议进行数据传输,使网络不再成为瓶颈。
其他还有微软AzureHyperscale、华为云 GaussDB、腾讯云 TDSQL-C、百度智能云的 GaiaDB也都是基于存储计算分离架构的,这种架构能很好地满足云计算场景中数据库服务对计算与存储的不同需求,解决了传统数据库在资源利用率、扩展性及可用性方面的问题,但分离的计算层与存储层给计算存储网络传输带来了挑战,为此业界存在不同的计算能力下沉存储层方法,有时间在下一篇文章中再详述。
二、云原生数据库的数据存储亚马逊 AWS Aurora 基于“日志即数据库”理念将存储层作为一个分布式数据存储系统加以实现;微软 AzureHyperscale 将日志从计算与数据存储之间分离出来单独提供日志服务;阿里云 PolarDB 则更注重软硬件结合的深度优化,提供低延时的PolarFS分布式文件系统供数据库使用。PolarFS是一种共享访问分布式文件系统,需要保证文件系统元数据在各节点之间的一致性,比如一个节点增加,删除了文件,或者是改变了文件的大小,这些更改元数据的操作都要持久化到磁盘中并及时同步到各节点上。为了实现元数据的一致性,PolarFS中每个文件系统实例都有相应的Journal文件和Paxos文件来管理元数据的更新。PolarFS分布式文件系统如下图所示。
云原生数据库的数据存储需要解决存储容量和可靠性方面的问题,也可以考虑使用云存储。云存储之间是可以水平扩展的,理论上它的容量是无限的,而且对于每一份数据都有多副本来保证可靠性。数据分散在云存储的各个节点上,在这个基础上可以做持续备份,并行回档等功能。在可用性方面,数据放在云存储上之后,数据的分片是可以做并行恢复的,回档也可以做并行回档。物理复制的时延一般会比基干 Binlog的逻辑复制更低一点。最后在可扩展性方面,共享存储的优势更加明显,当新建一个只读副本的时候,数据不需要复制一份出来,因为数据是在云存储上作为共享数据存在的,只需要把数据共享,另外再构建增量的数据复制就可以了。
三、云原生数据库的自动化管理云原生数据库的自动化管理技术,包括自动化部署、自动化伸缩、自动化监控和告警等方面。
传统的数据库部署从规划应用容量到评估数据库资源、购买匹配的规格、调整规格到上线部署,流程比较长,人工介入的环节多,在云上环境能不能快速部署使用数据库呢?Serverless即无需服务器,就能使用数据库,比如 Amazon Aurora Serverless,只需要创建数据库节点,选择所需的数据库容量范围,然后通过官方 Data API 进行连接数据库读写,几乎和传统关系型数据库一样易用性。它会自动响应负载变化进行自动扩缩容,真正实现按需付费,相比传统的商业数据库成本大大降低!
在自动化伸缩方面,Serverless既具备本地的弹性伸缩,也支持跨机的横向扩展,规格上限不局限于单台服务器的上限;同时,Serverless 具备支撑多种混合负载的能力,不拘泥于完全的 OLTP 或 OLAP;为了准确地把用户的资源弹性到所需的容量,还需要精确地预测用户的负载曲线,提前弹性扩容。
在自动化监控和告警方面,借助云平台可以为用户提供统一监控云原生数据库的平台,可以通过使用该平台自动的可视化监测云原生数据库的资源使用、引擎性能和运行状况,提供指标分类、预设常用监控项告警指标、预设核心指标的 Dashboard 面板,更方便、快捷的掌控数据库出现的突发情况,提升运维效率,减少运维成本。常用监控项示例。
四、云原生数据库的安全和隐私保护云原生数据库部署环境由封闭式私有环境向开放式公有云服务环境演变,数据库面临的威胁
挑战也越来越多,数据安全隐私问题愈发凸显。数据库安全性,主要是保护数据库以防止不合法操作使用,造成的数据泄露、更改或者破坏。数据库相关的安全功能,主要包括用户身份认证和授权、多层访问控制、审计和数据加密、数据备份和恢复、服务安全等技术。
1. 身份认证和授权:云原生数据库可以使用用户身份认证和授权技术,以保证数据的访问和操作的安全性。身份认证可以确定用户的身份和权限,授权可以限制用户的访问权限,以保证数据的机密性、完整性和可用性。
2. 多层访问控制:考虑到复杂的网络安全需要,可以将代理技术与其他安全机制相结合,通过运用多层安全代理和集成访问控制技术,架构一个基于多层安全代理的集成访问控制模型,这样来保证数据的安全性和隐私性。
3. 审计和数据加密:使用安全审计技术,可以限制用户的访问权限,以防止未授权的用户访问数据,同时对用户的访问行为进行跟踪和记录,以便后续审计和追溯。安全审计可以检测异常行为和安全漏洞,提供安全性和隐私性保障。另外云原生数据库可以使用加密算法对数据进行加密,以保证数据在传输和存储过程中的安全性。加密算法可以分为对称加密和非对称加密两种,对称加密速度较快,但密钥管理较困难,非对称加密密钥管理较容易,但加密速度较慢。
4. 数据备份和恢复:使用数据备份和恢复技术,以保证云原生数据库数据的可靠性和连续性。数据备份可以将数据备份到本地或云端存储中,以防止数据丢失或损坏,数据恢复则可以快速恢复数据,以保证业务的连续性。
6. 服务安全:使用服务安全技术,包括Web应用程序防火墙、DDoS防护、入侵检测等,以保证数据库服务的安全性和可用性。服务安全还可以防止黑客和服务拒绝等威胁,提供更好的用户体验。
五、云原生数据库的未来发展1、智能弹性的能力。云原生数据库未来还需要具备智能弹性的能力,能够根据用户的历史负载计算出用户画像,快速判断未来的负载曲线,智能弹性实现更细粒度、更精准的资源调度,减少系统资源浪费,追求更好的性价比。
2、与AI技术的融合。数据库最初主要解决数据交易问题,因此 OLTP 数据库得到了广泛关注。随着智能时代的发展,越来越多应用需要融合数据库技术和 AI 技术来支持实时的智能决策,因此需要提升数据库的智能化水平。引入 AI 技术,可以大幅提升管理效率,让数据库管理更加智能高效。未来,云原生数据库还将持续与 AI 内外协作,向全场景智能数据库迈进。全场景智能数据库包含两个方面:一是 AI for DB,让数据库管理更加智能高效。具备自检测、自诊断、自调优、自运维及自安全的能力,覆盖数据库全生命周期的管理与优化。二是 DB for AI,提供库内 AI 引擎。库内全流程 AI 框架,数据不出库,端到端完成数据清洗、特征工程、模型选择和模型训练,安全可靠、简单高效;库内原生支持常用 AI 算子,满足绝大部分机器学习使用场景。全场景智能 DB 在 DB for AI 上将从 SQL 扩展到原生 SQL,从单点功能调用到全流程自动处理。
3、全流程的数据安全。针对传统的数据传输安全、数据存储安全、数据运维安全以及面向最终用户的数据显示安全等问题,云原生数据库可使用多种技术来保障数据的安全隐私,如安全传输通道、权限访问控制、数据存储加密及数据动态脱敏等。
4、全密态的数据处理。现有的密态数据处理系统,基于软件的加密方式实现成本较低但计算开销大,而基于硬件的加密方式虽然有较高的效率但对处理器的要求高,实现成本较大。因此,未来的密态数据处理系统可以利用可信硬件(TEE)实现软件和硬件结合的密态数据处理技术,发挥软件加密的灵活性和硬件加密的效率两大优势,使其能够在尽可能少的硬件资源下充分提高系统效率。未来,云原生数据库也将结合当下迅猛发展的全密态和防篡改技术,提升数据可信存储与可信维护能力,保障数据处理的安全。
总结:云原生2.0的时代已经到来,企业数字化转型升级进入新的阶段,企业云化从“ON Cloud”走向“IN Cloud”,“以资源为中心”演进到“以应用为中心”,数据库系统的发展越来越呈现出“应用驱动创新”的特点。应用需求的刺激,驱动云原生数据库不断通过架构上、技术上的融合创新,使数据在架构设计、业务处理、业务切换、运维监控等方面完全开放透明,存算更加智能高效,提升业务应用的敏捷程度、一站式数据处理,满足企业的多元化需求。
标签:原生,存储,架构,数据库,4500,聊聊,数据,节点 From: https://blog.51cto.com/xjsunjie/6469757