本篇接上篇《OB 公有云数据库 0 元购试用体验》,继续体验 OB 在华为云上的租户实例、OB 在阿里云上的集群实例,并分析跟线下机房独立部署的 OB 的区别。
OB 在华为云上的产品控制台并不是部署在华为云上,而是独立开发的网站,接入了 OB 官网的用户认证,域名是:https://cloud-cn.oceanbase.com/。产品支持华为云、腾讯云等。
产品首页如下。
如果是选择【阿里云】,就会跳转到阿里云上的 OceanBase 产品购买页面。选择其他云,就是指定云数据库相关信息直接购买。推测是 OBCloud根据用户的需求去调用云厂商的 ECS、VPC、SLB 等产品购买接口购买主机和网络等相关资源,然后部署一个 OceanBase 集群。OBCloud 数据库在购买的时候需要先确定好机房容灾模式。如果是阿里云上购买,支持单机房三副本部署、双机房两副本部署、多机房两或三副本部署。如果是腾讯云和华为云,则不支持单机房部署。OBCloud 业务除了阿里云外最大的应该还是 AWS。这次没有体验 AWS,主要的功能应该类似。机房在云上为可用区,公有云一般在大城市里有四个以上的可用区。选择哪个可用区还要考虑你的业务应用会部署在哪个可用区。

OB 华为云实例连接
OB 华为云实例的连接方法也是首先要配置云实例的白名单,然后创建租户的访问用户。
在连接用户名格式上跟阿里云有点不一样,这里的用户名格式是:租户账户@租户名 。同样后面也没有集群名,但是却有租户名,估计是 OBCloud 在非阿里云上目前还做不到根据实例地址和用户名就映射到对应租户的账户上,将来应该可以。OB 独立部署的时候连接用户名格式是:租户账户@租户名#集群名,端口是 OBProxy 默认端口 2883 或 F5 VIP 连接端口。云上的 OB 实例连接用户名和端口都是 OBCloud 产品定义的,主要是为了贴近传统用户(如MySQL 用 3306 端口,ORACLE租户用 1521 端口)。OBCloud 集群实例里可以创建多个租户,每个租户的实例链接地址(域名)都是不一样的。这点也是跟线下独立部署时连接方式不一样的一个点。
OBCloud 租户实例的数据迁移
OBCloud 租户实例都支持数据迁移,使用的是 OMS 云产品。跟线下 OMS 的区别就是支持源端和目标端类型不一样。在阿里云上,OBCloud 的数据迁移也是使用 OMS 而不是阿里云 DTS 产品。

数据迁移会消耗迁移服务器 CPU、磁盘、网络资源,需要单独购买的。数据迁移的问题挑战跟线下 OMS 使用基本一样。尽量做一些事前检查,确保符合数据迁移条件。避免后期数据迁移失败反复重跑的现象出现。
OBCloud 集群实例运维
前面试用的都是 OBCloud 租户实例,看不到租户所在的集群信息。再次采购了一个 OBCloud 集群实例体验一下。
OBCloud 集群实例产品功能页面如下。也是包括实例创建、数据迁移、数据研发等。
点击租户管理,进入具体的租户页面,就跟前面介绍的 OBCloud 租户实例页面差不多。OBCloud 集群实例是独占 ECS 资源,这个 ECS 的规格就是根据购买 OBCloud 实例规格去匹配选择的。OBCloud 是独占了三个 ECS 资源,不过 ECS 本身并不一定是独占后端物理机(除非是顶配的 ECS)。云数据库都是如此。OBCloud 集群实例不需要用户运维,所以也没有提供 SYS 租户的访问入口。在 OBCloud 集群实例里创建租户跟线下 OB 集群创建租户基本一样,不同的是 OBCloud 租户实例都会分配独立的连接地址(私网地址)。OB 租户里的 PRIMARY_ZONE 选择在 OBCloud 租户实例变成读写可用区的选择。除了默认的连接地址(可读可写)外,OBCloud 租户实例还支持新增只读或读写分离的连接地址。这个使用起来非常方便。OBCloud 实例默认就支持备份,包括数据备份和日志备份,备份介质是云的对象存储。在阿里云里是 OSS,腾讯云上是 COS,华为云是 OBS。目前初步观察,还是 OSS 跟 OB 适配的最好。OBCloud 实例为备份空间提供一个免费的额度(根据保留的天数和空间大小定),超出的部分需要额外收费。所以用户需要精确设计备份策略。
OBCloud 租户实例的开发
OBCloud 实例还提供一个 SQL控制台的功能,其实就是调用 ODC 产品。下面是阿里云 OBCloud 实例里的 SQL 控制台。
下面是 OB 独立的 OBCloud 实例控制台里的 SQL 控制台界面。ODC 是 OB 周边产品里最贴近企业开发需求的最好用的产品。所以,开发人员对 OB 数据库的使用体验往往是最好的。
OBCloud 实例的性能监控和诊断服务
云产品由于不对用户开放运维接口,所以用户也省心。但是有问题发生的时候,用户也失去了从产品底层分析问题的可能行。OBCloud 实例也是如此,当使用出现问题的时候,用户不能查看 OBServer 或 OBProxy 日志。只能提工单去解决。不过 OBCloud 有专人 7x24 小时值班处理用户工单,所以这个问题也不大。平时接触最多的还是性能方面的。OBCloud 实例控制台提供集群、主机和租户层面的各种监控指标,这些指标跟线下 OCP 里的监控指标基本相同。OBCloud 控制台还特意丰富了自助诊断服务的能力,方便用户发现问题 SQL,分析 SQL 的执行计划等,并提供 SQL 快速限流、执行计划绑定。
这个用户体验要略好于线下 OCP。加上 OBCloud 控制台自身更新更方便,所以产品迭代也更快。
总结
以上只是 OBCloud 实例的几个功能点的简单介绍。OBCloud 控制台将 OB 产品跟云产品(ECS、SLB、VPC、OSS 等)完美结合,再加上数据迁移产品 OMS 和 数据开发产品 ODC 的配合,为用户提供一站式数据库交付使用平台,并且还提供自助诊断能力和在线技术支持。不过目前看这个产品还不支持一个 OB 集群跨云部署,所以还不算是多云部署。
目前客户利用 OB 多云部署的做法可以选择采购多个云厂商的 ECS,然后利用云厂商的 VPC 技术将多个云里 ECS 彼此网络打通,然后用户在 ECS 里部署 OAT,利用 OAT 部署 OCP、ODC、OMS,利用 OCP 部署 OB 和 OBProxy 等。
OB 之所以能有很多种部署的形态、架构玩法等,主要是 OB 软件架构的灵活性。具体就是多租户、多副本、弹性伸缩的能力。这一切都是在 OB 进程内部完成。OB 是一个单进程软件。这些是 OB 的核心能力,是不同于其他同类产品的地方。理解了这个就很容易理解 OBCloud 在阿里云、华为云或者 AWS 云上的形态和使用方法了。此外,在客户机房独立部署时,客户也可以通过 OCP、ODC、OMS 打造属于自己的 OB 云数据库,总体能力还是高于云上 OB的。OBCloud 使用不多,可能有理解不当的地方,欢迎留言交流指正。