
2022
全球分布式云大会
- 深 圳 站 -
2022全球分布式云大会·深圳站于12月21日正式召开,全球分布式云联盟携手阿里云、腾讯云、华为云、天翼云、浪潮云等联盟成员,共同打造属于分布式云计算的年终科技盛典,深度总结分布式云计算发展至今取得的科技实践成果,立足深圳、辐射华南、影响全国,以分布式云计算筑牢数字化转型的基石底座,擘画数字化深水区新商业版图!

在12月22日下午举办的“云原生开源生态及实践论坛”上,北京思斐软件技术有限公司(SphereEx)云研发负责人 苗立尧发表了题为《基于 ShardingSphere 构建云上分布式数据库》的精彩演讲,本文为演讲内容文字实录。
数据库碎片化与云原生浪潮
微服务带来了快速响应市场的能力,增加了部署、上线、更新、测试等管理维护的复杂度。
以 Kubernetes 为代表的云原生浪潮帮助解放了运维的生产力,使得微服务上线发布和治理提升了一个新台阶。
随着业务场景越来越多元,数据应用的方案呈现烟囱状,对数据的管控有孤岛化的趋势,摆在技术人员面前的是“选型难、成本高、管控复杂”等问题。
Apache ShardingSphere:全球最顶级的开源软件基金会、管理超过两亿行代码、成功孵化 300+ 顶级开源项目。
基金会认可:Apache 软件基金会顶级项目。
社区活跃度:2021 年度 Apache 基金会年度报告代码提交量位列前十。
学术界认可:数据库顶会 ICDE 2022 发表论文《A Holistic and Pluggable Platform for Data Sharding》、出版《Apache ShardingSphere 的权威指南》,有力阐述了如何在多模型数据库之上构建开放生态。

