提升易用性,OceanBase生态管控产品的“从小到大”

2022年,OceanBase发布4.0版本“小鱼”,并首次公开提出了单机分布式一体化这一理念,旨在适应大小不同规模的工作负载,全面满足用户数据库“从小到大”全生命周期的需求。当时,我们所说的“从小到大”主要聚焦于数据库的“内功”,即数据库内核技术。然而,一个好的数据库产品,仅有深厚的“内功”是远远不够的,还需要有“外功”支撑,即数据库生态产品体系。

接下来,让我们从管控产品的视角,回顾OceanBase在“外功”方面的成长与进步,看看它是如何助力开发者满足从小到大的多样化需求的。

初学者的上手成本

首先来看初学者需要什么?初学者主要关注两个方面——部署成本和部署难度

1、部署成本

自2021年OceanBase开源以来,我们一直在做产品小型化的迭代,从64G的配置要求优化到如今的2C6G配置要求,期间我们从未讨论存储,因为相比CPU和内存,58GB的存储太廉价了。

直到我们和来自高校的学生交流时,才发现原来我们忽略了一个非常关键的细节。

通常,还未走出校门的学生使用的电脑是Windows或MacOS,而OceanBase目前只支持lLnux系统。很多同学会选择从云厂商购买Linux服务器。下图是主流厂商满足OceanBase配置要求(2C6G)的最廉价的一套配置。

1715305550

我们发现无论上图中哪种配置都无法满足最低58GB的配置需求,因此,学生在买机器时就需要额外增加存储成本,更糟糕的是,买完机器后发现50GB难以支撑系统运行,还得再买58GB,最终,购买了108GB,这都是额外成本,对学生来说非常敏感。

2024年,我们把58GB的配置要求优化为20GB配置要求,且其中的16GB是真正数据存储,预留4GB日志存储,大大降低首次启动的存储开销,降低学生的上手门槛。

2、部署难度。

分布式系统部署一直都是“老大难”。2023年我们针对易用性做了很多优化,比如OceanBaseD demo快速体验环境、OceanBaseD WED图形化部署,还推出了all in one一键式安装包。但我们发现,不管使用哪套模式,都会遇到共同的问题,那就是用户需要额外下载一个安装器,这并不符合Linux开发者心目中的安装模式。

什么样的安装模式符合Linux开发者预期?在Centos上使用yum isntall,在Ubuntu上使用apt-get install。而在OceanBase 4.2.1版本开始我们支持原生yum/apt-get install,支持使用 systemctl 管理数据库。

同时,我们还与许多操作操作系统社区紧密结合,例如,实现在龙蜥(OpenAnolis)和欧拉(OpenEuler)社区的制品平台上完成从源码到制品的构建,且制品包被两个社区官方仓库收录。这意味着在OpenAnolis和OpenEuler中安装OceanBase将不再需要添加额外的仓库源,开发者只需使用以下两条指令就能快速启动OceanBase数据库。

yum install oceanbase-ce
systemctl start oceanbase

当然我们不会止步于此,未来我们将推动OceanBase与更多的操作系统社区合作,让开发者可以用最简单直接的方式安装OceanBase。

同样的,我们也在积极推进对Windows和MacOS的编译适配工作。任何曾尝试过大型C++项目跨平台编译的开发者都深知,实现像OceanBase这样大型C++项目的跨平台构建既复杂又具有挑战性。

尽管如此,我们仍旧坚持推进下去。也希望开发者们参与共建,在社区和我们一起共同克服困难。

企业开发者需要什么

当一个开发者进入企业或开始管理自己的项目时,他们面临的数据库管理需求显著提升。这时,他们需要的是一个能够提供全面管理功能的数据库管控台,用以高效、便捷地管理数据库环境。为此,OceanBase社区版提供了两款针对性的产品来满足这类需求:OCP 及其轻量版本OCP-Express。

OCP-Express 设计理念是提供一个轻量级的解决方案,它专注于本地集群的管理。该平台的优势在于功能的聚焦性和简化性,部署时不需要额外的MetaDB成本,非常适合初期阶段或小型项目的需求。通过OCP-Express,开发者可以享受到快速、直接的数据库管理体验,无需承担过多的技术和财务负担。

