在当前数字化时代,数据量呈指数级增长,业务需求日益多样化,分布式数据库已成为现代企业不可或缺的基础设施。相比传统的集中式数据库,分布式数据库展现出卓越的性能和扩展性。然而,随之而来的复杂性也给数据库管理员(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 时,借鉴了其他优秀产品的命令行设计理念,以便契合大部分用户的使用习惯。同时,我们创新地支持通过 Open API 方式管理和维护数据库,这符合现代化设计的理念,使开发者能更方便地操作数据库。
obshell 是 OceanBase 专为运维人员和开发人员提供的免安装、即插即用的本地集群命令行工具。它支持集群和租户的运维、监控、备份恢复、测试以及工具集等常见命令。同时,基于 OBServer 提供的运维管理 API 接口,第三方工具可以通过调用 obshell 接口,实现对同一集群的统一管理,进而降低 OceanBase 集群管理的复杂度和成本。无论是企业版还是社区版的 OceanBase,obshell 在功能上完全一致。
obshell 作为 OceanBase 与其他产品工具交互的统一入口,是底层组件,用于与其他产品的集成。因此,我们规划让 OCP、OCP Express 和 OBD 等产品都能够使用 obshell 进行相关运维操作。目前,OBD 已经基于 obshell 完成了开发适配,其他产品也将逐步进行适配。我们鼓励其他伙伴将 obshell 集成到自建运维管控系统中,从而实现对 OceanBase 的标准化管理。
纵观 IT 演进,人类一直追求的是由复杂至简单,从低效到高效,从高成本至更低成本。再看 OceanBase 发展历程,我们一直秉持的理念就是:把复杂留给自己,把简单留给用户。obshell 也是基于这一理念的延伸和扩展,也是 OceanBase 数据库发展的一个必然结果。我们不得不承认,分布式数据库的运维管理复杂度远高于集中式数据库。如何让用户管理分布式数据库如同使用集中式数据库一样简单,obshell 是 OceanBase 帮助更广泛用户的更好的武器。未来,我们还会推动 OCP Express、OCP 等产品适配 obshell ,并联合第三方工具厂商适配 obshell 。
开源开放、简单易用且具备超强稳定性的数据库产品才能变得更通用,并最终在长期且残酷的市场竞争中走向真正的流行。obshell 基于当前流行的 Go 语言编写,如果您对 OceanBase 的命令行运维管理感兴趣,我们期待与您一起成长,打造更好的分布式数据库命令行运维工具!
转载自OceanBase官方,原文链接:https://mp.weixin.qq.com/s/w43CCyfscTdqhA-ipDIkXQ
本文作者
想了解更多资讯
截图至微信扫码关注👇
了解更多考试相关
扫码添加上智启元官方客服微信👇