Apache ShardingSphere 在分布式数据库生态里的云原生实践

news/2024/5/19 9:07:34/文章来源:https://blog.csdn.net/ShardingSphere/article/details/127020136

2022 年 9 月 16 日,在『2022 OSCAR 开源产业大会』现场,SphereEx 云原生高级技术专家苗立尧分享了以《Apache ShardingSphere 分布式数据库生态的云原生实践》为主题的技术演讲,本文整理于此分享。

时代浪潮来袭:上云的机遇与挑战共存

近年来,以 Kubernetes 为代表的云原生浪潮解放了运维生产力,使得微服务上线发布和治理提升了一个新台阶,微服务与云计算技术在国内被普遍接受、迅速普及,目前进入了高速发展与爆发阶段。

微服务和云计算不仅仅在技术层面为各组织照亮了新的技术演化方向,也在组织经营、管理层面为其带来了更快的市场响应速度以及新的经济增长点。对各 B 端用户而言,部署微服务、实现数据库的云上迁移已是如今数字经济背景下的必答题。

然而,在企业上云部署升级的需求驱动下,以 Kubernetes、微服务等为代表的新技术要素也对组织内部经年累月形成的中台系统,提出了全新的技术能力拷问:目前的数据应用方案以纵横交错、复杂且高度碎片化的样态呈现,组织决策层如何有效解决“难选型、高成本、管控复杂”的现实应用问题?除此之外,如何顺应时代趋势、妥善将新技术要素与现有技术系统兼并、融合,也上升为决策层需要审慎考量、妥善处理的战略发展问题。

云场景下,企业上云的顾虑重重

除了要解决摆在面前的现实技术拷问,企业还需要先清理横亘在认知与行动层面的“上云顾虑”。虽然在现今数字经济席卷全球的技术环境中,大数据、人工智能、流程自动化等都以云服务方式提供。但在现实层面,多数传统企业在上云探索的实践里,尚处于观望阶段。

伴随数据和数据库迁移到云上,传统数据库的应用、维护环境发生了很大变化。另一方面,数据库本身具有的高效率操作、自身弱安全防护的特点,也使原来的运维安防措施难以满足云场景下的数据库安防需求。

除了上述原因之外,企业和个人开发者仍疑虑重重:

  • 原有的数据迁移上云会不会很麻烦?耗费的周期是不是很长?

  • 上云后数据库安全如何保障?怎样实现数据加密?

  • 云数据库进行存储扩容会导致停服吗?扩容范围是多少?

  • ....

bbe9c099307b3e6f049df510e5286f7b.png

(数据库上云用户最关心的九个问题)

因此,数据库上云用户开始对外寻求一种能够在云原生场景中、围绕数据库进行安全运维管理的专业级解决方案,以此切实保障云上数据的安全。而解决云上数据管控孤岛化的问题,则正是 ShardingSphere 的机遇所在。

ShardingSphere 与云原生场景“天然适配”

ShardingSphere 以强大的产品生态赋能广大开发者,以云原生技术重构传统开发调试测试环境、将数据库带到云环境中、并体验到 Kubernetes 带来的弹性和可扩展性等所有优势。多数据库还能在 ShardingSphere 的加持下,应用自动化管理套件、增强工作负载、高级运维能力、应用可用性防护、监控报警等能力,使组织的研发效能够得到切实提升,达到智慧赋能、降本增效的使用效果。

“云原生十二要素”提到过:当开发者在构建一个云原生应用时,从架构设计到最终交付的全流程里,应该严格区分构建,发布和运行。整个云原生场景内,都需要有持续地集成和交付的过程、有自动化实现持续集成部署、按时交付的能力做支撑。

而 ShardingSphere 的“连接、增强、可插拔”架构设计理念,与云原生场景特征吻合,能与“云原生十二要素”自然融合,ShardingSphere 的三层架构设计也能适配云原生场景下的复杂挑战。

ShardingSphere 的生态系统具备高可靠、快速部署、灵活扩展的多元特性。企业用户及开发者提供使用 ShardingSphere,可以更安全可靠、便捷无感、成本可控的方式满足上云的更高技术要求,从而达成上云的最佳实践。

ShardingSphere 提供快速部署 + 开箱即用的上云方案

从单体到微服务,伴随业务越来越复杂、越来越多元,以及基础设施规模越来越大,服务之间的调用关系变得非常复杂。要想让微服务架构更快地上线和部署,一定要有一个自动化的框架,此时作为容器编排的事实标准,Kubernetes 便为大规模应用的部署提供了新的解决方案。