随着项目规模的扩大和数据管理需求的增长,集群数目也可能随之增加,这种情况下,OCP 成为了更合适的选择。OCP提供了更全面的多集群管理功能,支持规模化的管控操作。这意味着对于那些管理着大规模集群或多项目集群的企业和开发者来说,OCP能够提供更灵活、更强大的数据库管控解决方案。然而,选择OCP的同时也意味着面对更多的部署考虑,包括额外的部署工作及相应的MetaDB成本。

那么,怎么打通从yum/apt-get install到ocp-Express再到ocp的链路呢?这里就需要用到OceanBaseD(OceanBasedeployer)。OceanBaseD是随着OceanBase开源的第一批产品,顾名思义,这是一个专注于部署的软件。但早期开源社区管控的产品不是很成熟,因此我们基于OceanBaseD做了一些轻量的运维功能。当下随着管控生态完善,我们可以使OceanBaseD专注于其本应承担的核心职责——软件包管理和部署

在OceanBaseD的2.8版本中,我们引入了一项新功能——接管集群。通过一个简单的命令——OceanBased cluster takeover -h host -p password <deploy-name>,开发者可快速将用yum/apt-get install部署的OceanBase集群纳入OceanBaseD的统一管理之下。一旦集群被OceanBaseD接管,便可以在现有基础上增加新的组件。

在OceanBaseD 2.4.0版本新增了组件变更能力,使开发者能在已有的OceanBase集群上加装新的组件,比如 OCP Express。了解OceanBaseD的朋友可能会说,“这个为已有集群安装OCP Express的功能你们一年前就做了,新版上有什么不同吗?”

我们可以看到下图的配置对比。左边是我们旧版本,共51行,其中大量的配置与OceanBase相关。此前由于没办法在已部署的配置上直接追加新组件(如OCP-Express,我们每次添加新组件都需要从头编写一个全新的配置文件,并手动为这些组件添加与其相关组件的配置信息),导致冗长的配置过程,作业繁重且易出错。

1715305568

现在,请看右边这份新版本的配置,在优雅的区别中,它仅包含18行代码。真正关键的设置只在第17和18行,提供了配置路径和内存规格要求,大部分配置都涉及基础的组件信息和集群拓扑。得益于新版本的功能,我们可以使用depends关键字将OCP-Express与OceanBase集群简洁、有效地关联起来。OCP-Express能够从OceanBase集群中自动获取其需要的设置信息,而OceanBase也能感知到OCP-Express的加入,自动为其创建Meta租户。完成新的配置文件编写后我们只需要一条命令即可完成组件追加——OceanBased cluster component add <deploy-name> -c new_conf.yaml。新版本中的自动化流程,大大简化了整个部署过程,消除了以往繁杂的手动步骤,确保了新增组件的平滑与稳定。

随着业务增长和集群数量的增多,我们需要具有多集群管理能力的OCP。此前,OCP的部署也是一个令人头疼的问题,但随着更新,OCP与OceanBaseD的结合让该问题得到了解决。OceanBaseD现在能够支持通过命令行的方式自动化部署OCP,当然通过之前提到的组件变更功能也同样适用于OCP的部署。但我不推荐大家这么做。虽然OCP可以对自己的MetaDB进行一定的运维管理,但这种管理并非全面。此外,我们不建议拿业务集群来承担OCP的MetaDB。原因在于,业务集群通常需要应对业务带来的压力,一旦业务负载增强,OCP对自身MetaDB的连接可能会受到影响。在业务压力大时,如果不能通过OCP及时对业务集群进行扩容,以缓解负载,就可能陷入一个恶性循环。

为了简化部署过程,推荐大家使用OceanBaseD的Web界面部署的MetaDB和OCP。使用这种方法,MetaDB将由OceanBaseD部署,而OceanBaseD本身就能为该集群提供基础的管理功能,包括但不限于扩容、升级,启停等服务。

