开放内核运维接口:OceanBase 工具家族新成员 obshell

2024年 7月 29日 50.7k 0

在当前数字化时代,随着数据量呈指数级增长并且业务需求日益多样化,分布式数据库已经成为现代企业不可或缺的基础设施之一。相对于传统的集中式数据库,分布式数据库展现出卓越的性能和扩展性优势。然而,这种复杂性的增加也给数据库管理员(DBA)和用户带来了新的挑战。

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

开放内核运维接口:OceanBase 工具家族新成员 obshell-1

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

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

四、写在最后

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

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


开放内核运维接口:OceanBase 工具家族新成员 obshell-2

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论