越来越多的应用开始选择在 Kubernetes 进行部署和交付,ShardingSphere 社区先后贡献的 Helm Chart 和 Operator 两种云原生方式,均能针对性地解决云原生的快速部署和自动化运维的问题。

Apache ShardingSphere Charts 的发布,给 ShardingSphere 项目带来了官方支持的云上部署方案,而 ShardingSphere Operator 解决方案结合 Helm 工具可以在 Kubernetes 环境中快速部署一套 ShardingSphere 集群,真正做到开箱即用,快速尝鲜。

1. 快速部署

云上的部署效率极高,ShardingSphere-Proxy 得益于其简洁的部署架构,将治理节点、计算节点和存储节点分离开,并根据需要组合不同的实例,进行快速的部署。

2. 云上高可用实践

在云上,通常会引入 Region、Availability Zone 的概念用来描述部署位置,并基于此构建不同的高可用方案。ShardingSphere 自身的去状态化保证其良好的弹性能力,此外还提供了 Database Discovery 能力,帮助用户实现数据库维护升级和灾备切换过程中的应用无感知。

3. 云上数据迁移

ShardingSphere 在面对存量数据分片、分片键变更等场景里同样支持数据迁移,配置简单,最小化数据不可用的时间窗口以及保证数据的正确性,以并行任务的方式将数据从本地或原有的云服务上迁移至现有的云平台上。

4. 云上可观测性实践

ShardingSphere 利用 Agent 采集数据,弥补了从原有监控的不足,帮助用户更清楚地发现热点分片、慢 SQL 瓶颈、DistSQL 统计信息等,形成完整的监控洞察链路。其中 CloudWatch 指标还可以被展示到 Grafana,构成完整的端到端监控大屏。

5. 云上影子库

此前,Apache ShardingSphere 联合 Apache APISIX 和 Apache SkyWalking 共同推出了 Cyborgflow 项目,实现从网关到数据的全链路、可观测的压测方案。在云上,通过将 ShardingSphere 影子库能力与 AWS 上用于压测的数据库实例进行结合,通过 Hint 或基于列的影子算法,将数据请求路由到影子库,实现全链路的压测能力。

6.云上加密

ShardingSphere 提供了强悍的数据加密能力,通过逻辑列、密文列、明文列和查询辅助列的组合,实现对业务影响最小、用户体验友好的数据加密体系。

7. 云上日志审计

用户可以通过 ShardingSphere 进行表级别的权限控制以及敏感操作事件推送,这些事件记录会被存储在 CloudWatch LogGroups 对应的 S3 中,以满足审计检查需要。

未来,ShardingSphere 将会进一步丰富数据库计算增强能力在公有云上的实践,进一步优化 ShardingSphere 在云上快速部署、高可用、迁移、安全合规、可观测性等能力,与此同时,ShardingSphere 还将吸纳更多的云化方案,也会通过 Operator 优化 ShardingSphere-Proxy 集群部署结构、自动扩容、混沌工程等。相信通过 ShardingSphere 的赋能,企业级数据库产品在云原生场景下的智能管理、观测防护能力能得到显著提升,企业的技术选择成本也会得到进一步地收缩、控制。

云原生架构下的流量治理:让流量管理更灵动—— Database Mesh

随着云原生应用微服务化、Serverless 化,用户需要面对复杂路由规则可配置、支持多种应用层协议、服务访问的安全性以及流量的可观测性等诉求。在此契机下,2018 年 SphereEx 创始人张亮提出了 Database Mesh 概念,从而构建出了一套高效可编程的数据库治理体验。

基于这样的设计愿景,Database Mesh 以“让开发过程更集中、让云计算更亲和”的设计原则于整体产品生态,切实帮助用户轻松实现基于 Database Mesh 框架下 SQL 感知的流量治理、面向运行时的资源可编程、数据库可靠性工程等能力,助力用户云上数据库治理。目前,Database Mesh 也正随着云原生技术的趋势,正在朝着扩展性、易用性和标准化的方向持续演进中。

Apache ShardingSphere 融合 Database Mesh 理念构建完整的数据库治理全景图,将数据库视作一等公民,一切围绕数据库治理行为进行,同时借助可配置、可插拔、可编程的特性,给工程师提供最大的场景灵活度。Apache ShardingSphere 坚持以开放的生态和实现机制来适配不同的数据库环境,为用户构建和实现面向云原生的标准界面和一致体验。