OCP部署完成后,我们便可以将现有的OceanBase集群接入到OCP中。OCP自社区版发布起就具备接管OceanBase集群的能力,但过程较为繁琐,需要多达五个步骤——选择连接方法、填写连接信息、添加主机信息、选择主机类型、添加登录证书。为了简化这一流程,OceanBaseD V2.4.0引入了一个新命令 OceanBased cluster export-to-ocp,允许用户一键将OceanBaseD管理的集群导入到OCP中,导入完成后,也便不再需要OCP-Express。这里可以继续使用OceanBaseD的组件管理能力,通过OceanBased cluster component del <deploy-name> ocp-express命令直接从现有的集群中移出OCP-Express。

基于Kubernetes的新运维

随着全面上云时代的到来,OceanBase也不例外,为了迎合不同用户的需求,提供了多样化的选择方案。对于喜欢公有云服务的用户,可直接在各大云平台上购买OceanBase的公有云服务,享受便捷的数据库体验。而对于那些偏好将数据库系统完全掌握于手中的用户,我们推出了一套基于Kubernetes operator的方案——OceanBase-Operator。OceanBase-Operator项目首次亮相于2022年4月,在2023年的开发者大会上的workshop上同大家一起体验了基于yaml编排的方法创建和管理集群。

为了进一步简化操作,我们引入了operator Dashboard,通过这个可视化界面,用户可以更加便捷地管理其集群。仅需四条简单的命令,就能完成OceanBase-operator和Dashboard的部署。随后就可以完全摆脱YAML文件,在图形化的界面中运维集群。

那么,在Kubernetes上,我们能获得的全新体验是什么?

在传统的物理机环境下,向OCP添加一个节点需要经过一系列繁琐的步骤,包括准备物理机、将其加入OCP,接着加入相应的Zone,并最后提交任务。现在,利用Kubernetes的能力,这个过程变得极其简单,不再需要在考虑新的物理机在哪里,只需要在Dashboard 上调整副本数——比如从1增加到2并提交即可。OceanBase-Operator随后自动完成所有必要操作,实现快速而无缝的扩容。

如果出现节点或整个可用区故障的情况,传统的运维方式将是一场噩梦。运维人员需要将新的主机一台台加入OCP,并一一配置到对应的Zone中。而在Kubernetes中,这一切将完全自动化。一旦OceanBase-Operator检测到副本数量减少,它会自动调度新的Pod来恢复服务,无需任何手动干预。OceanBase-Operator根据存储介质是否可用,OceanBase-Operator会自动决策是重启服务,还是通过挂载新的PV以扩容形式迅速恢复服务。

我们计划未来将支持HPA(Horizontal Pod AutoScaler)功能。用户将通过设定具体的扩缩容指标,OceanBase-Operator能在系统负载升高时自动进行扩容,负载下降时则自动缩容。这一功能在极大减轻运维人员的工作压力的同时还为企业节约了成本。

统一运维接口

上面提到的都是OceanBase原厂提供的管控服务,而对于那些有自建管控平台需求或希望将OceanBase 集成到已有自建平台中的用户,可以使用OceanBaseShell。在OceanBase 4.2.1或更高版本中,我们可以在OceanBaseserver执行文件旁边发现一个新的二进制文件,名为OceanBaseshell。OceanBaseShell是一个结合命令行操作和OpenAPI的软件,它不仅适用于日常运维,还能在OCP或OceanBaseD出现故障时提供应急运维支持,如应急启停、扩缩容、升级等。

1715305579

OceanBaseShell还提供了一套统一的运维API,为运维动作提供了标准接口。利用OceanBaseShell实现的功能,我们实现了yum/apt-get install部署集群,未来,我们还将基于OceanBaseShell完善这套方案,包括扩容、缩容、升级等。同时OceanBaseD也部分接入了OceanBaseShell,这也是其能接管yum/apt-get install部署的集群的原因。后续我们将继续推进管控产品全面接入OceanBaseShell,以实现统一标准的运维和任务状态的同步。

此前当一个由OceanBaseD部署的集群被OCP接管之后,我们会建议用户不再使用OceanBaseD对该集群进行运维操作,以避免可能发生的运维冲突。全线接入OceanBaseShell之后,所有的运维任务都将通过OceanBaseShell的接口下发,从而确保无论任务是由OceanBaseD、OCP还是用户自建的管控台发起的,都不会发生冲突。

