化繁为简,PingCAP 与阿里云计算巢联合方案深度解析

2023-12-26 20:40

本文主要是介绍化繁为简,PingCAP 与阿里云计算巢联合方案深度解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

把复杂留给自己,把简单留给用户一直是阿里云坚持的产品理念。企业级开源分布式数据库厂商 PingCAP 创始人兼 CEO 刘奇也曾说:“PingCAP 未来仍将坚持做好一件简单的事情,那就是让数据库回归本来的样子,将复杂交给 TiDB,把简单留给用户。

工程师都希望以最简单而优雅的方式为用户解决问题。近日,阿里云计算巢与 PingCAP 合作,融合双方技术优势的云数据库 TiDB 正式上线阿里云,这正是双方为用户“删繁就简”愿景中的坚实一步。本文将深入剖析 PingCAP 和阿里云计算巢的联合解决方案,探索软件在云端私有化部署的新形态。

TiDB 集群在阿里云上的部署架构图

PingCAP经历了短短七年时间,便实现了“从无到有,从小到大”的成长,其分布式数据库 TiDB,也成为了由中国人主导的顶级开源分布式数据库项目。今年,PingCAP 入选了 2022 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分,是国内唯一入选的分布式云数据库服务商。墨天轮中国数据库排行榜中,TiDB 连续 28 个月(2020 年 1 月 - 2022 年 4 月)在榜单中排名第一。

用户对于云数据库的期待是要充分利用云原生的能力:开箱即用、极致弹性和运维托管,同时又要兼顾数据安全、高性能和低时延。当前,国内大部分企业用户倾向于选择私有化的部署模式。但随着企业对公共云的接纳度的提升,越来越多的企业用户开始转向云上的私有化部署形态。

但传统大规模私有化部署方式存在诸多挑战,比如:集群服务部署架构复杂,组件多;云服务器规格多,无法找到最优的规格组合;手工操作导致的错误和检查,部署效率低;数据库集群的自动扩容和弹性保障。

让我们再回到最开始提到的“删繁就简”。PingCAP 和阿里云计算巢的联合解决方案,就是为了解决传统模式下数据库软件使用过程中的“繁”:云上一键部署数据库集群;通过云上极致弹性能力,保障数据库集群自动扩缩容;同时,提供安全审计,提升系统的运维透明性;此外,在资源账单上做了优化,帮助用户实现更好的成本管理。

云上一键自动化部署,分钟级完成 TiDB 集群的创建

如何能够简化集群部署的复杂度?阿里云计算巢给出的答案是:通过 ROS (资源编排)实现数据库集群的自动部署。ROS(资源编排)是阿里云的 IaC (Infrastructure as Code)产品,随着 Terraform 的普及,IaC 早已不是新鲜概念,但对于广大的用户而言,如果部署数据库软件还学习如何使用 IaC,绝对谈不上“删繁就简”。

TiDB 高可用版部署模板

计算巢不仅支持 ROS 语法、Terraform 语法的脚本以及容器部署,同时,在 IaC 的基础上进一步实现了服务化,用户看到的是一个完全白屏化的服务创建页面,不需要学习什么是 IaC,更不需要感知 IaC 脚本的存在,大大降低了数据库部署门槛。

在阿里云控制台通过点击快捷创建 TiDB 集群

而通过和 TiUP 集群运维平台集成,在云服务器集群创建完成之后,软件的部署也会自动触发并完成,整个过程只需要几分钟。

接入到阿里云计算巢之后,TiDB 集群的私有化部署过程被大大简化了,用户可在计算巢上实现数据库集群和软件的一键部署。同时为了进一步的优化体验,PingCAP 结合自身的最佳实践和测试结果,针对不同版本的 TiDB 集群推荐了最高性价比的云服务器规格,结合 Alibaba Cloud Linux 针对数据库场景的专门优化,用户将可以获得更高的性能。

PingCAP 为用户提供了云服务器规格的最佳实践

此外,针对跨 3AZ 的高可用版本,计算巢会自动过滤出相关规格有充足库存的可用区,同时在用户选择可用区时实现可用区选项的自动校对,避免人为的误操作,保证 3 个集群跨可用区的严格打散,省去了用户核对库存和可用区挑选的麻烦。