云原生场景下的“下一步征程”:社区与技术规划

目前 SphereEx 已将 ShardingSphere-on-Cloud 项目作为子项目捐赠给 Apache ShardingSphere 社区,并发表了多篇和云计算、Kubernetes 相关的技术文章,同时在 ShardingSphere Slack 也已经开设了相关的 channel #shardingsphere-on-cloud 方便业内同仁积极交流。

ShardingSphere-on-Cloud 以及 Database Mesh 2.0 的发布,代表 ShardingSphere 通过七年来的深厚技术沉淀,能够切实保证用户通过对 ShardingSphere 产品生态的应用,能够使自身的数据库上云实践目标达成、保证集群的稳定可靠性能,也能在传统解决方案中为自己找到更低成本的技术方案。从而降低自身在云场景下的转型代价与治理难度,让技术栈改造过程更简单、安心、可用。

未来,ShardingSphere 会持续在云原生场景布局,将继续深化用户需求,结合相关行业发展趋势,不断优化 ShardingSphere-on-Cloud 及 Database Mesh 的使用体验,从而打磨出更易用、稳定的云数据产品,为我国的开源版图及云原生产业生态积极助力!最后,欢迎对 Go、Database、Cloud 感兴趣的同学参与 ShardingSphere-on-Cloud 社区,与全球开发爱好者一起共探前沿的数据库技术。

相关链接

🔗 ShardingSphere 项目地址:https://github.com/apache/shardingsphere

