OceanBase Shell开放内核运维接口,运维更便捷

DBA在日常业务中面临着繁琐的运维管理任务,亟需高效的工具和灵活的解决方案帮助他们简化操作、提升效率。因此,命令行操作和维护工具(CLI工具),因其高效、灵活、可远程管理以及技术深度等特点,成为DBA和开发人员不可或缺的重要工具。

为了更好地满足用户对 OceanBase 更灵活、更深层次管理的需求,我们推出了obshell(OceanBase Shell)。作为OceanBase工具家族的新成员,obshell开放了内核运维接口,通过免安装、本地集群命令行工具的方式,进一步简化并增强了用户对OceanBase的管理能力。

obshell于2024年1月首次亮相,并于4月20日正式开源。本文将介绍obshell的产品定位,以及与OCP、OCP Express、OBD(OceanBase Deployer)等产品及第三方工具的协作关系,并探讨obshell的现状和未来发展规划。

一、分布式运维的复杂性思考

在探讨为何 OceanBase 选择开放运维管理 API 接口时,我们不得不深入剖析背后的逻辑及其对用户的直接价值。OceanBase 与其他数据库产品的一个明显差异点,生态工具更倾向于可视化的方式,如 OCP、OMS、ODC、OAT 乃至 OBD 等工具,来简化数据库管理过程,提升用户体验。这一选择有其深层次原因:一方面,简单易用的界面满足大多数用户的操作习惯;另一方面,通过降低管理复杂度,帮助用户显著提升用户的工作效率。正如蚂蚁集团 SRE 团队以少量 DBA 高效管理整个公司内部所有数据库的真实案例,好工具无疑是提升生产力的关键。

然而,在追求可视化带来的便捷性的同时,我们也收到了来自不同用户群体的多样化需求:

  • 高效批量操作的需求:用户普遍反映,尽管 OCP 功能强大且操作简便,但在处理如多租户同时扩缩容等批量操作时,仍期望能有一套工具集,支持通过 shell 或 Python 脚本等自动化手段,进一步提升工作效率。这种需求体现了在复杂运维场景下,用户对灵活性和高效性的追求。

  • 成本敏感型用户的诉求:对于业务量较小、集群规模有限的用户而言,部署成本成为了一个不可忽视的因素。他们更倾向于像管理 MySQL 那样,无需额外的硬件资源,通过简单的黑屏命令来管理 OceanBase,以此降低运维成本。这种需求反映了不同规模用户对于运维方式的不同偏好和考量。

  • 第三方生态厂商的整合需求:在与第三方生态厂商的合作中,我们发现许多厂商希望直接通过一套 Open API 来管理 OceanBase,而非间接通过 OCP 的 API,同时也需要避免和 OCP、OBD 自身管理功能发生冲突。这一需求不仅关乎技术整合的便捷性,更涉及到避免功能冲突和保障管理权限的独立性问题。

  • 传统数据库用户的习惯传承:对于长期使用 Oracle、DB2 等传统数据库的用户而言,他们更倾向于使用命令行工具来管理数据库,因为通过命令行管理数据库已成为一种习惯。

二、obshell进展如何,目前已经提供哪些能力?

我们在设计 obshell 时,借鉴了其他优秀产品的命令行设计理念,以便契合大部分用户的使用习惯。同时,我们创新地支持通过 Open API 方式管理和维护数据库,这符合现代化设计的理念,使开发者能更方便地操作数据库。

obshell 是 OceanBase 专为运维人员和开发人员提供的免安装、即插即用的本地集群命令行工具。它支持集群和租户的运维、监控、备份恢复、测试以及工具集等常见命令。同时,基于 OBServer 提供的运维管理 API 接口,第三方工具可以通过调用 obshell 接口,实现对同一集群的统一管理,进而降低 OceanBase 集群管理的复杂度和成本。无论是企业版还是社区版的 OceanBase,obshell 在功能上完全一致。

当前 obshell V4.2.3 目前已支持 Cluster、Agent、Task、Utilities 四个命令组(共计 15 个命令)、 25+ Open API 以及 Python & Go 的 SDK,主要支持核心的 OceanBase 集群管理功能以及应急操作能力。未来,我们将逐步完善 OceanBase 集群管理能力,包括集群缩容,集群级别备份恢复等,同时增加租户级别的操作,如创建、删除、扩缩容,备份恢复等。

