写点什么

云数据库 UDB 的三重境界(三)

  • 2019-11-13
  • 本文字数:2584 字

    阅读完需:约 8 分钟

云数据库UDB的三重境界(三)

构建功能网:全方位覆盖用户需求题

云数据库发展第一阶段的目标是把“取代自建数据库”这个价值点做透,创造出区别于传统方式的全新价值。在第二阶段则需紧扣用户使用数据库的痛点,有针对性地推出公有云解决方案,构成一张功能网,全方位覆盖用户需求。


我们把第二阶段用户的需求归结为三类:


  • 高可用和容灾


数据库的高可用,即数据库节点容灾机制。它通过节点冗余和主备切换,在部分节点出现异常的情况下保证数据库仍可正常提供服务。数据库的高可用是大型 IT 系统的必备机制,但不少系统在建设时,受限于自身基础设施和能力,无法实现优质可靠、高等级的数据库高可用。


而这一点恰好是公有云的优势。首先是基础设施完善。公有云厂商拥有大量的数据中心,数据中心之间通过跨可用区,乃至跨地域的光纤专线进行连通,构成一张覆盖全国乃至全球的高性能网络;第二,公有云的规模效应将带来成本优势,能够显著降低基础设施的建设成本;最后,规模效应也让技术团队被超大力度地锤炼,技术能力和运营水平不断提升。基于以上三点原因,公有云是实施数据库高可用的天然优质土壤。


因此,UCloud 基于自身基础设施来构建高可用数据库产品为用户提供易获取、低成本、高等级的数据库高可用能力,自然也是题中之意,是 UDB 团队必须做透的一个目标。


  • 容量和性能


近些年的一个明显趋势是全社会各行业的数据量在高速增长。原因之一是全社会生产和生活日益互联网化,由此造成用户使用 IT 产品的次数和频率有数量级的增长;原因之二在于企业对数据的价值越来越加以重视,普遍希望能够沉淀数据、分析数据、以及从数据中挖掘出价值。


数据库系统作为 IT 系统的发动机,必然随着大数据时代的到来遭遇新的挑战。用户使用 IT 产品频次的增加,必然在性能上对数据库系统构成挑战;而全社会数据量的大规模增长,必然在存储容量上为数据库系统带来挑战。如何应对这两大挑战,且总体保持 IT 成本可控,是令用户越来越头痛的问题。对于云数据库团队而言,也是创造全新用户价值的大好机会。


  • 运维和安全


运维和安全是云数据库研发和运营永远的课题。需要围绕用户需求构建运维闭环,从数据导入导出、数据库运行期管理/问题排查,到性能分析、数据库优化,让用户不使用任何第三方运维工具,即可将云数据库运维工作全部搞定。在安全上,除了 DBMS 自身的用户访问控制机制之外,还应该围绕审计、加密、防恶意攻击等方面为用户提供优质的产品或功能,构建数据库安全运营闭环。


下面将展开介绍 UDB 产品围绕高可用和容灾、容量和性能、运维和安全这三个方面,构建的众多功能点。这些功能点和功能点的组合构造出一张大网,全方位覆盖用户需求。

高可用和容灾


以上用一个表格概括介绍了 UDB 高可用各功能点。但不能概括的是表格背后 UDB 团队对高可用的潜心专研和精心打磨。总的来说,UDB 团队对高可用这个价值点的打磨包括以下几个方面:

MySQL 数据库内核深度优化

经过 MySQL 官方和社区多年的打磨,MySQL 软件在可靠性和性能上表现优秀,达到了工业级别的数据库管理系统要求,在各个行业都有大规模的应用。


但对于 UDB 团队来说,在线维护几万个 MySQL 实例的稳定运行,迫使我们对 MySQL 的可靠性、容灾能力和性能提出更高要求。为此,UDB 团队对 MySQL 数据库内核做了深度优化来进一步锤炼 MySQL 软件的品质。


这些优化包括:


1.改进半同步复制机制

2.解决复制的临界事务问题

3.提升主从复制的 IO 性能

4.消除复制机制中的文件锁竞争问题


限于篇幅不展开对内核优化的论述,更详细的内容请看详细介绍

全面的容灾能力


高可用 UDB 的总体架构图如上,在容灾能力的建设上需要考虑到两个层面。


a.MySQL 节点的容灾


利用成熟的代理软件 HAProxy 作为代理网关来转发 SQL 请求,主数据库节点出现异常时,由 HAProxy 将 SQL 请求切换到从节点。HAProxy 成熟的节点健康检查和切换机制能够及时有效地检查数据库节点异常,并进行切换。


b.HAProxy 节点的容灾


所谓高可用必须是系统内全部模块去单点,为此也需要考虑 HAProxy 的容灾。普通的做法是利用 KeepAlived 等节点健康监测和故障处理软件,来实现多 HAProxy 节点的部署和容灾。但在长期的工业生产环境中,人们发现 KeepAlived 存在误检测和脑裂等问题,这存在一定的稳定性隐患,不满足云平台容灾的需求。


为此,UDB 团队自研了针对 HAProxy 节点的健康检查和容灾系统,来充分保证高可用 UDB 的稳定性和容灾能力。HAProxy 健康检查和容灾系统采用多节点、跨可用区部署,节点之间通过分布式一致性算法进行选主,结合 UCloud SDN 的 VIP 漂移能力,能够在单可用区完全不可用的情况下实现 HAProxy VIP 的及时准确漂移确保 UDB 实例的高可用。

