摘要:大家好,我是人月聊IT。今天继续聊架构方面的话题,由于现在架构方面的词汇相当多,所以大家在理解上也经常容易出现混淆。因此这篇文章刚好回答下在知乎看到的一个问题,即:什么是技术架构、数据架构、业务架构、应用架构、产品架构和项目架构?
大家好,我是人月聊IT。今天继续聊架构方面的话题,由于现在架构方面的词汇相当多,所以大家在理解上也经常容易出现混淆。因此这篇文章刚好回答下在知乎看到的一个问题,即:什么是技术架构、数据架构、业务架构、应用架构、产品架构和项目架构?
对于该问题我从企业架构中的4A架构来简单回答下该问题。
企业架构作为指导企业数字化转型的重要方法论,涵盖了多个层次和维度的架构类型。从传统的4A架构(业务架构、数据架构、应用架构、技术架构)到现代的产品架构、项目架构,每种架构都有其独特的定位和作用。本文将系统性地解析各种架构类型的核心概念、设计要点和相互关系。
4A架构关系图
我们常说的4A架构就是业务架构、数据架构、应用架构和技术架构,其实去理解4A架构的集成核心,你仍然要去参考企业架构这本书里面谈到的企业架构元模型。
4A架构的集成关系可以概括为:业务流程底层识别业务对象,业务对象转数据架构数据对象识别;业务组件对应应用组件,业务流程对应应用编排;应用功能实现最终需要技术组件支撑。
在业务架构里面其实有三个核心的内容,一个是价值流,一个是业务能力,一个是业务流程。价值流往往就是顶端的流程,业务能力的分解往往是2~4级,对于详细的业务流程的分解往往就到了5~7级。在业务架构里面是有两个视角,一个就是业务能力的视角,一个是业务流程的视角。
对于5~7级的流程,我们详细的去做流程建模和梳理的时候,里面就是有三个关键的元素,一个是业务对象,接接着就是业务活动,业务规则和业务角色,而这4个东西刚好是我们在业务架构里面做详细的业务建模的关键的内容。
业务架构转换逻辑
业务架构是企业架构的起点和基础。首先,我们可以看到仍然是企业根据业务战略和业务目标梳理关键的应用场景,基于这些业务场景,企业应该具备哪些业务能力,刚开始这个业务能力是黑盒子,你并没有把它打开,但是我们后续需要基于详细的业务流程的梳理和分析。
从一级流程到二级流程,从二级流程到三级流程通过详细的流程梳理,找到核心的业务功能和业务操作,同时结合CRUD分析业务功能,应该怎么样进行聚类和聚合,最终才能形成一个完整的业务架构。
业务架构梳理的关键底层逻辑是:企业根据业务战略和业务目标梳理关键的应用场景,基于这些业务场景,企业应该具备哪些业务能力。我们后续需要基于详细的业务流程的梳理和分析,从一级流程到二级流程,从二级流程到三级流程通过详细的流程梳理,找到核心的业务功能和业务操作。
比如我们仍然是基于业务价值链把它分成了人资源管理、财务管理、供应链管理、生产管理、市场营销,在供应链管理里面又有招投标、合同、采购,物流、供应商这些业务功能模块,在业务架构梳理完成以后,我们自然而然就会过渡到应用架构的梳理。
数据架构逻辑
对于数据架构,实际上它是业务架构和IT架构两者之间的一个关键的衔接点,对于数据架构里面的数据主题域的分析,数据的业务对象梳理和分析,这个实际是你业务建模阶段要做的事情,而对于数据架构里面详细的数据的逻辑模型,数据的物理模型和数据库设计,这些内容自然而然就过渡到了IT应用架构规范设计。
当你去看数据架构的时候,一般你会发现一个关键的主线就是数据架构最顶层就叫数据的主题域分析,从数据主题域的分析到数据的概念模型,从概念模型到逻辑模型,从逻辑模型到物理模型。
数据的主题域的分析,这个主题域可以理解成业务价值链的业务域,比如说任何一个企业,会分人力资源、市场营销、研发,供应链,每一个业务域里面,我就会去分析他核心的业务对象或者叫数据对象。
在数据的主题域分析完了以后,我们就会过渡到核心概念模型,概念模型类似于传统在IT软件开发里面的业务对象建模,相当于ER的实体关系图,因为在概念模型阶段,我只要识别出核心的业务对象和业务对象之间的关系就足够了。
从概念模型到逻辑模型,我们一般要拆分到具体的数据表的粒度。在逻辑模型做完以后,我们还要过渡到在软件开发里面的物理模型,物理模型阶段,那就需要去对每一个数据库表,每一个字段类型字段约束进行详细的设计。
企业架构知识体系
从业务架构过渡到应用架构以后可以看到在应用架构里面,上下红色部分往往都是多出来内容。比如在应用架构的整体架构图里面,我们就会有底层的IAAS整个云数据中心资源池的规划,IAAS上面的是PAAS技术平台的规划,比如说我们有我们的4A平台,流程平台,集成平台,大数据平台。
同时在应用架构规划里面,往往还会增加上层的应用门户的内容,或者是BI决策层的一些内容,这些往往是在业务架构的梳理规划里面是没有的内容。
从业务到应用的映射颗粒度不同。当业务架构映射到对应的应用架构里面的业务系统的时候,主要有两个区别点,第一个区别点是它的颗粒度有可能不一样,比如说在业务架构里面,我们都叫供应链管理,但是到了应用架构,已经拆成合同管理系统,采购管理系统,物流管理系统。
任何一个企业在做信息化IT建设时候,往往都会首先建一个基础的ERP系统,而ERP系统往往是一个大而全的系统,它包括了计划、采购、研发、生产、人力资源管理、市场营销很多的业务功能模块,但是随着整个企业业务的发展,你会发现它会在ERP系统外围衍生出很多其他的业务系统。
技术架构演进
在讲技术架构规划的时候,我们要伴随着整个企业IT架构的发展演进,整个云计算,SOA架构规划的发展演进一起去思考。
首先,我们看一下传统的企业信息化IT建设,它是一种烟囱式的建设模式,这种建设模式下面底层是IAAS虚拟化资源池,上面应用层的建设仍然是竖井式的一个烟囱一个烟囱的建,每个应用它底层有一个小的技术平台,上面也分了多个功能模块,但是这些功能模块它往往是紧紧耦合在一起的。
在最早的企业架构规划技术架构规划的时候,我们更多的是做的IAAS虚拟化资源池的整体的IT物理部署架构的规划,在这个部署架构规划里面,我们会去考虑数据库的集群,应用中间间的集群,负载均衡,上层的核心网交换机这些内容。
但是到了IT逻辑架构规划,往往就会去关心我的数据库服务器有几台,消息服务器有几台,缓存服务器有几台,我上一层的APP应用集群有几台,它是会形成一个类似于功能架构图这么一个IT的逻辑架构规划视图。
还有一块内容就是狭义的技术架构规划,就是我在整个应用开发的过程中,对于我的存储和持久化层,应用层逻辑层,包括前端展示层究竟应该用到哪一些技术,这些技术体系把它形成一张完整的分层的技术架构图。
软件架构设计要素
软件架构设计更重要的就是软件思维、编程思维的一些转变。简单来说,它的核心仍然是我们常说的,当面对一个大的问题的时候,你怎么样科学的去进行问题的定义、问题的分析、问题的解决,你怎么样去用好分解、集成、复用、组合、组装、抽象这些关键的逻辑思考要素。
当我们现在面对一个大的业务应用的时候,当软件架构师拿到这个应用的时候,首先他会考虑什么东西?他一定会去考虑这个应用怎么样去分而治之,它究竟应该分解为哪一些大的业务模块或者是业务组件。不管你用不用微服架构,你都要去考虑当你来了一个大应用以后,究竟应该分成哪一些业务模块。
你首先要去梳理你的业务场景和业务流程,不管是用面向对象的方法还是结构化的方法,你首先要去做好模块的分解,使之满足常说的高内聚松耦合的要求,这个是我们说的核心的在于业务架构要做的工作。
第二个工作就是我要去搭建一个完整的IT系统,我要去考虑我的底层究竟应该有一个什么样的技术支撑的平台,我应该使用什么样的开发框架、开发工具和开发语言,包括整个软件应用实现的过程中,我怎样去考虑高可用、高扩展、高可靠这一些核心的非功能性软件需求。
企业架构融合框架
在现代企业架构体系中,除了传统的4A架构外,产品架构和项目架构也成为重要的组成部分。产品架构更多关注的是产品的功能模块划分、技术选型和演进路线,而项目架构则关注项目实施过程中的组织结构、交付模式和管控机制。
对于数字化能力知识体系的构图方式,它更多的是采用一种矩阵式的构图方式。因为如果是简单的用思维导图的方式去构建我们的知识体系,它往往是基于一个中心单个维度的,但是我们去看数字化知识体系的时候,它更多是需要从多维视角。
纵向:围绕数字化规划建设全生命周期展开;横向:围绕过程支撑+平台+应用的横向分层解耦展开。纵向我们是会围绕数字化,从规划建设实现运营运维的全生命周期流程展开,而横向的核心是基于平台加应用的这种核心思想,基于底层的过程支撑和管理支撑,上层的业务和流程支撑展开。
在横向构图中虽然参考了常见的4A架构,但是更多是参考云平台的横向分层和平台+应用的思想。以及SOA服务化思想体现的资源+服务+应用的构建模式。
在AI时代,传统的4A架构得到了新的增强,但并不需要单独增加AI架构。AI架构中的大模型应该融入到数据架构里面,任务模型算法也是数据。实际大模型算法应该是在应用架构中的平台层能力。这样既保持了4A架构的完整性,又充分利用了AI技术的能力。
来源:人月聊IT