构建云上分布式数据库
分布式数据库全面兼容面向传统关系型数据库的 SQL 和事务,并且对分布式的天然友好,是分布式数据库解决方案的设计目标,主要集中在:
分布式存储: 数据存储不受单机磁盘容量限制,可通过增加数据服务器的数量提升存储能力;
计算存储分离: 计算节点无状态,可通过水平扩展增加算力。存储节点和计算节点能够分层优化;
分布式事务: 高性能、完全支持本地事务 ACID 原义的分布式事务处理引擎;
弹性伸缩:可以随时随地的在不影响现有应用的情况下,动态对数据存储节点扩容和缩容;
多数据副本:自动将数据以强一致、高性能的方式复制至跨机房的多个副本,以保证数据的绝对安全;
HTAP:采用同一套产品混合处理 OLTP 的事务型操作和 OLAP 的分析型操作。
快速启动:云上的部署效率极高,通常都会有多种工具链帮助加速部署,比如云上版本的 Puppet 和 Ansible。而近几年火热的 Infrastructure as Code 大大简化了版本化的部署过程,比如阿里云的 ROS,华为云的 AOS。
AWS 提供了丰富的应用部署工具集,包括 OpsWork、SystemManager、CloudFormation 等,可以统一配置 VPC、子网、安全组等基础网络环境,同时可以部署 EC2、节点组、自动扩容组等计算资源,实例运行的时候自动启动指定应用。
ShardingSphere Proxy 得益于其简洁的部署架构,将治理节点、计算节点和存储节点分离开,并根据需要组合不同的实例,进行快速的部署。
数据源高可用:在云上,通常会引入 Region、Availability Zone 的概念用来描述部署位置,并基于此构建不同的高可用方案。比如阿里云、华为云和 AWS 的 RDS 都有单 AZ 和多 AZ 的部署方式,并有多种灾备切换方式。
ShardingSphere 自身的去状态化保证其良好的弹性能力,而它还提供了 Database Discovery 能力,实现用户应用无感知的数据库维护升级和灾备切换。
数据弹性迁移:为了将存量数据或遗留数据库系统迁移至云上,一般都会通过 Data Migration Service 的方式进行。常见的有阿里云的 DTS、华为云的 DRS,以及 AWS 的 DMS 等。
DMS 提供的迁移能力,可以以并行任务的方式将数据从本地或原有的云服务上迁移至 AWS RDS,配合 Schema Conversion Tool 还可以实现 Schema 元数据变更。
ShardingSphere 在面对存量数据分片、分片键变更等场景里同样支持数据迁移,类似 DMS,配置简单,最小化数据不可用的时间窗口以及保证数据的正确性。
可观测性:对于可观测性建设的一个要点是尽量减少信息孤岛的影响。云上通常已经具备了从软件到硬件整套分层的监控和洞察能力,还可以配合通知服务、Serverless 服务等,构建多种指标消费渠道。AWS RDS 就提供了 CloudWatch 和 Performance Insight 两种丰富的监控和透视指标,并支持报警和事件处理。
ShardingSphere 利用 Agent 采集数据,弥补了从原有监控的不足,帮助用户更清楚地发现热点分片、慢 SQL 瓶颈、DistSQL 统计信息等,形成完整的监控洞察链路。CloudWatch 指标还可以被展示到 Grafana,构成完整的端到端监控大屏。
影子库:2022年初的时候,Apache ShardingSphere 联合 Apache APISIX 和 Apache Skywalking 共同推出了 Cyborgflow 项目,实现从网关到数据的全链路、可观测的压测方案。
在 AWS 上可以利用多套 RDS 或者 Aurora Clone 快速部署一套用于压测的数据库实例,和 ShardingSphere 的影子库能力二者相互配合,通过 Hint 或基于列的影子算法,将数据请求路由到影子库,实现全链路的压测能力。
加密洗数:数据安全是重中之重,不同的行业有着对应的审计要求,比如细粒度的认证授权、操作日志需要脱敏保留、数据传输加密、机密数据加密存储等。在阿里云、华为云和 AWS 上提供了多种安全和合规工具,比如 KMS,CloudHSM 以及 CMK 帮助解决加密相关的问题。
ShardingSphere 提供了强悍的数据加密能力,通过逻辑列、密文列、明文列和查询辅助列的组合,实现对业务影响最小、用户体验友好的数据加密体验。
日志审计:而对于数据库行为审计,除了可以通过在 RDS 配置中进行实现外,还可以通过 ShardingSphere 进行表级别的权限控制,以及敏感操作事件推送。这些事件记录被存储在 CloudWatch LogGroups 对应的 S3 中,以满足审计检查需要,同时这些事件还可以导入 OpenSearch 进行分析,或者发送至 Lambda 进行更具体的计算等。
ShardingSphere 是数据保护的第一道屏障。

云原生实践案例分享







ShardingSphere on Cloud 社区
和OpenSergo的方案:Apache ShardingSphere 和 OpenSergo 共同提升微服务体系下数据库的性能与稳定。
和Database Mesh的方案:Database Mesh 可以为 ShardingSphere 提供更加灵活的流量治理能力。
社区:目前 SphereEx 已经将 ShardingSphere-on-Cloud 项目作为 子项目捐赠给了 Apache ShardingSphere 社区,并同时社区已经发表了多篇和云计算 、Kubernetes 的相关技术文章。
ShardingSphere-on-Cloud当前状态支持 Helm 开箱即用的 ShardingSphere Proxy;支持 Helm 交付的 ShardingSphere-Operato;支持 AWS CloudFormation 快速启动一套多可用区部署的 ShardingSphere Prox;支持上述 CloudFormation 的 Terraform 可编程定义模板。
下一步ShardingSphere-on-Cloud将致力于快速部署:一键部署,开箱即用,适配多 AZ 场景;可观测性:暴露更多指标,细致分析数据执行逻辑;高可用:支持更多的数据库灾备场景,引入混沌工程提高健壮性;安全、迁移、加密、合规等问题。
苗立尧在演讲最后表示,Cloud is future, and now it comes !


- 媒 体 矩 阵 -