容量和性能


在上一篇文章提到去年某技术博客公布了国内三大云数据库产品的评测结果,UDB 性能超出竞品数倍。时隔一年后的一个偶然机会,UCloud 云数据库团队得到一份关于某云服务商数据库的性能测试报告,想要详细获取此份报告请点击这里 。根据这份报告,我们对比测试了 UCloud 分布式数据库 UDDB 的性能,以此来分析一年过后各云厂商在分布式数据库的性能差距。



从这个结果我们看到:以该份测试报告为基准,对比测试 UCloud 分布式数据库 UDDB,我们相对竞品,UDDB 依然保持 2-3 倍的性能优势。这也充分说明了物理机+Docker 架构的在性能上的强大优势,也体现 UDDB 中间件强劲的性能。


UDDB 测试环境如下:


运维和安全

UDB 全景图

经过一、二阶段的发展,UDB 产品已经成长为基础扎实、品类完善、功能全面的一个云数据库产品体系。结合上篇第一阶段的 UDB 产品全景图, 叠加 UDB 团队在第二阶段做的工作, 得到新阶段的全景图如下:



在第一阶段的基础上,UDB 产品围绕用户使用云数据库的痛点需求构建了三个方面的能力:

高可用能力

基于全球数据中心间的高速网络,结合数据库软件自身的数据复制机制,以及自研的容灾检测、处理能力,不同级别的数据库高可用能力得以构建。包括同机房高可用、跨机房高可用、跨地域高可用、两地三中心高可用以及跨机房跨地域从库。

容量和性能问题解决方案

提供读写分离、分布式数据库两大产品,有效解决用户在数据高速增长下遭遇的数据库性能和容量问题。同时 TokuDB 压缩存储引擎提供很好的压缩率,在不损失性能的同时为用户节省数倍成本。

运维和安全

在运维方面提供面向 DBA 的数据迁移工具 DTS,以及面向开发团队定位为开发人员身边的自动化 DBA 专家的 DBAMaster 产品。在安全上提供存储加密和数据库审计功能。


2019-11-13 18:52848

评论

发布
暂无评论
发现更多内容

精致女孩的护牙小心机,藏在这瓶冰泉漱口水里

Geek_50a546

实战!使用Docker在线安装OnlyOffice

一个需求

Docker onlyoffice

数据结构——链表

若尘

数据结构 链表 6月日更

深度解读畅捷通云原生架构转型实战历程

阿里巴巴云原生

云原生

[译] D8 优化: Assertions

Antway

6月日更

线性表、顺序表和链表,你还分不清?

华为云开发者联盟

数组 链表 指针 线性表 顺序表

JAVA 面向对象 (十五)-- 异常

加百利

Java 6月日更

阿里P10热荐,面试前必看!Java高并发编程五套“完美日记”GitHub已经标星78K

Java架构追梦

Java 阿里巴巴 架构 面试 并发编程

做好项目管理,项目经理需要具备哪些优秀品质?

万事ONES

项目管理 研发管理 IT ONES 项目经理

唐庄酒业的酒怎么样?好的酱香酒就应该和它一样

Geek_50a546

架构实战营 - 群讨论汇总(2021)

华仔

#架构实战营

记一次MySQL磁盘满了之后清理的过程

北游学Java

Java MySQL

Apache Dubbo 3.0.0 正式发布 - 全面拥抱云原生

阿里巴巴中间件

云计算 阿里云 开源 云原生 中间件

带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式

华为云开发者联盟

设计模式 外观模式 代理模式 装饰模式 享元模式

我的企业安全观

I

安全架构 企业安全 组织架构 安全运营 安全协作

直播连麦技术闭坑篇

anyRTC开发者

音视频 WebRTC 视频直播 视频通讯 视频连麦

技术实践:教你用Python搭建gRPC服务

华为云开发者联盟

Python gRPC 语言 移动应用开发 RPC框架

我去,这是出BUG了呀!

why技术

Java dubbo 后端

如何使用 Distroless 让你的容器更加安全

K8sCat

flask Docker Kubernetes Google Distroless

带你掌握C++中三种类成员初始化方式

华为云开发者联盟

c++ 初始化 类成员初始化 声明时初始化 初始化列表

字节跳动异构场景下的高可用建设实践

火山引擎开发者社区

架构 后端

唐庄酒业的酒怎么样?不输茅台特有面子!

Geek_50a546

☕️【Java技术之旅】【ConcurrentHashMap】深入浅出核心源码分析(JDK1.7版本)

码界西柚

Java 源码分析 ConcurrentHashMap 6月日更

智慧迪拜与不可或缺的区块链技术

CECBC

数字货币将给我们的生活带来什么?

CECBC

云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本

华为云开发者联盟

AI modelarts 华为HiLens HiLens Studio EI智能体

手写Spring,定义标记类型Aware接口,实现感知容器对象

小傅哥

Java spring 小傅哥 aware

项目管理复杂多变,如何成为一个好的项目经理?

万事ONES

项目管理 研发管理 ONES 开发管理

除了数据恢复,EasyRecovery还有这样的功能!

淋雨

文件恢复 Easyrecovery破解 硬盘数据恢复

项目经理的主要工作有哪些?

万事ONES

项目管理 研发管理 ONES

译文 | 新手PM指南:你应该避开的六大常见错误

LigaAI

产品 产品经理 产品设计

云数据库UDB的三重境界(三)_服务革新_UCloud技术_InfoQ精选文章