随着近些年来,开源、自动化、云化的兴起,DBA职业也正悄然发生一些变化。经常有朋友咨询我,职业发展规划;特别是近期Oracle的大幅裁员之后,针对DBA这一职业未来该如何发展?本文是个人对此问题的一些看法,仅供各位参考!
数据是核心将DBA单词分解一下。其对应的
操作对象:数据
操作介质:库
操作角色:管理员
这里的核心是数据,也是DBA这一角色最大的价值所在。他们最了解数据、最懂得数据的价值;因此DBA后续可发展的一些方向,也基本是与数据有关。
此外,对于数据要有更加宏观的认识,无论是企业的自有数据,还是外部获得;无论是关系数据,还是其他模式数据;无论是保存在数据库中,还是其他诸如日志等介质中,数据对企业都非常有价值,要将数据作为一种"资产"来管理。只有上升到这样的高度,数据相关岗位的价值也就凸显出来。
阶段不同,侧重不同企业对数据应用水平不同,因而造成工作重心及岗位需求也有所不同。下面简单描述下各个层次:
层次一,是以数据库维护为主,常见表现是"救火队员"型。很多初创企业,都经历过这一过程。数据库维护基本靠人,随着运维体量的增加,需要线性增加人员。整体数据应用水平,基本处于简单、粗放型。
层次二,仍是以数据库维护为主,但已形成较为完善的运维体系。除了基础运维之外,甚至可以考虑一些预防性的措施,提高整体的运维效益。这一阶段的体系化建设,往往是通过文档、运维平台等沉淀下来。数据库作为基础设施层,已可提供较好的数据存储、计算能力输出。但此阶段尚未从更高角度去考虑数据问题,仍仅限于运维层面。
层次三,数据设计应用阶段,企业已不满足数据简单的"存取类"需求,而是从更高的应用角度,考虑如何提高整体数据应用水平。这个阶段会增加数据库架构、设计,加强业务端数据优化工作。表现为增加产品DBA的角色,加大数据库架构权重等。
层次四,数据架构治理阶段,企业不单从某个应用、某条业务线去考虑数据问题,而是公司整体层面做数据的顶层设计。考虑建立专门的机构(如数据委员会)或岗位-首席数据官(CDO)。近些年来,颇为火热的"数据中台",正是为迎合这一需求而产生的。
基础运维工作,繁琐枯燥作为基础类的运维工作,数据库的要求是比较高的。上图简单罗列了部分工作,对DBA日常繁琐工作可见一斑。正是基于这点,平台化、自动化、云化的诉求,不断被提出。进而间接对DBA的能力提出了更高的要求。
DBA职能,向上进化基于前面数据应用水平所谈到的,企业内部DBA也对应承担了几类职能。自下而上的是数据物理架构、逻辑架构和业务架构。公司内应用水平高低,也决定了DBA各类工作的比例侧重不同。随着公司数据应用水平的不断提高,DBA工作重心也应从下层逐步转向中上层。
数据物理架构,对应为"运维DBA",工作重心为基础架构的建设。
数据逻辑架构,对应为"产品DBA",工作重心为数据库架构、架构设计及SQL质量问题。
数据业务架构,对应为"数据架构师-DA",工作重心在于数据治理、管理类工作。
DBA面临冲击不断近些年来,DBA职位受到很大一些冲击,我摘其重要的几项说明下。
去IOE,阿里最早提出"去IOE"的叫法。它的提出,让人们第一次领悟到,企业的核心应用是可以不依赖于传统的国外大型商业数据库,进而提出了一种新的解决思路。
开源与商业,企业发展阶段不同,对于开源还是商业软件的使用存在类似上图的收益/成本曲线。当发展到一定阶段时,是必须要考虑引入开源。企业要从技术战略角度出发,考虑这一问题。
"四化",数据库基础运维工作,经历了从手工、脚本、工具、平台的发展阶段。其发展特点表现为"四化"(平台化、可视化、自动化、智能化)。这一发展方向也对DBA的技能要求产生了一些变化,特别是对研发的技能要求已成为必要条件。