三、Obshell 的定位是什么,能解决什么问题?

obshell 作为 OceanBase 与其他产品工具交互的统一入口,是底层组件,用于与其他产品的集成。因此,我们规划让 OCP、OCP Express 和 OBD 等产品都能够使用 obshell 进行相关运维操作。目前,OBD 已经基于 obshell 完成了开发适配,其他产品也将逐步进行适配。我们鼓励其他伙伴将 obshell 集成到自建运维管控系统中,从而实现对 OceanBase 的标准化管理。

图片

此外,通过 obshell ,OceanBase 实现了对用户群体的全覆盖能力:obshell  和 OCP Express 以其低成本的特性主要面向轻量级场景;而 OBD 则作为中心化的多集群管理和部署工具,主要服务中小型用户。需要注意的是,OBD 将专注于产品工具的安装部署和易用性提升,而不再扩展支持运维相关操作。您可以将 OBD 的定位视为商业版 OAT,因此不建议基于 OBD 进行系统集成。另外,OCP 作为可视化的多集群管控平台,主要服务中大型客户,同时也提供 Open API,便于与客户的自建系统集成。

最终,我们希望用户能够通过使用 obshell  和其他产品,结合最佳实践,构建简单高效的数据库管理体系,轻松管理 OceanBase 数据库。

四、写在最后

OceanBase 发展历程,我们一直秉持的理念就是:把复杂留给自己,把简单留给用户。obshell  也是基于这一理念的延伸和扩展,也是 OceanBase 数据库发展的一个必然结果。我们不得不承认,分布式数据库的运维管理复杂度远高于集中式数据库。如何让用户管理分布式数据库如同使用集中式数据库一样简单,obshell 是 OceanBase 帮助更广泛用户的更好的武器。未来,我们还会推动 OCP Express、OCP 等产品适配 obshell ,并联合第三方工具厂商适配 obshell 。

开源开放、简单易用且具备超强稳定性的数据库产品才能变得更通用,并最终在长期且残酷的市场竞争中走向真正的流行。obshell  基于当前流行的 Go 语言编写,如果您对 OceanBase 的命令行运维管理感兴趣,我们期待与您一起成长,打造更好的分布式数据库命令行运维工具! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot配置https,并使用wss

学习链接 springboot如何将http转https 可借鉴的参考: springboot如何配置ssl支持httpsSpringBoot配置HTTPS及开发调试的操作方法springboot实现的https单向认证和双向认证(java生成证书)SpringBoot配置Https访问的详细步骤SpringBoot配置Https入门实践springboo…

高精度计算题目合集

高精度计算题目合集 1168:大整数加法 1168:大整数加法 1168:大整数加法 高精度加法原理: a,b,c 都可以用数组表示。这些都是基于c语言的算术运算符形成的运算。 c 3 ( c 1 c 2 ) % 10 c_3(c_1c_2)\%1…

Javaweb前端HTML css 整体布局

最后一个是线条颜色 盒子,整体还是300,400

测试人员--如何区分前端BUG和后端BUG

在软件测试中,发现一个BUG并不算难,但准确定位它的来源却常常让测试人员头疼。是前端页面的问题?还是后台服务的异常?如果搞错了方向,开发人员之间的沟通效率会大大降低,甚至导致问题久拖不决。 那么&#…

嵌入式:Flash的分类以及Jlink/J-flash的编程支持

相关阅读 嵌入式https://blog.csdn.net/weixin_45791458/category_12768532.html?spm1001.2014.3001.5482 常见的Flash大致可以分为以下大类: Serial Nor FlashSerial Nand FlashParallel Nor FlashParallel Nand FlashSerial EEPROM Serial Nor Flash 介绍 Se…

【Linux系统编程】第五十弹---构建高效单例模式线程池、详解线程安全与可重入性、解析死锁与避免策略,以及STL与智能指针的线程安全性探究

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、将日志加到线程池 1.1、Thread类 1.2、ThreadPool类 1.2.1、HandlerTask() 1.2.2、其他公有成员函数 1.3、主函数 2、…

基于SSM的作业批改系统+LW示例参考

1.项目介绍 功能模块:管理员(学生管理、教师管理、作业信息管理、作业提交管理、作业批改管理等)、学生(个人信息管理、作业提交、作业查看等)、教师(个人中心、作业创建、作业批改等)技术选型…

