开篇
随着近些年来,开源、自动化、云化的兴起,DBA职业也正悄然发生一些变化。经常有朋友咨询我,职业发展规划;特别是近期Oracle的大幅裁员之后,针对DBA这一职业未来该如何发展?本文是个人对此问题的一些看法,仅供各位参考!
将DBA单词分解一下。其对应的
-
操作对象:数据
-
操作介质:库
- 操作角色:管理员
这里的核心是数据,也是DBA这一角色***的价值所在。他们最了解数据、最懂得数据的价值;因此DBA后续可发展的一些方向,也基本是与数据有关。
此外,对于数据要有更加宏观的认识,无论是企业的自有数据,还是外部获得;无论是关系数据,还是其他模式数据;无论是保存在数据库中,还是其他诸如日志等介质中,数据对企业都非常有价值,要将数据作为一种"资产"来管理。只有上升到这样的高度,数据相关岗位的价值也就凸显出来。
企业对数据应用水平不同,因而造成工作重心及岗位需求也有所不同。下面简单描述下各个层次:
-
层次一,是以数据库维护为主,常见表现是"救火队员"型。很多初创企业,都经历过这一过程。数据库维护基本靠人,随着运维体量的增加,需要线性增加人员。整体数据应用水平,基本处于简单、粗放型。
-
层次二,仍是以数据库维护为主,但已形成较为完善的运维体系。除了基础运维之外,甚至可以考虑一些预防性的措施,提高整体的运维效益。这一阶段的体系化建设,往往是通过文档、运维平台等沉淀下来。数据库作为基础设施层,已可提供较好的数据存储、计算能力输出。但此阶段尚未从更高角度去考虑数据问题,仍仅限于运维层面。
-
层次三,数据设计应用阶段,企业已不满足数据简单的"存取类"需求,而是从更高的应用角度,考虑如何提高整体数据应用水平。这个阶段会增加数据库架构、设计,加强业务端数据优化工作。表现为增加产品DBA的角色,加大数据库架构权重等。
-
层次四,数据架构治理阶段,企业不单从某个应用、某条业务线去考虑数据问题,而是公司整体层面做数据的顶层设计。考虑建立专门的机构(如数据委员会)或岗位-***数据官(CDO)。近些年来,颇为火热的"数据中台",正是为迎合这一需求而产生的。
作为基础类的运维工作,数据库的要求是比较高的。上图简单罗列了部分工作,对DBA日常繁琐工作可见一斑。正是基于这点,平台化、自动化、云化的诉求,不断被提出。进而间接对DBA的能力提出了更高的要求。
基于前面数据应用水平所谈到的,企业内部DBA也对应承担了几类职能。自下而上的是数据物理架构、逻辑架构和业务架构。公司内应用水平高低,也决定了DBA各类工作的比例侧重不同。随着公司数据应用水平的不断提高,DBA工作重心也应从下层逐步转向中上层。
-
数据物理架构,对应为"运维DBA",工作重心为基础架构的建设。
-
数据逻辑架构,对应为"产品DBA",工作重心为数据库架构、架构设计及SQL质量问题。
-
数据业务架构,对应为"数据架构师-DA",工作重心在于数据治理、管理类工作。
近些年来,DBA职位受到很大一些冲击,我摘其重要的几项说明下。
-
去IOE,阿里最早提出"去IOE"的叫法。它的提出,让人们***次领悟到,企业的核心应用是可以不依赖于传统的国外大型商业数据库,进而提出了一种新的解决思路。
-
开源与商业,企业发展阶段不同,对于开源还是商业软件的使用存在类似上图的收益/成本曲线。当发展到一定阶段时,是必须要考虑引入开源。企业要从技术战略角度出发,考虑这一问题。
-
"四化",数据库基础运维工作,经历了从手工、脚本、工具、平台的发展阶段。其发展特点表现为"四化"(平台化、可视化、自动化、智能化)。这一发展方向也对DBA的技能要求产生了一些变化,特别是对研发的技能要求已成为必要条件。
-
云,是未来的发展方向。从全球范围来看,云生态的数据库占比在8%,未来预计在3~5年内,会提升到20%~30%。这无疑是巨大的飞跃。对于DBA而言,云环境下的数据库工作有别于传统环境,需要从多方面去适应,工作重心也要有所调整。
DBA职业发展,向上面临的***个选择就是发展方向,是走管理路线还是技术路线。上图给大家描述了两种不同方向的区别,个人可根据自己特质,对号入座。这里要避免一个误区,就是"以管理为上",这其实就是官本位思想的体现。不是每个人都适合管理路线,放在不恰当的位置上,对人的发展是一种摧残。
在明确了发展路线之后,就需要对自身的发展阶段有所判断。无论是技术还是管理,都存在这样一个进化理论,即越走向高级阶段,其淘汰率越高。要客观、理性地认识到自己所处的阶段。从上述比例也可以看出,能走到高阶职位的毕竟是少数。虽然可以通过一些方式(后面会谈到)做突破,但是仍然有较大概率无法取得既定目标。此时,要勇于承认这一点,调整自己的职业定位,谋求新的发展方向。
取得职业发展突破,有两个小的建议。
-
高度与广度。在职业发展初期,需要有个快速成长的"原始积累期"。这里谈到的原始积累,不是财富,而是技术技能。要在某专一领域,尽量达到自己的技术高点。会存在某个点,你已经无法突破达到更高的高度时,要谨慎分析原因。如确实非主观原因,那么要坦然接受它。剩下来的技术发展,可考虑横向发展,即将自己打造成"T字型"人才。上面谈到的高点很重要,它会决定你的技术"视野"。
-
全局思维。即不要仅仅从技术角度考虑问题,特别是达到一定高度之后,可更多地尝试从业务角度、人的角度考虑之前面临的问题,也许你就会有新的发现。全局思维,会有助于你发现原有发展阶段的瓶颈点,实现突破。
前面讲了很多,那么DBA职业发展可考虑哪些方向呢?下面试图给出一些可能的选择。以下仅仅是本人根据自己所熟悉的领域给出的选择,不代表全部。
选择:数据库技术、数据库业务
-
数据库技术。这是一个比较容易的选择,即在某数据库领域里不断精进自己,以达到一个更高的目标。职业定位是***DBA、DBA专家等。如果考虑这个发展方向,建议考虑乙方或云厂商,因为他们对技术本身要求更高。甲方角色,受限于自身环境,一般很难有需要不断突破的技术氛围。
-
数据库业务。将数据库技术与公司业务相结合,突出在某业务领域的数据能力。这是需要在某行业打磨多年,充分了解其业务特点,不断抽象出其数据要求。这一方向可考虑行业的头部公司或者是专为某行业服务的ISV。
选择:内核研发、数据库架构
-
数据库内核研发,是相对"小众"的一类人才需求,一般只有大型企业/云厂商或数据库厂商会考虑设置。其专业性较强,人员素质要求也较高。建议选择高起点的一些企业,对个人长期职业发展有利。
-
数据库架构师,这是一个相对综合类的职位。"架构"的含义比较模糊,各企业对架构师角色的定位也各不相同。一般能考虑设置数据库架构师角色的企业,都是有一定规模,企业内数据应用比较复杂的情况。下面根据我所在公司的实际场景,尝试给出一个数据库架构师的技能图谱,供各位参考。
一家之言:数据库架构师技能图谱
上图罗列对数据库架构师本身要求的十二项基本能力要求,各项能力的要求不同,我通过左侧的饼图比例大小予以说明。当然能符合全部要求的人,少之又少。公司可根据侧重,有所取舍。上述技能要求,可大致分为四类:
-
数据自身技能,如数据库、大数据、数据治理、数仓等
-
关联领域技能,如基础设施、云、容器等 - 研发方向技能,如DevOps等
-
综合技能类,如业务思维、软技能(如沟通技巧)
选择:数据架构、数据产品
-
数据架构,不同于"数据库架构"。数据架构,更强调于顶层设计,需要对数据有全局的思维,帮助企业做好整体数据规划设计工作。它不在拘泥于某种技术,而是着眼于数据整合、安全、共享、价值、资产等问题。
-
数据产品,也是一种综合类职位。需要对技术本身有一定深入的了解,但更强调其技术广度。此外需要有产品化思维,能将业务需求,转换为产品功能设计。
选择:解决方案架构、数据库布道者
-
解决方案架构,往往是从"售前架构"、"技术顾问"等角色体现出来。其核心要点是具备一定技术能力的同时,还要有甲方思维,能够了解用户痛点,能从技术角度帮助客户解决现有问题。这里不光是销售自己的产品,更重要的是给客户带来价值。
-
数据库布道者,少数的选择,只针对有一定技术影响力的人员才可以考虑。是一种偏向于自由职业者的选择。
选择:数据治理、数据仓库
-
数据治理,是一项比较"浩大"的工程。随着企业对数据的重视程度越来越高,这一岗位也愈发重要起来。其强调几个关键过程域的活动,提升企业整体数据应用水平。右图中给出的DAMA的过程域图例,供大家参考。
-
数据仓库,是一个处于转型中的职位,传统的数仓做法,目前已不适应现代企业要求。但其核心的数据建模理论,还是具有指导意义的。因此各大互联网公司,均有自己颇有特色的数仓实践。可以考虑大厂或行业头部客户作为选择。
选择:大数据、运维开发
-
大数据,作为大"DBA"的范畴,大数据领域某种意义上将也是一种数据库。当然它有其自身的特殊性,表现为技术分散、变化快、没有统一标准、对研发能力有一定要求等。
-
DevOps,运维开发。适合有一定研发基础的DBA选择。
选择:项目管理、技术管理
-
项目管理,DBA是一个比较综合类的职位,在沟通、协调、组织方面,与项目管理有相似在之处。因此,可以考虑转型做项目管理类职位。
-
技术管理,DBA职位的涉及的技术领域较广,如稍加留意是可以涉猎很多关联领域。这与技术管理类对技能诉求,有一定相似。再加上其对软技能的要求,是可以考虑将技术管理作为发展方向。在圈子中也发现不过高级管理人员,都是DBA出身,不无一定道理。
面对一个充满不确定性的未来,唯一能确定的就是变化。让我们拥抱变化,努力改变今天的自己!
【本文是51CTO专栏机构宜信技术学院的原创文章,微信公众号“宜信技术学院( id: CE_TECH)”】