大家好,我是猪猪,没错是猪头的猪。
之前原本计划来写写企业的数据架构系列文章,最近一直在忙公司的事情而中断。回顾上一篇文章企业级大数据中台架构实战【1】聊架构认知的三个高度,行业视野,技术视野,工作视野等。
那么今天来聊聊企业数据架构做之前需要的考虑的几个点,也可以说是具备的能力。
什么叫合适的架构
之前有遇到过这种情况,有些人在大厂经历了许多磨练,具备了一定的架构设计能力,但当他去一个小厂或者一个创业公司的时候,再根据大厂的业务来设计架构的时候,他其实不一定能够设计出一个适合于当前业务的架构。这是为什么,因为他没有场景折中能力,只能依葫芦画瓢,但是画出来的不一定是最优雅的
将场景折中能力进一步细化,就会得到“合适”架构设计思维模型。换句话说,在大厂我们可以用这样的分布式架构,但是去了小厂,则不一定要继续设计一个分布式架构或者数据架构,这时对于初创期的小厂,可能一个单体架构会是一个比较好的起点方向。
我们需要根据实际的业务场景来合理地设计系统架构,这个业务场景,包括了项目时间、团队研发能力、团队运维能力等。但是,最重要的还是要根据场景去折中或者平衡的这样的一种能力,其实也是一种重要的思维模型。
架构设计到什么程度,叫做合适,可能还是比较抽象,对它进一步拆解,就会得到适度超前架构设计思维模型。换句话说,我们设计的架构应该是能够满足一定时间内业务的发展的,那么多长的时间算适度?半年到一年的时间段比较符合适度超前的。
脱离业务场景,空谈架构绝对是耍流氓。异常牛逼的架构设计,如果无法在业务场景中落地实施,也只是空谈。因此架构需要服务于业务,针对不同的业务场景架构设计也会不同,架构设计不必追求高大上,简而美的架构,若能满足业务发展需求,便是好架构。
此外,好的架构不完全是设计出来的,随着业务量、请求量的增长,好的架构是演化而来的。架构师需要分析业务并具备较强的抽象能力,能够结合业务场景,设计合适的架构满足业务需要,做到架构设计既不保守,又不过度设计。
架构师需要具备专业知识、专业能力、通用能力等三个维度能力。专业知识是基础所在,包含数据结构算法知识、业务知识等,专业能力包括系统架构能力、业务架构能力、开发能力等,通用能力属于软技能的范畴,包括沟通能力、学习能力、解决问题能力、创新能力以及项目管理能力等。除此之外,架构师需要对负责的系统了如指掌,线上出现问题能够快速分析定位解决,清楚系统潜在的问题并能提出优雅的解决方案。
# 业务场景的抽象
刘润老师的《商业洞察力》时,了解到洞察力这个概念,其实它就对应了这个需求抽象分析的过程。所谓洞察力,就是透过表象,看清“系统”这个黑盒子里,要素以及它们之间连接关系的能力。
比如,我们看一座桥,人们看见的是车可以在桥上跑,但是这个桥由哪些关键要素连接,关键要素的连接关系是什么样?普通的人观察一个团队,有洞察力的人洞察团队里责、权、利的错综复杂的“连接关系”。刘润说,任何系统都可以进一步拆解为多个要素,以及要素之间的连接方式,即系统=要素 x 连接关系。
其实架构上也是这样,往往我们会接到很多业务需求,我们需要辨别出这个业务需求的背后本质需求是什么。用户提出来的需求往往是表面现象,如果我们挖不出来本质内容,架构设计上很容易打折扣,甚至失败。像我们经常通过5w2h来和用户沟通,和产品沟通,就是为了探究本质需求。
有句关于产品需求挖掘的名言「用户不需要1/4 英寸的钻头,他需要的是1/4 英寸的洞」「用户需要的也不是1/4 英寸的洞,而是在墙上挂一幅画」「用户不是需要画,他需要房间的格调」等等。这些听起来像是抬杠的演绎,其实就是不断探索和挖掘真正需求的过程。
数据架构设计方式
当企业业务不断的增长的过程中,数据量也会不断的增长,那么数据对业务,对公司战略的价值有多大,是公司老板们所期待的。那么对应的数据架构平台该如何搭建,有哪些方法思路,有什么标准吗,通过什么工具来分析数据和展示数据,这些是架构师该思考的,总结出来的有两种思路。
一种基于需求而建设。以数据价值 为导向,面向公司业务场景建立大数据平台。来一个需求做一个需求,不考虑平台通用型的问题,也不考虑和其他平台,应用的对接;整体追求需求时间短,成型快,效果很明显。这种带来的问题就是可能会做重复性建设,长远来看开发的效率不高;仅限于固定的业务场景,对整个数据平台的系统缺乏统筹。
一种基于通用组件的建设方式。通用的含义就是将大数据平台中通用的功能抽离出来,这些功能和业务没有直接的关系。不管什么需求,业务场景都会用的到。比如,数据采集,数据处理,数据计算,数据展示统一组件,为更长远的业务发展,更多的需求做准备。
这种通用功能的大数据平台,可以针对不同的业务场景;不会重复的造轮子,把技术功能和数据需求进行解耦;对于架构的整体统筹,更长远的考虑会比较多。但是对业务理解的成本高,需要具备业务抽象的能力。
以上两种方式各有利弊,如果业务刚开始起步的时候,可以考虑用第一种方式,边做边摸索,边总结边重构,最终过度到第二种方式。如果企业在大数据平台技术和业务上都有积累,则可以考虑更高的视角,用第二种方式。
总结
实际上做任何事情都要有目标,然后根据这个目标根据自身的条件和外部的情况制定一个思路,这个思路也可以理解为实现目标的路径。但是我们必须具备业务抽象能力,架构设计到什么程度才算合适。