🔗 Cloud 子项目地址:https://github.com/apache/shardingsphere-on-cloud

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_13118.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计选题 SSM病人跟踪治疗信息管理系统(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 开发环境3.3 系统流程3.4 系统结构设计4 项目获取1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,【基于S…

idea一顿切换分之后编译项目提示找不到其他分支类的解决办法~

背景: 最近项目逐渐壮大了,需求向雨点般打来, 哪个先上线不确定,所以一个续期打一个分支并行开发 问题: 本地分支一顿切换,然后就遇到了很烦的问题: A分支开发得代码B分支是没有的,…

Nginx 配置错误导致漏洞 (insecure-configuration)

注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关!!! CRLF注入漏洞复现 基本理论 CR在十六进制中代表回车、LF在十六进制中代表换行,注入的原理就是用到就是用到了回车和和换行来构建…

计算机毕设选题推荐 40个高质量项目分享【源码+论文】(二)ssm+vue

文章目录前言 课题1 : 基于SSM与VUE的房屋出租出售系统 <br /> 课题2 :基于SSM与VUE的租房信息管理系统 <br /> 课题3 : 基于SSM与VUE的个人健康信息管理系统 <br /> 课题4 : 基于SSM与VUE的共享充电宝管理系统 <br /> 课题5 : 基于SSM的健身运动平台管…

奇舞周刊第 465 期: 一份详尽的 React re-render 指南

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■一份详尽的 React re-render 指南本文是一篇比较详尽的 React re-render 指南&#xff0c;会着重介绍和解答以下问题&#xff1a;什么是 re-render、哪些是必要或非必要的 re-render、…

[架构之路-3]:架构师 - 软件架构师也是魔法师,架构师应具备的四大方面的技能

目录 前言&#xff1a; 一、业务能力&#xff08;业务领域&#xff09;-- 面向业务 1.1 业务场景 1.2 业务技能 二、沟通能力&#xff08;管理领域&#xff09; -- 面向“人” 三、技术能力&#xff08;计算机领域&#xff09; -- 面向计算机 3.1 硬件技能 3.2 软件技能…

C++STL之模拟实现<unordered_map和unordered_set>

目录&#x1f308;前言&#x1f681;1、哈希表的改造&#x1f682;2、模拟实现的完整代码&#x1f683;3、哈希表的应用&#x1f684;3.1、位图的概念&#x1f685;3.2、位图的实现&#x1f686;3.3、位图完整代码&#x1f687;4、位图的变形&#x1f688;5、布隆过滤器&#x…

Python数据分析——数据基础

数据的分类 结构化数据 结构化数据遵从一定的数据规范和格式&#xff0c;一般存储在结构化的文件中&#xff0c;或者结构化数据库中。 例如这就是一条结构化的数据&#xff0c;按照Company、Date、Stock这样的数据格式进行存储&#xff0c;数据类型是确定的&#xff0c;数据的…

福特汽车是美股电动汽车行业值得投资的股票吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 福特是一个值得投资的电动汽车股票吗&#xff1f; 猛兽财经认为福特&#xff08;F &#xff09;是美股电动汽车行业中一支不错的电动汽车股票&#xff0c;该公司在7 月下旬对其电动汽车计划的更新就证明了这一点。 2022 年…

【Js】JS的历史:认识JS的来龙去脉

文章目录1 JavaScript 历史2 JavaScript是什么&#xff1f;3 JavaScript的作用4 Html/Css/Js的关系4.1Html/CSS 标记语言---描述类语言4.2 Js脚本语言 -- 编程类语言4.3 执行的区别5 JS的组成5.1 ECMAScript5.2 Dom5.3 Bom6 JS书写位置6.1 行内式6.2 内嵌式&#xff08;★&…

Unity Shader: multi_compile一个文件变幻多个shader

multi_compile 我们在写shader时&#xff0c;经常会出现同一个shader在面对不同的一些需求时&#xff0c;可能需要出现一些局部的变化&#xff0c;比如有些地方需要描边&#xff0c;有些地方不需要描边&#xff0c;由于在shader中不适合使用if&#xff0c;所以最好就是再写一份…

sklearn包使用Extra-Trees和GridSearchCV完成成人死亡率预测

成年人死亡率指的是每一千人中 15 岁至 60 岁死亡的概率&#xff08;数学期望&#xff09;。这里我们给出了世界卫生组织&#xff08;WHO&#xff09;下属的全球卫生观察站&#xff08;GHO&#xff09;数据存储库跟踪的所有国家健康状况以及许多其他相关因素。要求利用训练数据…

Fiddler使用

最近老是使用fiddler工具&#xff0c;用了忘所以特此来记录。先说说fiddler吧&#xff0c;这是一款功能强大的抓包工具&#xff0c;平时可以拿来抓抓小程序的包&#xff0c;直接通关羊了个羊&#xff0c;安装就不说了&#xff0c;都是无脑下一步&#xff0c;提供下地址&#xf…

阿里巴巴面试题- - -多线程并发篇(三十八)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

商汤AI象棋机器人到底谁在买?北大象棋大师已签收

金磊 衡宇 发自 凹非寺量子位 | 公众号 QbitAI郭晶晶家的象棋家教——没错&#xff0c;就是商汤AI象棋机器人“元萝卜”&#xff08;SenseRobot&#xff09;&#xff0c;近日正式现货发售。从近2个月前开始预售的那刻起&#xff0c;各种讨论就萦绕在它周围&#xff1a;AI象棋机…

非零基础自学Java (老师:韩顺平) 第21章 网络编程 21.3 Socket 21.4 TCP网络通信编程

非零基础自学Java (老师&#xff1a;韩顺平) ✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】 第21章 网络编程 文章目录非零基础自学Java (老师&#xff1a;韩顺平)第21章 网络编程21.3 Socket21.3.1 基本介绍21.4 TCP网络通信编程21.4.1 基本介绍21.4.2 应用案例1 -…

网络法规——知识产权及侵权鉴别学习笔记

一、知识产权概念 《中华人民共和国民法通则》规定&#xff0c;知识产权是指民事权利主体&#xff08;公民、法人&#xff09;基于创造性的智力成果。 1、知识产权分类 知识产权可分为工业产权和著作权。 工业产权 工业产权包括专利、实用新型、工业品外观设计、商标、服务…

随机生成植物生长及舞动算法

几年前写过一套随机树木的生成算法&#xff0c;其中使用了分形和放样建模。那时候还不知道有speedtree这款软件&#xff0c;写的比较粗糙&#xff0c;最近看了speedtree的演示把原算法改进了一下&#xff0c;算是一个speedtree的简化版本。 重构主要是把原先使用递归函…

使用Consul做注册中心简示

基地版同一个地点 不同的风景

JAMA子刊:孕妈妈每天喝半杯咖啡,可能让胎儿发育迟缓

爱心提示本文不仅适用于喜欢咖啡的孕妇&#xff0c;也适用于喜欢茶&#xff08;包括奶茶&#xff09;、巧克力、能量饮料、可乐和其他含有咖啡因的食物或饮料的孕妇。核心要点题目及新发现的相关背景&#xff1b;已知各权威机构对孕期咖啡因摄入量的建议&#xff1b;业主的个人…