一、中台是一种企业架构
1.TOGAF企业架构标准
TOGAF是一套企业架构标准。企业架构是指整个公司或企业的软件和其他技术的整体观点和方法。企业架构又细分为业务架构、应用架构、数据架构、技术架构几个方向。
其中业务架构的定义是“定义业务战略和组织,关键业务流程及治理和标准”。因为数据中台其实就是组织为了更好的让数据服务业务而构建的一种企业架构,这个架构自然也会包括业务架构和其中的组织架构。定义组织架构要有明确的业务战略,中台就是目前最具有前瞻性的企业IT战略。著名管理大师钱德勒总结过一个黄金定律:战略决定组织,而组织决定成败。
2.架构愿景与驱动因素
个人以为数据中台架构的愿景是“加速数据驱动业务”。
●业务需求驱动
在这个大数据爆发的时代,业务部门已经不满足于现有数据对业务的支撑的能力,希望从数据侧获得更多、更大的驱动力。
●组织规模驱动
当一个组织足够大,部门分化,组织内部的各种系统林立,就会遇到同一数据多源存储使用、数据获取不便、口径难以统一的问题。
因为业务系统在设计之初就是为了满足某个业务域的功能需求,缺乏对管理决策支持的设计,所以,缺乏统一的数据平台的组织很难获得全局一致的数据为管理决策做支撑,从组织内部不同部门获取的数据总是缺乏可信、相互冲突。
当组织规模足够大,就需要组件一个统一的数据平台来构建组织内部统一的业务数据视图,进而驱动数据为综合业务管理决策服务的能力。
●经济效益驱动
我们会为每一个小的团队都配置财务、人事这些职能角色么?数据决策和分析是每个业务系统建设到一定阶段都要做的功能,要不要从其他业务系统获取数据,要不要构建自己的数据集市,这些都是重复的职能。部门自己竖烟囱,不仅仅是组织内部数据不统一的问题,还带来了资源的大量浪费。
这种情况,会导致各个小团队因为人员没有专业分工,开发人员既要做业务系统功能开发,又要做数据开发,导致团队的专业度和能力受到限制。还会因为各个小团队之间业务割裂,无法达到相应规模应有的规模效应。
二、构建统一数据平台
1.不同阶段的功能需求
计算机系统的出现最基本的诉求是替代或者协助人类进行的重复性的工作,包括计算、记录、控制等。我们从数据库角度来看,这些需求都是操作型的,传统的关系型数据库就是为了解决这类需求而构建的。
系统一旦运行起来,就会进入下一个阶段,改进。系统功能的改进需要对业务过程数据进行分析,并通过分析结果进行系统功能改进。
另外一方面,系统都是需要人去参与和管理的。大型组织和企业都是由多个不同业务功能的系统组成的复杂系统。如何经营与运转这些系统、管理相关的负责部门、人员,通过经营分析与绩效考核做出管理决策和调整组织的发展,这些复杂的系统,需要对数据进行分析。
上面提到的这些阶段分别是:生产系统替代人力、系统改进、经营管理系统构建、管理改进。可以看到越是高阶,对数据分析的需求就越高。
2.数据仓库与数据集市
关于数据仓库,数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
数据仓库是一个过程而不是一个项目;数据仓库是一个环境,而不是一件产品。数据仓库提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问,的各种技术和模块的总称。所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。
最开始的分析与决策需求是直接构建在业务系统上的。刚毕业的时候,我在公司做呼叫中心业务的日常管理与分析报表,都是直接在业务系统的数据库上完成的。
这里会遇到一些颇具挑战的问题。首当其冲的是性能问题,人对系统返回数据的极限忍耐大概只有3-5秒,但是关系型数据库设计之初并不是决策分析服务的,所以,很多时候只有部分报表能满足这个需求,很多计算数据量大的统计报表响应时间并不好,偶尔还会遇到查询失败的情况。其次是对源系统影响的问题,因为直接在源系统上运行,报表的访问需求是一次访问很多行,如果长时间不能返回运行结果,可能会造成锁阻塞交易业务失败。最后是历史状态难以统计的问题,如果业务系统没有对每次操作保留历史,一旦过了相应的统计时点,历史的状态就难以回溯,报表中常见的环比等需求是难以实现的。
所以,业务系统中的分析型需求一旦变多,就不得不做出抉择:要不要把分析型需求放在另外一个数据库实现。最简单的实现方式就是通过数据库同步工具把数据分析在备库实现,常规的数据库厂商都提供实时备库的方案,还有很多中间件产品也可以做到。但是很快结构的问题就会凸现,业务系统的数据模型是为了交易系统的模式(OLTP)设计的,在分析型(OLAP)场景上会表现出严重的性能瓶颈。要不要为分析型需求单独创建数据模型?这样就出现了数据集市的雏形。
当一个组织的IT系统非常多,部门级的数据集市就可能会需要多个业务系统的数据。10年左右我所在的公司是做银行对私CRM的,对私相关的存款、贷款、理财、基金、信用卡等系统都是不同的系统。在没有统一的数据平台(数据仓库)的银行,这些数据都是需要我们去各个系统去拿,有的话就直接从数据平台拿就可以了。
如果不去构建数仓的公共模型、直接使用从业务系统的数据,也就是使用数据仓库贴源层数据,会产生很多独立的数据集市。这些独立数据集市会各自获取自己需要的数据加工,如果各个集市拿到的数据有交叉,在最终的计算结果上就会出现大家出的数据项的名字一样,但是数值不同的情况。因为缺乏统一,这个问题很难解决。如果管理方能接受稍微有些差异的统计数据,这个问题倒是也过得去。
但是如果有统一的数据仓库平台,这个问题就会迎刃而解。多个集市的公共数据统一计算、协调一致,构建一个公共数据层。这样组织(企业)的数据在数据仓库环境就可以拥有一份唯一可信的版本,所有的数据都集中到了数据仓库环境,并基于共同的数据做分析。
在数据仓库环境,可以支撑组织(企业)做面向企业经营管理的各种场景的数据分析、决策支持。
3.构建数据管理组织
如果只是在业务系统的数据库上直接做数据分析,很多时候我们只是要业务系统的研发人员兼职(未进行专业职业分工,开发质量与效率难以保证)把自己设计的表结构的数据分析统计做了。所以,在这种情况下并没有所谓的数据管理组织。但是如果从业务系统中剥离出来,构建了数据集市或者数据仓库,数据管理组织就会从业务系统的IT组织中剥离出来。
站在组织(企业)管理的统一视角,我们并不建议构建独立数据集市的IT架构,还是推荐构建基于数据仓库的IT架构和相应的管理组织。
从统一的视角出发,我们会把数据仓库(包括数据集成、数据公共层、数据集市),基于数据仓库的数据分析应用统一放到一个大的决策支持部门(团队)。这个团队要解决的问题就是数据分析,这个领域传统的叫法有“商业智能分析(Business Intelligence,简称:BI)”、“决策支持”。
在这个组织中会分化为两类大的工作分工,平台和应用。平台就是着眼于数据集成、公共层构建、数据管理、数据服务,用来支撑应用集市的各种能力。应用就是原来从业务系统中剥离出来的系统分析与改进、业务管理的分析与改进,这些数据分析的能力。整个团队的目标都是服务业务部门的数据分析,从层次上来说一前一后,从角色上来说一主一“辅”,共同完成业务的数据分析需求。
所以,从职能上可以把数据平台的组织分为三大块:平台管理团队、基础平台团队、数据应用团队。
平台管理团队负责整体平台的架构管理职能、数据治理职能,管理数据平台与数据应用团队进行日常数据研发与维护工作。平台管理团队的下辖的需求管理组负责整个平台的业务需求的统一管控,确保数据平台组织和数据应用组织对业务需求的理解是一致的、工作的分解是认可的。平台管理团队下辖的架构管理组负责制定和维护整个平台的集成架构、分层架构、服务架构。平台管理团队下辖的数据治理组负责制定面向质量、安全的管理要求和标准规范,监督整个数据平台组织的治理能力的落地执行。平台管理团队下辖的运行维护组织负责对整个组织内部使用的各项资源管理,软件与数据库日常运维。
基础平台团队是支撑数据应用团队的共性数据需求。数据应用组一般按照业务部门构建,会根据部门需求构建部门级的数据集市或者应用级的数据集市。基础平台团队所做的数据模型的建设工作,是面向数据应用中的公共的部分,例如原始数据的集成,明细粒度数据模型的设计,汇总粒度的数据模型设计。大体的划分原则是基础的集成和明细粒度数据,只要有一个应用使用,这个基础能力就要补充在基础平台组织的明细层模型。而汇总粒度的数据模型设计则需要2个以上的应用的共性需求,才会构建到基础平台汇总层模型。
数据应用团队的人员管理权限在数据平台,但是服务的对象是实际的业务部门。业务部门就是数据应用组的甲方,而数据应用组则是业务需求的承建乙方。组织架构如下:
4.构建数据管理流程
数据管理流程是指数据平台组织内部从需求到研发交付中各个组织、人员之间的协作流程。
●研发管理流程
上图是一个数据平台数据研发管理流程,从业务需求到数据开发都有哪些团队的什么角色的人员参与,不同的团队角色负责哪些模块。
1.业务部门提出需求。业务部门有专门与数据平台对接的角色,这个角色是业务部门中的IT人员,他们负责接收业务侧的业务需求转化为IT侧的需求。
2.平台管理团队的需求管理组会接受业务需求,并组织基础平台团队与数据应用团队来对业务需求进行评审和分解。这个过程会确定哪些需求可以在基础平台部门实现,要实现这些需求基础平台团队和数据应用团队都应该做哪些工作。这里的主要拆分原则就是公共、共享需求在基础平台团队实现和个性在数据应用团队实现。因为有的时候会做一些提前的设计,所以,这个公共的尺度主要由基础平台团队把握,由架构组和治理组定期参与评审。
3.进入设计与研发阶段,两个团队会通力配合,分别研发自己负责的部分,联合开发、测试、发布,并按照研发计划确保正常上线。
4.因为基础平台的公共层累积到一定程度,就可以覆盖大部分的基础数据需求。所以,基础平台团队在需求评审过程结束后可能并没有实际要开发的工作,只需要做好当前公共层数据数据使用的业务支持、答疑解惑。
●架构管理流程
架构管理主要管理两个方面,第一技术架构,第二业务流程架构。其中技术架构包括数据集成架构、研发分层架构。
数据集成架构确定了业务系统与数据平台之间的数据集成工具与方案,离线集成采用什么方案、实时集成采用什么方案,在什么系统和场景下使用什么方案。集成架构在两种情况下会有更新,第一新的系统集成需求,第二原有的集成方案不满足业务需求。
在需求评审阶段,如果遇到上面两个问题,可以邀请架构组进入到需求阶段评估,把架构问题验证通过并形成方案后,再进入开发阶段。
数据分层架构主要的目的是把数据研发工作分为贴源层、公共层、应用层这几个大的层次,原则上应用层只能从公共层获取数据、公共层的贴源层数据可以覆盖应用层的数据范围,公共层的汇总层可以覆盖多个应用层的共性加工需求。分层架构在平台创建初期制定,后期也不需要调整。架构管理组主要的作用是在开发阶段、运维阶段调研发现有违反分层架构原则的问题,并提出相应的整改要求。架构组的管理流程主要是发现问题,并发起整改的需求流程。
●数据治理流程
数据质量主要分为集成质量、数据加工质量、线上服务质量三部分。管理流程主要是确保质量工作做到位、及时发现质量问题,并跟进问题的解决。
质量工作检查点流程要在研发工作中嵌入,开发脚本后是否有做单元测试,测试的报表是否有主管的review确认。应用上线前有没有做应用的功能测试、数据验证测试,是否有主管的review确认。重要的业务,是否做了线上质量问题监测的任务。这些检查点,要能在日常工作中体现,并可以给质量团队按期审核。
数据质量问题发现。通过源端数据质量监测、线上数据质量问题监测,及时发现问题。并通过治理流程,把问题派发到相应的责任组织进行改进。
数据安全主要解决日常工作使用数据的安全流程。主要分为数据研发过程中的安全检查点及数据权限申请与审批流程。
数据安全检查点要在研发工作中嵌入。依据最小可用原则,在研发阶段申请到的安全级别高的数据权限,在进入上线后固定时间区间会被自动释放。每一类数据表和数据项,原始的数据安全分级在加工后要进行重新评定。
数据权限申请与审批流程,确定了组织内哪些组织是数据的生产方和拥有者,拥有者最终审批决定数据内容的访问权限。审批流程要能体现出相关的业务需求和功能需求确实需要相应的数据进行开发、业务分析等场景,并能体现实际操作人员和其主管的审批责任。还有是否设定专业的评审角色对相应流程进行管理,数据分类分级的审批结果是否在组织内部定期回顾等。
●运维管理流程
运维管理是研发管理的延伸,数据研发的意义不是研发过程而是数据本身,数据平台提供了数据的服务,保障服务的质量也是数据质量的一个方面。
运维管理流程从平台基础技术组件、平台批量任务运行、平台提供的数据服务能力几个方面对平台进行运维保障。平台运维管理流程主要的目的是在发现问题后,保障整个组织能快速的对对问题做出决策,找到第一责任人和问题兜底处理团队,确保问题快速修复。并能在事后,对问题发生的原因进行分析改进与问题追责。
资源管理流程从整个平台资源规划与利用的角度,对新创建的数据应用、原有数据应用对数据平台的资源使用进行合理的扩容、缩容。在平台管理团队发现对资源使用不利的问题后(例如存储资源、计算性能),引入架构团队与研发团队,共同对问题进行解决。也可以由应用侧发起流程,引入运维与架构团队,协助问题处理。
三、加速数据服务业务
1.数据中台还是后台
“数据中台还是数据后台“,这是一个涉及到本质的话题。从组织整体架构来看,IT部门就是一个后台支持部门,业务部门才是前台部门。从IT架构来看,业务和生产系统才是一线人员的核心支撑,数据分析更多的是从事后分析和事中研判的角度出现,仍然是一个偏后台的角色。
从管理和经营的角度来看,这部分工作主要依托数据分析的结果进行辅助决策,所以对数据分析的依赖更高。即便是某个生产过程中的最细小的环节,在进行数据分析后都可能获得巨大的业务改进价值。但是困难的是如何能从数据中发掘出能改进业务、辅助决策的数据价值。
在传统的数据仓库环境,数据部门一直被当作一个后台部门。常规的业务模式就是被动响应的模式,对业务部门的响应与业务需求之间的关系是迟滞的。之前参与过的一个项目,一线人员提的需求,排计划都排到了1年以后。后台部门能获取到的资源都是局促的,数据服务业务的能力也是局促的。
所以,回过头来看数据中台,我们是否转变思维,核心还是要把数据部门放到更重要的位置,加大对数据部门的投资。让数据部门对业务的支撑能力和规模更大,相比之前更加前置。让数据部门从一个纯成本部门的位置变成真正的价值部门的位置。
值得关注的是,在近些年大数据风起云涌带来的巨大的技术变革中,阿里提出的中台战略依托这种变革看到了数据服务业务的更大的潜力,并兴起了数据中台建设的大潮。
2.加速数据服务业务
数据中台最核心的诉求,还是希望加速利用数据服务业务。因为“数据服务业务”这个口号可能几十年前就有了,所以相比之前数据中台要做的就是让这个过程的速度更快,“加速数据服务业务”。
如何加速呢?大数据技术给我们带来了更多技术的可能,让数据服务业务的能力和范围更加扩展。但是并不能解决速度问题,如果组织规模和能力不变,反而可能因为事情变多、技术变复杂,变得更慢。所以,构建中台化的组织是非常重要的。从技术上补充大数据与算法分析的人员能力,从组织上对数据团队进行分化扩充,让数据对业务支撑从以前的力不从心变成绰绰有余才可以做到真正的加速。
对数据中台的投资近些年变的越来越大,越来越多的组织尝试对自己的数据团队做出变革,引入相关的技术与项目。但是我们是否从本质上对组织结构和模式做出改变呢?我们是否创建出了更加敏捷的数据业务化、业务数据化的通路,来适应这个大变革的时代?
对数据部门来说,我们要怎么做调整工作方法和思维,才能加速数据服务业务?数据中台的核心思想其实已经告诉我们,就是“服务化”。只有我们把数据变成各种触手可得的服务,才能真正做到加速。
服务化(数据即服务、信息即服务、分析即服务)需要我们把业务人员需要的不同层次的数据、信息、分析都变成服务,用服务化的思想,服务化的流程去支撑业务。从之前的被动响应变成主动推送,从业务人员自己去发现问题提出改进需求,变成与一起为业务人员发掘需求,变成业务人员的左右手。
为此,我们需要面向更好的服务业务去建设服务化的能力与应用,构建面向服务的组织。只有这样才能真正实现数据中台的业务目标。
3.构建服务化的组织
服务化的组织的创建要以服务为目标构建,要创造一个数据部门的“客户服务团队”,这个团队能快速响应业务部门对数据部门的服务需求,并在组织内部分解需求,对需求做出快速的响应。所以,在组织架构的设计上,我把数据管理组重新定义为数据服务组,并在这个组织下新增数据服务运营(资产运营)组。
服务化的起点一定是组织的管理层以服务化为目标去构建组织,所以要在管理组织内分化出数据服务管理职能。数据服务团队除了之前对数据平台和数据应用组织有协调和指导的作用,组内需求管理、架构管理、数据治理、运行维护等职能外,新增数据服务运营子团队(服务运营&资产运营)。这个团队与数据平台和数据应用一样,也是一个直接负责对接业务、解决业务问题的组织。这个组织通过梳理整个平台的数据资产,提供平台层面的数据资产服务门户,对整个平台的服务能力和服务质量进行监督管理。并通过资产门户直接面对一线业务人员和数据研发人员提供数据平台的数据和应用的咨询服务、即时分析服务,收集平台侧零散的业务和技术需求,并从服务的角度评价平台的产品、团队的服务能力。
4.构建数据服务流程
服务化的组织需要整合和重构原有的业务流程,通过服务化去减少或者缩短业务与数据之间的距离。下图是一个依托数据门户的服务流程举例:
在数据中台的服务构建中,数据门户是非常重要的一环。门户会让数据团队与业务人员之间的技术和距离的鸿沟消失,构建出一个交互和共建的数据协作平台,通过对平台所有数据资产的梳理与服务以及问答等服务化的方法让原有的数据研发流程变短。所以,我们的数据服务流程都要以资产门户为基础去构建。
上图是一个面向服务的数据研发组织阵型,每个数据团队都有不同的分工。但是我们在传统的数据需求组织直接面对业务部门的基础上增加了数据服务组织。我们以下面几个场景为例,来看服务化流程。
1.数据服务场景。通过数据资源目录找到相应的数据,申请权限;
2.数据报表需求;
a需求:定义报表,指标定义,标签定义b开发:数据元定义,模型设计,数据模型映射,算法定义;c运维:质量问题反馈
3.数据问答;
a找不到数据;数据服务组,指定到数据资源目录对应的表;b对特定数据使用问题;数据服务组解答,如果是质量问题,转到质量管理;开发把质量问题转变为需求,需求组审核,进行开发;
4.数据安全;
a 治理组,定义新增数据源的数据安全;b 数据组,数据变化后,修改数据安全的定义级别;c 治理组,审核通过后,定义最终确定后才会在数据资源目录开放;
四、道路艰险而漫长
从管理学角度,组织(Organization)即由若干个人或群体所组成的、有共同目标和一定边界的社会实体。它包含三层意思:
(1)组织必须是以人为中心,把人、财、物合理配合为一体,并保持相对稳定而形成的一个社会实体。
(2)组织必须具有为本组织全体成员所认可并为之奋斗的共同目标。
(3)组织必须保持一个明确的边界,以区别于其他组织和外部环境。
上述三条,是组织存在的必要条件。
数据中台的组构建是数据中台成功的关键因素,并不是我们购买了某一款中台产品或者做了一个相关咨询就能达成中台的目标。我以一般的数据仓库项目为例,在做数据仓库项目的时候,我们长用3-5-7这三个数字来衡量一个组织数据仓库平台的成熟度。即便是客户购买了行业领先的行业解决方案和产品,也需要3年才能达到基础,5-7年才能相对成熟。而数据中台架构中又包含数据仓库的构建,涉及的组织面更大、涉及的工作范围更大,即便我们仍然使用数据仓库的标准来衡量,我们现在的数据中台项目大多还都处在打基础这个范围内(阿里大约在2018年左右提出了数据中台架构)。
在数据中台构建的道路上,我们仍然会遇到很多很多的未知和困难,只有不断的排除这些困难才能达到最终的目标,中台化的组织构建就是实现这个目标的利器。
因为每个组织对中台的需求和目标都可能有差异,组织内部也各有不同,以上的内容思考更多是从一个行业参与者的个人角度,给相关的组织提供一些思考和参考的内容,思考有所欠缺的部分还请指正。