目前,社区已经准备好了OceanBaseShell的GO语言SDK,并计划提供包括Python在内的更多语言的SDK。如果大家需要其他语言的SDK,欢迎在社区提出需求。

同时,我们欢迎开发者加入社区,一起参与OceanBaseShell以及其他生态产品的建设。

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

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

相关文章

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | 对话框 | 创建模态及非模态对话框 文章编号&#xff1a;Qt 学…

准橙人工翻译微信小程序,100+专业领域的译者在线帮你翻译!藏语、维吾尔语、哈萨克语、壮语、彝文、蒙古语统统支持人工翻译!

亲爱的朋友们&#xff0c;我们深知每一种语言都承载着独特的文化和历史&#xff0c;为了传承和弘扬这些宝贵的文化遗产&#xff0c;我们诚挚地邀请具备翻译经验并熟练掌握以下任意一门语言的您加入我们的团队&#xff01; 中国少数民族语言&#xff1a;藏语、维吾尔语、哈萨克…

懵了!伦敦银是现货白银吗?

近期&#xff0c;伦敦银价格出现了比较强势的上涨&#xff0c;很多朋友想入场炒银。不过当他们接触伦敦银交易市场的时候就懵了&#xff0c;这个交易品种好像有很多名称&#xff0c;一会儿说伦敦银&#xff0c;一会儿说现货白银&#xff0c;搞得自己都混乱了。到底伦敦银是现货…

CVE-2023-37569(未授权任意文件上传+弱口令爆破)

靶场简介 Online Piggery Management System v1.0 - 存在未授权的文件上传漏洞&#xff0c;登陆界面弱口令爆破 进入靶场 猜测弱口令admin/admin&#xff0c;错误&#xff0c;进行账号密码爆破 得到账号密码 admin/password 登陆进入&#xff0c;找到一处文件上传位置 上传…

千问Qwen7B chat:本地部署及网页端使用

基于前面的安装经验&#xff0c;千问大模型的本地部署并不算难&#xff0c;主要时间用在大模型文件的下载上。同时系统运行对硬件也有较高的要求&#xff0c;本机的硬件配置为N卡3060&#xff0c;显存12G。 使用conda创建虚拟环境&#xff0c;主要版本如下&#xff1a; Pyth…

生成式人工智能 - stable diffusion web-ui安装教程

一、Stable Diffusion WEB UI 屌丝劲发作了,所以本地调试了Stable Diffusion之后,就去看了一下Stable Diffusion WEB UI,网络上各种打包套件什么的好像很火。国内的也就这个层次了,老外搞创新,国内跟着屁股后面搞搞应用层,就叫大神了。 不扯闲篇了,我们这里从git源码直接…

Vue18-列表渲染

一、v-for渲染列表 1-1、遍历数组&#xff08;用的多&#xff09; 1-2、key属性 让每一个<li>都有一个唯一的标识&#xff01; 1、写法一 只有用了遍历的方式(v-for)来生成多个同样结构的数据&#xff0c;必须给每个结构取一个唯一的标识。 2、写法二 或者&#xff1a;…

【全开源】生产管理系统源码(FastAdmin+ThinkPHP+Layui+uniapp)

&#x1f525;揭秘高效生产管理系统&#xff0c;让你的企业腾飞&#xff01;&#x1f680; 一款基于FastAdminThinkPHPLayuiuniapp开发的生产管理系统&#xff0c;帮助企业数字化转型&#xff0c;打造智能工厂&#xff0c;专业为生产企业量身开发的一套完整的生产管理系统。主…

【乐吾乐2D可视化组态编辑器】管道绘制,水流动画

用乐吾乐2D可视化连线丰富的外观和动画效果&#xff0c;快速绘制各种风格的管道和水流动画。 乐吾乐2D可视化组态编辑器地址&#xff1a;https://2d.le5le.com/ 方式一&#xff1a;线条渐变 特点&#xff1a;呈现管道的金属光泽和管道剖面 外观&#xff1a;线条渐变--线性渐…

Jenkins 和 GitLab CI/CD比较

近十年来&#xff0c;持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff09;和持续交付&#xff08;Continuous Delivery&#xff0c;CD&#xff09;领域都取得了很大的进步。DevOps 测试的兴起导致了对 CI/CD 工具的快速需求。现有的解决方案总是随着时间的推…

