怎么设计一个可能会靠谱的业务系统数据库(3 出差后的感想,业务优先)
近没有发表什么东西的原因是,出差了,本期的话题有点突兀,但实际上是2天内的感悟。主要的原因是公司中执掌整体架构设计的“领导”, 另谋高就了。
所以地球离开谁都能转的这个定律再一次被证实,实际上大多数公司重要人员的离开都会带走一些你“看不见,摸不着”,可未来会带来深远影响的东西。每个公司的某些领域的(技术型),都有自己对技术的理解和解释。
近也在招聘人员,看到一份份简历,就可以看到一个个公司在应用开发,系统设计,或者运维规划的技术的状态,可以确认的是数据库或者应用系统,都离不开业务,没有业务则没有需求,没有需求则没有后面的软件开发,没有软件开发就没有软件开发中使用的数据库。
数据库相关的技术人员,在大多数单位无法“闪耀”,除了可能经常被吐槽的那些原因外,我倒是更习惯来找找自身的原因。技术人员更贴近于技术本身,例如我掌握 POSTGRESQL 高可用的方式 REPMGR 或者 PATRONI,我掌握MYSQL中的多种高可用方式,并且掌握通过中间件怎么进行读写分离的设计,在或者我可以解决各种数据库中的问题或优化,并且在领会业务人员针对业务逻辑的讲述并理解后,告知某种数据库在使用时对于开发需要注意的“”坑“”,这当然可以让自己变得出众或者在从业者中成为shining point , 但实际上只要脱离了这个“界”,就没人在CARE 你的存在。
其实这就是业界中的两条路,要么成为技术大咖,不管业务,要么成为贴近某种业务的技术咖。
这就有一个问题,到底是业务驱动技术,还是技术驱动业务的思维方式,当技术人员大谈特谈,K8S DOCKER, 以及数据库DOCKER 化所带来的优势,而觉得自己十分“伟大”的时候,实际上这些技术在“高层”的眼里,什么都不是,而让他们想起技术人员的时候,大多是在出现问题对业务有影响的时候,才是你显身手的时候。所以一个垃圾系统,往往能创造“英雄”,在领导心中创造很多“丰功伟绩”。那换句话如果是一个设计良好的系统,不出问题,那估计99%的领导都认为你的存在是多余的。
换到数据库也是一样的问题,在业务确定后,业务逻辑条理清晰,业务的数据量,等等一切评估完毕后, 才是系统架构的设计,到底是使用哪种语言,到底使用哪种微服务架构设计,其中的业务的数据如何流转,如何调度,........ 等等这一切之后,才是数据库,而此时数据库就如无力的孩子,在架构师,或者开发人员的选择下,就定了终身。当然这还不是全部,如果你的开发人员知识水平不行,或者本身之前软件系统的架构设计的有问题,都会造成后数据库使用上的平庸,终的结果大多会以,数据库不好用,数据库没有优化,数据库垃圾等等这样的“认为”中度过。(当然这不是全部,我见过和听说过有更惨的)
到底数据库该怎么办,这里瞎想了几招(和当前的工作情况有关)
1 弄清楚业务,业务逻辑,业务流转,以及业务可能带来的数据量
2 弄清楚架构师的想法,以及他所设计的架构的一些“特点”
3 开发人员在开发系统中遇到的难点和问题,以及他们的知识水平
4 自身拥有的技术和扩展能力
这里就得问自己几个为什么的问题, 弄清业务逻辑在不少DB 的眼里属于鸡肋的事情,有的单位本身数据库人员在技术上还应付不过来本身层出不穷的问题,哪里有精力管业务什么问题。
实际上恰恰错了,一个DB 如果了解的业务的出身,可能就会从更的角度来思考,为什么系统要这样设计,架构师如此,终他们这样搞在使用的数据库的类型到底对不对,适合不适合,在这之后,才是数据库技术和上层应用架构与业务的契合。
假设一个公司业务比较复杂,年初的计划制定和本年度实际的情况,如过山车一样,大白话就是,年初的计划可能是一个......, 而应用系统的结构如何承担这样强烈的一会东来一会西的变化。要不就是一个公司本身的属性使然,业务千年不变,死气沉沉这都决定了一些架构设计中设计师本身的想法,以及对应到数据库终的选择和使用方式。
所以如同做包子一样, 你如果是后一道工序,蒸包子,光掌握了如何将包子蒸熟这是不够的,如果你能从猪的出身,到猪肉怎么被分割,再到面粉的出处以及面筋的含量,再到如何和面,和馅,到包的工艺,统统知晓后,你就知道你到底该怎么去蒸这屉包子。如何来拯救面没有发起来,或者馅料太水的问题。这也就要用到自己的技术知识来拯救前面没有做到位的,而在数据库层面可以补救的那些余地(当然一般的DB 人员那里管你这些),这才能突出DB 的存在性,所以了解业务到底重要不重要,一目了然。
从源头知道这个系统设计的是否合理,你在其中到底要起到什么作用,而不是傻乎乎的仅仅知道怎么优化SQL 怎么,怎么做什么高可用等等,怎么熟悉数据库中各种“独门秘籍”。因为在走出去后,你就知道没人Care 你的那些技巧,仅仅care 你的就是关键时刻,你要去做fireman的问题,剩下的时间没有人知道你的存在,也没有人care 你的感受。
所以如果想能在某些场合,当大老板问你一句业务系统如何的时候,你能将一些来龙去脉说的头头是道,那估计你距离闪耀的时刻就不会太远了,因为一个懂得业务的DB 并且是技术大咖的,那是凤毛菱角。
相关文章