所以,通过计算巢部署,用户只需配置节点数量这种业务相关的参数,最大程度简化了集群的部署环节。正常情况下,TiDB 在用户配置完成后就会进入部署状态,仅需几分钟,即可完成部署。相比传统以天、甚至以周为单位的私有化部署周期,有极大的提升。

自动化交付能够带来效率的数十倍提升

大部分软件厂商都在追求产品的标准化,TiDB 在产品标准化上已经做得非常的完善。计算巢进一步的实现了服务交付的标准化,集群的初始化环节几乎不再需要原厂参与,也最大程度上避免了人为引入的错误。从实际效果看,一个 10 节点的 TiDB 集群,基本上从触发创建到最终可用只需 5 ~ 10 分钟

1 个 10 节点的 TiDB 集群创建耗时 7 分 42 秒

由于 TiDB 数据库软件和 Grafana 监控软件的安装是完整集成的计算巢服务里的,在创建完成之后可以直接点击输出的 IP 地址即可访问 TiDB 数据库的管理后台和 Grafana 的控制台。对于很多企业用户而言,云的复杂性完全被屏蔽掉了,只需要关注软件部分的使用。

TiDB 和 Grafana 的控制台

极致弹性,支持服务节点的扩缩容

在完成数据库集群部署之后,随着业务需求的增长,往往会存在数据库集群扩容的需求。在面对扩缩容集群场景时,通常无法轻易获取集群全局部署情况,这也给全局扩缩容增加了困难和复杂度。因此,针对服务节点的扩缩容显得尤为必要。

计算巢天然支持服务节点的扩缩容,充分利用云上的弹性能力保障数据库集群伸缩能力。在此次发布的联合方案中,天然集成了两个伸缩组:一个针对 TiDB 集群,另一个针对 TiKV 集群。用户在面对数据量的爆发性增长时,可选择特定伸缩组调整实例的数量。如下图展示,用户扩容调整后,TiDB Dashboard 中即实现成功扩容。

安全审计,提供“行车记录仪”的体验

企业用户之所以选择私有化部署,很大一部分原因是出于数据安全性的考虑。所以,针对服务商所有的代运维操作,无论是对于资源集群的操作,还是在 Guest OS 内部的操作,计算巢会提供全面的操作日志和录屏记录,便于用户进行安全审计,从而提升了系统的运维透明性。我们将这个功能称之为“行车记录仪”,让服务商操作的全流程可以完整的呈现给用户。

同时,计算巢和 PingCAP 会一并确保软件组件和部署架构的上架和更新会经过严格安全审核,同时严格控制开放的内外网端口,为用户的安全使用提供保障。

服务商对云服务器的操作记录

全面账单,资源消耗清晰透明

在费用的透明化上,计算巢也做了专门的体验优化。在集群创建之前,用户可以看到完整的费用预估,同时可以在集群创建之后,通过账单分析功能直接看到集群资源的费用信息,会过滤出跟当前服务相关的账单,使得不同业务之间的资源消耗清晰透明,帮助用户进行成本管理,精简财务流程。

创建前的费用预估

计算巢账单查询界面

结语

计算巢作为一个面向 ISV、SI 和 MSP (统称为服务商)的云集成 PaaS 平台,方便服务商更好地将产品、服务和阿里云集成,借助云原生的能力提升软件服务在交付、部署及后续管理等环节的效率和用户体验。最终用户可以通过计算巢管理其在阿里云上订阅的各类软件服务。计算巢为服务商和最终用户提供了一个云原生的服务交付平台和连接器,提供更高效、便捷、安全的软件服务和使用体验。

此次和 PingCAP 的联合解决方案,是阿里云开放自身云平台能力和数据库软件厂商深度集成的结果。通过计算巢,阿里云将飞天操作系统的底层能力最大限度的开放给软件厂商,解决软件厂商业务场景中碰到的各类痛点,让软件更好的和云集成。同时提供阿里云生态和市场渠道的快速接入能力,加速软件厂商的业务增长。

这篇关于化繁为简,PingCAP 与阿里云计算巢联合方案深度解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/540713

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S