说这个话题的原因是在微信群有同学提到了,数据库上云后DBA会 less 化,说这个话是有一定的理由的。首先上云后,会遇到以下几个问题。
1 数据库的操作模式的改变,部分DBA之前负责和工作模式被剥夺了,如高可用的搭建,数据库补丁工作,数据库底层问题的解决,以及源代码问题的探查,甚至在某些云,慢查询的语句的发现方式也被改变,和上面的某位群友提到的,大量传统工作的角色不在需要。
2 巨头垄断,云上的数据库很多技术的源代码不在被暴露,相关的文章和介绍也变得越来越少,高精尖的技术成为一个你可以知道,但不可以深入的部分,有些同学的无力感也从此而来。
3 应用范围的问题也是一个突出的部分,如我使用阿里云,你使用腾讯云,他使用华为云,等每个云的技术都有不同,通用性有,但不大,如POLARDB 我无法使用到腾讯云,TDSQL的知识我无法应用到华为云。通用性和知识的范围和复用性低也是大家所不好接受的部分。
我不知道我所举例的部分是否全面,如有不全面的地方,大家可以在群里面补充。
那么我们还有发展吗? 当然改变,不是毁灭,学会发现,乐观看问题。
我们先总结一下 DBA 的工作具体是在做什么
1 维护各种数据库的运行维护,补丁,与问题解决和SQL 的部署
首先从我自己的实际工作经验,就在最近我们需要对POSTGRESQL 的云环境的数据库进行升级,而升级难道仅仅是按照网上的文章,对数据库升级那么简单吗,或者通过云厂商的一键升级就可以解决问题了。Too young to simple
我来列一列我的工作
1 对于目前要升级的PG的数据库进行问题分析,到底我们为什么要升级,升级的影响是什么,我们需要升级到那个版本,或者云提供升级到那个版本。
2 在升级中对于现有系统的影响,我需要针对从13.1 到 13.8 的版本中的BUG FIX 的内容进行过滤,分析,判断,以及进行报告提交
3 升级也不能直接在生产系统中升级,需要在实体机的测试系统,云的预生产环境,以及大批的实际的生产环境进行升级。升级中也要持续观察应用系统的反馈和问题的解决。
所以我想问一个问题,以上的这些事情,是云厂商可以给我们的企业能做的吗,即使中国最强的云厂商也不能做这些事情,所以DBA 的工作不会减少。减少的只是一些低级的操作部分,添加了更多的分析和细节的工作。
所以这方面的工作,是从粗放型的工作模式,到了更细致的服务和分析中来,可以理解为,DBA 在这方面的工作服务升级了。2 语句的运行的稳定性和问题的持续发现
实际上这部分的工作,虽然在云上有了一定的解决方案,甚至有了一些称之为智能化,AI技术的支持,但是这部分的工作,对于云厂商来说,他们只能做到外网的工作,或者还是一个浅尝的状态
1 他们不知道你的业务特性,你的开发人员的特性和水平
2 他们不知道这些SQL 是否有重写的可能,同时即使知道,他们也不知道该怎么重写,业务逻辑是怎样的
3 目前就是最先进的云厂商的在语句的优化方面,基于很多的问题,只能给出一些似是而非的建议,有些可以实现,有些只是饮鸩止渴,或者让问题变得更糟糕。所以语句的优化,是DBA 保留,并且需要进行深耕的一块工作,尤其针对 PG SQL SERVER 等数据库产品
3 方案
这是我这篇文字的重点,也是我最想表达的。
目前云厂商和使用企业,之间是没有桥梁的,或者之间的信任感低,同时对于云数据库产品的特性,以及适应在这个企业的用法,双方都是瞎子。
对这描述是没有问题的,瞎子。 我还是以一个具体的例子来说明问题
在我来目前的企业之前,是知道阿里云的POLARDB 的,而这个企业本身一直在使用MYSQL 的RDS 类的数据库产品。在整体的改造中,我提出POALRDB FOR MYSQL 的一些优点,而在我们深入研究后,针对POALRDB 在这个企业的使用算是打开了大门,最终大几十套的POLARDB FOR MYSQL被用到核心不能在核心的地方,并且还在持续的发展。
随着我们对POALRDB 的使用的加深,列混模式,X-ENGINE 引擎归档的混合模式的POALRDB FOR MSYQL 一体化服务方案,基本上在成型的路上,POALRDB FOR MYSQL 的特性,使用特点,适合的业务特性,以及问题,和使用的中的细节,都在逐步的掌握,和形成一套*的理论,成为云厂商和企业 使用云数据库的桥梁,如同翻译,将两个国度的互相不懂的状态,变成能放心的使用云厂商并逐步知晓POALRDB 对比MYSQL RDS 的优点逐步在开发圈逐步散播的状态。
所以DBA 成为有了一个新的工作,一个方案的学习和探索者,如果用一个不切合的比喻,DBA 是云数据库的 带货者, DBA 一句话可以灭了一个云数据库在企业的使用,也可以让一个数据库的优点散播,扩展,甚至对云厂商的数据库部分进行反馈,并持续发展的一个 位置。
甚至你掌握了这个方案后,更多要上云的企业眼中你更是一个香饽饽,因为那堆实体DBA 如果要有你现在的见识,那又是多年后的事情,另外你还掌握了云数据库使用成本控制的本领,到此为止,你还觉得你是一个被时代抛弃的DBA 吗?
更多的数据库产品,更多的特性,更多的方案,应该塞满你的脑子里面,不是吗