OceanBase 社区版 Docker 镜像存在的必要性

今天的文章来聊一个轻松点的话题:OceanBase 提供 Docker 镜像的必要性 >_< 。

Docker 本身火的不要不要的,这个大家也都知道,那么数据库做个 Docker,真的有必要这么麻烦吗?我还记得 2017 年的时候调研容器数据库,当时觉得弄这个还挺麻烦的,当然,也有可能是我水平不行嘿嘿。

好了,回到今天的主题,OceanBase 为什么要提供 Docker 镜像呢?而且 OB 的这个 Docker 镜像可以说是很有诚意,每次新版本发布,Docker 镜像都会在第一时间发布更新

下面带着这个疑问,让我们来回顾一下 OB Docker 的安装部署过程。

1. 安装部署尝鲜

首先呢,Docker 支持很多平台,包括Windows、Linux、MacOS等,对多平台的支持,让我们可以迅速在当前环境拉起一个测试容器。

通过查看网站:https://hub.docker.com/u/oceanbase 上的状态信息,我们可以获知到近期是否有更新存在,比如下图展示了几天前发布的 OceanBase CE 3.1.4 版本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L5G2XshV-1661341432928)(./media/ob-docker-overview/ob-docker-homepage.png)]

然后呢,根据我们获知的这个信息,我们可以点击该镜像,进入到详情页面根据导航一步步操作。大体的步骤总结如下:

  • 在一切开始之前,您需要自行安装对应平台的 Docker 软件,这里我们不展开介绍
  • 直接执行命令拉取 OB Docker 镜像:docker pull oceanbase/oceanbase-ce
  • 执行命令部署集群,并尝试登陆:
    • docker run -p 2881:2881 --name obstandalone -e MINI_MODE=1 -d oceanbase/oceanbase-ce
    • docker exec -it obstandalone ob-mysql sys

通过上面的几个简单的操作,我们就能把一个单机 OB 拉起来了,应付一些简单的体验和开发工作绰绰有余。如果大家想真正操作一遍,请仔细阅读 https://hub.docker.com/r/oceanbase/oceanbase-ce 部分,提前调整好 Docker 服务的资源较为重要。

知识点

经过第一章节的快速演示以后,大家是不是对 Docker 镜像的必要性也有所认识了?OceanBase 的 Docker 镜像,可以说是最简单的 OB 入门方法了。我大体总结了以下几个必要性

  • OceanBase 集群本身对资源要求稍高,在笔记本等环境中通过虚拟机部署较为困难;
  • OceanBase 集群上手有一定难度,常常存在初始化报错并劝退的可能性;
  • 集群性软件各个组件较多,部署步骤较为繁琐;
  • OceanBase 社区版当前仅支持在 Linux 上物理部署;对 Windows 和 MacOS 等系统还不支持;
  • 总结起来无非就是两点,“时间成本” 和 “学习成本” 比较高。

为了解决这几个问题,OB 团队一直在想办法优化集群服务启动对资源的消耗。当然当前来看,通过单机 Docker 来解决以上问题,属于最简单快捷的方案了,无需配置,两条命令启动一个 OB 环境

2. 灵活性问题

上面第一部分也提到了,通过 OB Docker,可以让您在自己的 Windows 或 MacOS 电脑上直接体验 OB,而不必担心本地无法部署二进制的问题。下面我们展开来看看 Docker 带来的其他灵活性优势:

在 OB 的 Docker 主页上,我们首先看到了如下两种部署方式:

# deploy an instance of the largest size according to the current container
docker run -p 2881:2881 --name obstandalone -d oceanbase/oceanbase-ce

# deploy mini standalone instance
docker run -p 2881:2881 --name obstandalone -e MINI_MODE=1 -d oceanbase/oceanbase-ce

第一种部署方式是根据当前容器的配置,部署一个资源最大化的 OB 实例;第二种部署方式是以较少的资源部署一个 OB 实例。这就是 Docker 带来的优势,灵活的资源控制。如果您愿意,也可以较快速的在两种模式间,通过 Docker 进行切换。

其次呢,Docker 镜像为我们提前封装好了测试脚本,我们可以通过一条命令体验性能测试的快感:

docker exec -it obstandalone obd test sysbench obcluster

知识点

通过第二节介绍的两个例子,一个常见的资源控制场景,一个常见的测试体验场景,我们可以获知,通过 Docker 镜像的方式提供 OB 集群,可以灵活的进行部署和测试、甚至“反悔成本比较低”,几分钟就可以重置一套集群。如果您是刚入门,想玩玩,是不是这种方式很方便?

3. 及时性问题

说到及时性,这一点应该与 Docker 更新的低成本和快捷相关,就像刚开篇时我说到的,OB CE 3.1.4 版本刚发布的时候,就会第一时间更新 Docker 镜像。我之前也不止一次分享过 Docker 尝鲜的过程,很丝滑。所以说采用 Docker 的方式,还真的是挺方便的。

说个极端的场景,如果 OB 发布了新版本,我们总不能把生产或测试环境直接更新了吧,用的好好的,能不动就不动的基本原则还是最有效的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1Ix4I1U-1661341432929)(./media/ob-docker-overview/docker-ydbd.png)]

所以如果想最及时的尝鲜新版本,可以先从 Docker 开始~

如果您对 OB 提供的 Docker 镜像还有别的想法,欢迎留言讨论,说出您心里认为重要的点。

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...