RabbitMQ高可用延迟消息惰性队列

目录 生产者确认 消息持久化 消费者确认 TTL延迟队列 TTL延迟消息 惰性队列 生产者确认 生产者确认就是:发送消息的人,要确保消息发送给了消息队列,分别是确保到了交换机,确保到了消息队列这两步。 1、在发送消息服务的ap…

嵌入式面试八股文(十)·RS485特性分析、CAN硬件同步和再同步遵从规则、SPI四种工作模式、错误帧基本概念

目录 1. 相较于传统的RS232接口,RS485的接口特性有哪些? 2. 在CAN接口协议中硬件同步和再同步需要遵从哪些规则? 3. 为什么位错误不能用于帧间隔? 4. SPI四种工作模式? 5. 关于错误帧,基本概念&a…

librdns一个开源DNS解析库

原文地址:librdns一个开源DNS解析库 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 介绍 librdns是一个开源的异步多功能插件式的解析器,用于DNS解析。 源代码地址:GitHub - vstakhov/librdns: Asynchrono…

cookie反爬----普通服务器,阿里系

目录 一.常见COOKIE反爬 普通: 1. 简介 2. 加密原理 二.实战案例 1. 服务器响应cookie信息 1. 逆向目标 2. 逆向分析 2. 阿里系cookie逆向 1. 逆向目标 2. 逆向分析 实战: 无限debugger原理 1. Function("debugger").call() 2. …

大数据新视界 -- 大数据大厂之 Impala 性能优化:跨数据中心环境下的挑战与对策(上)(27 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

width设置100vh但出现横向滚动条的问题

在去做flex左右固定,中间自适应宽度的布局时, 发现这样一个问题: 就是我明明是宽度占据整个视口, 但是却多出了横向的滚动条 效果是这样的 把width改成100%,就没有滚动条了 原因: body是有默认样式的, 会有一定的默认边距, 把默认边距清除就是正常的了 同时, 如果把高度设…

百度在下一盘大棋

这两天世界互联网大会在乌镇又召开了。 我看到一条新闻,今年世界互联网大会乌镇峰会发布“2024 年度中国互联网企业创新发展十大典型案例”,百度文心智能体平台入选。 这个智能体平台我最近也有所关注,接下来我就来讲讲它。 百度在下一盘大棋…

探索 RocketMQ:企业级消息中间件的选择与应用

一、关于RocketMQ RocketMQ 是一个高性能、高可靠、可扩展的分布式消息中间件,它是由阿里巴巴开发并贡献给 Apache 软件基金会的一个开源项目。RocketMQ 主要用于处理大规模、高吞吐量、低延迟的消息传递,它是一个轻量级的、功能强大的消息队列系统&…

Android 基于Camera2 API进行摄像机图像预览

前言 近期博主准备编写一个基于Android Camera2的图像采集并编码为h.264的应用,准备分为三个阶段来完成,第一阶段实现Camera2的摄像机预览,第二阶段完成基于MediaCodec H.264编码,第三阶段完成基于MediaCodec H.264解码,针对不同…

QT 线程 QThread QT5.12.3环境 C++实现

一、线程 QT主线程称为GUI线程,负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。如果把一些比较复杂或者费时的操作放在主线程中,界面就会出现卡顿或者无响应的现象。一般主线程负责影响界面上的操作, 子线程负责负…

【LLM】一文学会SPPO

博客昵称:沈小农学编程 作者简介:一名在读硕士,定期更新相关算法面试题,欢迎关注小弟! PS:哈喽!各位CSDN的uu们,我是你的小弟沈小农,希望我的文章能帮助到你。欢迎大家在…

Vue3-后台管理系统

目录 一、完成项目历程 1、构建项目 2、项目的自定义选项 3、 封装组件 4、配置对应页面的路由 5、从后端调接口的方式 二、引入Element Plus、Echarts、国际化组件 1、Element Plus安装 2、Echarts安装 3、国际化 三、介绍项目以及展示 1、项目是基于Vue3、Element …

C0030.Clion中运行提示Process finished with exit code -1073741515 (0xC0000135)解决办法

1.错误提示 2.解决办法 添加环境变量完成之后,重启Clion软件,然后就可以正常调用由mingw编译的opencv库了。