毕尔巴鄂对阵皇家社会:两支近邻球队将于西甲联赛 “巴斯克德比”中为捍卫荣耀而战贝壳第三季度营收226亿元 经调净利润17.8 亿元 同比下降17.46%AI营销,让科技巨头尝到了大模型商业化的甜头安恒信息范渊在乌镇峰会谈AI:以工具视之、以工具用之、以工具治理之诺基亚与微软再合作,为 Azure 数据中心供货延长五年天岳先进发布业界首款 300mm(12 英寸)N 型碳化硅衬底三星介绍内部安全团队 Project Infinity 攻防演练项目,高效修复 Galaxy 手机平板漏洞上海市将推进低空飞行服务管理能力建设,2027 年底前累计划设相应航线不少于 400 条岁末,海尔给您备好一套“小红花”为什么说Q10K Pro是今年最值得入手的电视?看完这几点就明白了!“小墨方·大不凡”!Brother“小墨方”系列彩喷一体机全新上市黄仁勋:AI智能需求强劲,“物理定律”限制英伟达芯片增长诺基亚与微软再合作,为Azure数据中心供货延长五年国家数据局:到2029年基本建成国家数据基础设施主体结构中国已发展成为全球最大的互联网市场,拥有全球最多的网民和移动互联网用户中国铁塔:计划按照10:1的比例合股美国FCC正式划定5.9GHz频段用于C-V2X技术在AI领域奋起直追!苹果要对Siri大革新 2026年正式发布日本机构公布量子专利榜单:本源量子、国盾量子位居全球第1中国联通:拟向华为、中兴展开5G网络设备竞争性谈判采购
  • 首页 > 数据存储频道 > 数据.存储频道 > 半导体

    ShardingSphere + Database Mesh 爱奇艺的云上数据治理实践

    2022年12月19日 18:03:07   来源:爱奇艺技术产品团队

      今年 5 月,SphereEx 正式对外提出了 Database Mesh 2.0 理念。关于 Database Mesh,其不是静态的定义,而是一个在不断进化的动态概念。Database Mesh 始终关注对数据库流量的治理,基于数据库协议感知能力,提供数据分片、负载均衡、可观测性、审计等能力,这些能力已经解决了数据库治理中属于流量治理的部分问题。此外 Database Mesh 也关注数据库可靠性工程的建设,面向不同角色提供更易用、更极致的数据库治理能力。

      爱奇艺十分认同 Database Mesh 的理念以及愿景,即『在云端实现数据库的高性能扩展以及解决数据治理难题』。因此,爱奇艺基于自身需要对 ShardingSphere-JDBC 进行了扩展,并结合 Database Mesh 理念的具体实现--Pisanix 进行了一系列关键测试,逐步向 Database Mesh 架构演进。

      随着业务扩张与用户数量激增,所接入的各类活动(例如秒杀)也在增长,瞬间巨大流量的涌入也为数据库带来了不小的压力,进而导致企业在应用数据库的过程中出现 slave 延迟、慢查询以及部分操作无法满足业务需要等问题。在微服务架构以及云原生的加速下,双方的结合为业务上线发布和治理带来了新的可能。不过随着业务场景越来越多元,数据应用的方案呈现烟囱状,对数据的管控有孤岛化的趋势,摆在技术人员面前的是“选型难、成本高、管控复杂”等问题。

      尤其是在云原生日渐成熟的今天,业务应用和数据库等基础设施的关系正在潜移默化中改变,爱奇艺希望通过把握云原生架构的新趋势,采用统一化管理的方式,实现对数据库的扩展和升级,以支撑更多应用与业务上云。

      为了满足业务团队在云上环境中对于数据库性能、可用性等方面的高要求,爱奇艺需要将 ShardingSphere 在本地的分布式能力迁移至云端,并寻找一款能够在云原生环境下统一云端数据库流量入口、对云上流量以及数据进行统一高效治理的工具。

      爱奇艺在调研并配合测试反馈由 SphereEx 社区提供的 Database Mesh 解决方案--Pisanix 的同时,也基于 ShardingSphere 社区的 ShardingSphere-JDBC 进行二次开发,以满足目前业务接入数据库治理平台中对于数据分片、负载均衡、配置存储与安全等需求。

      目前爱奇艺使用统一配置中心存储数据库连接配置,使用 KMS 相关技术加密数据库访问配置,使用 ShardingSphere-JDBC 满足数据分片和负载均衡相关的需求,整体架构如下图。

      爱奇艺云原生数据库体系

      当业务接入数据治理平台时,通过申请相关的连接配置,在经过转化和访问信息通过 KMS 加密后存储进统一配置存储中心;当应用启动时,通过改进过后的 ShardingSphere-JDBC 拉取配置并监听配置变更以支持配置热更新。

      在改进之前,如果遇到修改配置、Sharding 集群扩容、集群版本升级、数据库迁移和上云等场景时,往往需要针对业务服务进行重新发版,并且业务方需针对相关场景设计如切换和回滚、选择时间点、流量灰度以及数据校对等复杂操作流程。

      改进后,对于配置中新增或修改分表配置,定制化的 ShardingSphere-JDBC能够对 Sharding 集群的扩缩容或改绑起到很好的支持作用。通过在配置中心白屏操作修改配置或绑定集群,主动选择配置重新加载时机,当 SDK 端接收到最新配置,会使用异步任务进行老连接池的关闭并替换现有连接池,做到读写流量的平滑迁移, 大大降低了相关数据治理能力平滑迁移至云上环境的难度。

      在爱奇艺的规划中,未来规划通过接入 Database Mesh 并引入 Pisanix-Proxy,进一步将数据治理能力从 SDK 下沉到 Sidecar 中。

      在流量入口层,随着云原生应用微服务化、Serverless 化,用户需要面对复杂路由规则可配置、支持多种应用层协议、服务访问的安全性以及流量的可观测性等诉求。关于这部分,爱奇艺最早是通过中间件统一管理 Redis 和 MySQL。

      除此以外,为了更好支持爱奇艺的混合云部署方案,SmartJedis 支持了统一配置中心,在统一的配置中心中动态支持不同环境下的配置,在非网格环境中使用直连的方式,在网格环境中使用 Envoy 中的 RedisProxy 管理 Redis 协议流量并支持连接配置的热更新,避免了 Redis 上云后需要业务重新发版的问题。

      在 MySQL 部分,爱奇艺研发团队测试了 Database Mesh 的具体实践--Pisanix。Pisanix 由 Go 及 Rust 编写,适配 Kubernetes 环境,目前已支持 MySQL 协议。其主要包括 Pisa-Controller、Pisa-Proxy 和 Pisa-Daemon 三个组件,为用户应用提供『本地即数据库』的访问体验,实现支持多协议的可插拔架构、屏蔽真实数据源状态,为数据运维人员提供统一的数据库流量管控能力。

      目前爱奇艺在系统仍然是基于 ShardingSphere-JDBC 来支持 Java 应用,未来 Pisanix 在爱奇艺的系统中得到进一步落地后,爱奇艺将通过 Pisanix 实现标准化的数据库自动维护体验,并通过支撑多语言应用来完成多种数据库治理行为的云原生编排。另外借助各种 Database Mesh 的标准 CustomResourceDefinition,比如统一的数据库接入声明配置、可编程的数据库访问资源限制等,爱奇艺也将能够快速实现云原生数据库的治理编排。

      01 数据分片,在云端提供接近 ShardingSphere-JDBC 的性能

      数据分片是应对海量数据存储与计算的有效手段,这也是爱奇艺在云原生非 Java 语言场景中倾向于 Pisanix 的动机之一。在数据分片的全部环节中,主要包含了 SQL 解析、SQL 改写、SQL 路由、结果归并这 4 个重要模块。

      其中,为配合将 ShardingSphere 本地强大的分片能力迁移至云端,Pisanix 基于底层数据库在云端提供了数据分片的治理能力,用户可以通过 Pisanix 实现水平扩展计算。同时开放更多自定义指标,为 Pisa-Proxy 实现更智能、更稳定的高级自动扩容能力。

      基于 Pisa-Controller 控制面,爱奇艺能够实现对数据面组件的管控,配合 Pisa-Proxy,以 Sidecar 方式与业务应用部署在同一个 Pod 中,用以监听 MySQL 协议获取应用访问数据库的流量。在此基础上,Pisanix 还为爱奇艺提供了多种治理能力:

      SQL 流量治理:通过解析 SQL,实现多种负载均衡策略、限流等;

      访问控制:根据用户和数据权限关系,实现细粒度的权限控制;

      SQL 防火墙:阻止高危 SQL 语句执行;

      可观测性:暴露各种数据库访问指标:如吞吐、延时等。

      对于爱奇艺而言,基于 Pisanix 实现 Java 业务和非 Java 业务都能够在云环境下的高性能分片,将确保更多业务未来能够在 Pisanix 的支持下顺畅运转。

      2、读写分离,有效提升数据库吞吐量

      为了达到提升系统吞吐量以及可用性等需求,许多系统往往会采用主从数据库架构的配置模式,但是这种主从模式也为业务的使用带来了一定的复杂性。因此,在读请求明显高于写请求的情况下,需要在此基础上使用读写分离来突破数据库在实际应用场景中性能瓶颈问题。

      作为业界在主从场景下提升数据库吞吐量最常用的技术方案之一,读写分离能够达到在实际场景中提高查询性能、降低服务器负载的目的。不过读写分离也带来了与数据分片同样的问题,它同样会使得应用开发以及运维人员对数据库的操作变得更加复杂。

      目前爱奇艺通过一主多从的配置方式,将查询请求均匀分散到多个数据副本,进而提升系统的处理能力。这种方式不但能够提升系统的吞吐量,还能够有效提升系统可用性,进而达到在任何一个数据库宕机、甚至磁盘物理损坏的情况下仍然不影响系统的正常运行的目标。

      在规划过程中,爱奇艺计划使用 Pisanix 的动态感知读写分离功能来管理多主多从的数据库集群。在接入 Pisanix 后,爱奇艺将可以利用读写分离功能管理主从数据库,实现透明化的读写分离功能,让用户像使用一个单体数据库一样使用主从架构的数据库。

      目前,爱奇艺内部对 ShardingSphere-JDBC 的改造已经基本完成,未来也将计划应用 Pisanix 配合 ShardingSphere 的能力,在爱奇艺内部实现对 MySQL 的统一治理。在 ShardingSphere 社区和 Database Mesh 社区的大力推动下,Pisanix 也将结合用户使用场景不断打磨云上解决方案,为爱奇艺的业务部门提供可靠的技术支撑,加速云上业务拓展。

      不过,毕竟 Pisanix 是一个非常年轻的项目,因此在实际应用中还是存在一些不足。在爱奇艺的测试应用过程中,目前 Pisanix 对于分库分表的表达式支持程度有限,对于 SQL 的特殊配置程度有待进一步提升。此外如 Pisanix 运行状况的可视化、metrics、熔断降级策略、trace 等与线上性能相关的能力将会是社区接下来的发展重点。SQL 审计、Pisa-Controller 与 Istio 合并等兼容性及性能问题,也已经被社区所注意到并提上了日程。

      未来爱奇艺将基于 ShardingSphere-JDBC 以及 Database Mesh 理念正在迭代中的 Pisanix,搭建起基于 MySQL 的统一数据访问规范和解决方案。通过统一配置中心与定制化 sidecar,爱奇艺将逐步实现数据库访问细节对业务开发人员完全透明,降低使用复杂度的同时增强数据库访问的安全性,加速构建数据库统一配置中心,协助应用上云。

      文章内容仅供阅读,不构成投资建议,请谨慎对待。投资者据此操作,风险自担。

    即时

    新闻

    明火炊具市场:三季度健康属性贯穿全类目

    奥维云网(AVC)推总数据显示,2024年1-9月明火炊具线上零售额94.2亿元,同比增加3.1%,其中抖音渠道表现优异,同比有14%的涨幅,传统电商略有下滑,同比降低2.3%。

    企业IT

    重庆创新公积金应用,“区块链+政务服务”显成效

    “以前都要去窗口办,一套流程下来都要半个月了,现在方便多了!”打开“重庆公积金”微信小程序,按照提示流程提交相关材料,仅几秒钟,重庆市民曾某的账户就打进了21600元。

    3C消费

    华硕ProArt创艺27 Pro PA279CRV显示器,高能实力,创

    华硕ProArt创艺27 Pro PA279CRV显示器,凭借其优秀的性能配置和精准的色彩呈现能力,为您的创作工作带来实质性的帮助,双十一期间低至2799元,性价比很高,简直是创作者们的首选。

    研究

    中国信通院罗松:深度解读《工业互联网标识解析体系

    9月14日,2024全球工业互联网大会——工业互联网标识解析专题论坛在沈阳成功举办。