LlamaIndex 四 数据连接器

前言 我们通过各项配置&#xff0c;理解了LlamaIndex在构建知识库和基于知识库的推荐两个阶段&#xff0c;怎么和业务相结合。本文&#xff0c;我们将开始深入理解LlamaIndex的各个模块。首先&#xff0c;LlamaIndex强大的Data Connector 数据连接器上场。 LlamaIndex擅长和各…

聆思CSK6大模型开发板英语评测类开源SDK详解

离线英文评测算法SDK 能力简介 CSK6 大模型开发套件可以对用户通过语音输入的英文单词进行精准识别&#xff0c;并对单词的发音、错读、漏读、多读等方面进行评估&#xff0c;进行音素级的识别&#xff0c;根据用户的发音给出相应的建议和纠正&#xff0c;帮助用户更好地掌握单…

正大国际期货:如何做恒指期货

要想获得较好的收益&#xff0c;就必须要知道恒指做单的技巧&#xff0c;毕竟掌握了技巧才是最重要的。 第一、下单之前一定看准行情并且顺势操作。何为顺势&#xff1f;就是我们平时说的趋势&#xff0c;只要趋势做对了&#xff0c;在中途可能会有一些起伏&#xff0c;但是最后…

中间件复习之-分布式存储系统

单机存储系统介绍 存储引擎&#xff1a;存储系统的发动机&#xff0c;提供数据的增、删、改、查能力&#xff0c;直接决定存储系统的功能&#xff08;支持怎么样的查询&#xff0c;锁能锁到什么程度&#xff09;和性能&#xff08;增删改查速度&#xff09;。 性能因素 写入方…

计算机网络知识CIDR(无类别域区间路由)

目录 介绍 基本信息 优点与关联 如何计算判定范围&#xff08;你应该是来看这个的&#xff0c;前面是水字数的&#xff09; 省流版 介绍 无类别域间路由&#xff08;Classless Inter-Domain Routing、CIDR&#xff09;是一个用于给用户分配IP地址以及在互联网上有效地路由…

智慧监狱大数据整体解决方案(51页PPT)

方案介绍&#xff1a; 智慧监狱大数据整体解决方案通过集成先进的信息技术和大数据技术&#xff0c;实现对监狱管理的全面升级和智能化改造。该方案不仅提高了监狱管理的安全性和效率&#xff0c;还提升了监狱的智能化水平&#xff0c;为监狱的可持续发展提供了有力支持。 部…

「小明赠书活动」第五期“网安三剑客”套系图书《内网渗透技术》《渗透测试技术》《Web应用安全》

大模型风潮已掀起&#xff0c;各大巨头争相入局&#xff0c;从ChatGPT到Sora&#xff0c;全球的AI应用“卷出了花”。然而&#xff0c;网络安全人员在享受AI技术带来的便捷之余&#xff0c;也不得不面对一系列新兴的安全挑战&#xff0c;无法忽视。 ⭐️ 赠书 - 图书简介 人…

【解读】核密度图

def&#xff1a;what 核密度估计&#xff08;Kernel Density Estimation&#xff0c;简称KDE&#xff09;是一种用来估计随机变量概率密度函数的非参数方法 实现&#xff1a;&#xff08;库函数&#xff09;how import seaborn as sns import matplotlib.pyplot as plt# 使用…

GaussDB技术解读——GaussDB架构介绍(二)

上篇图文&#xff0c;从GaussDB关键架构目标、GaussDB分布式架构、数据计算路由层&#xff08;Coordinator&#xff09;关键技术方案等三方面对GaussDB架构进行了介绍。本篇将从数据持久化存取层(DataNode)关键技术方案、全局事务管理层&#xff08;GTM&#xff09;关键技术方案…

企业内网安全软件分享,有什么内网安全软件

内网安全&#xff1f; 其实就是网络安全的一种。 什么是内网安全软件&#xff1f; 内网安全软件是企业保障内网安全的一种重要工具。 它主要帮助企业实现对网络设备、应用程序、用户行为等方面的监控和管理&#xff0c;以预防和应对各种网络攻击。 这类软件主要用于对内网中…