“一千个读者有一千哈姆莱特”。同样的,1000个人谈架构会有1001种看法。 有时候,甚至同一个架构的名词在不同的上下文里面也会代表不同的意思。例如,对于“系统架构”这个名词,有人认为它只是指代一个系统各部分的逻辑视图,有人会认为它指代一个系统的物理视图。借用DDD的术语,我们没有对架构产生同一语言。架构是一个亟须消除歧义的概念。我在这里试图列举一些平常经常会提到的“XX架构”概念,并希望对它们进行梳理。
企业架构
首当其冲的是企业架构。第一个上来的概念就已经有不同的定义了。基本上每种企业架构的框架都对其有自己的定义。例如,以下是不同的企业架构框架对企业架构的定义:
Zachman:“信息系统架构(企业架构)是构成组织的所有关键元素和关系的综合描述。”
The OPEN GROUP(Togaf):“企业架构是关于理解所有构成企业的不同企业元素,以及这些元素怎样相互关联。”
Gartner: “企业架构是通过创建、沟通和提高用以描述企业未来状态和发展的关键原则来把商业远景和战略转化成有效的企业变更的过程。”
事实上Zachman当时并没有明确提出企业架构,而是提出了另外一个名词:信息系统架构。后来Togaf直接借用了这个名词,作为其4A架构层次里面的其中两层,后面会提到。
对于企业架构,已经很难形成一个业界公认的统一的定义了。但无论其定义怎样,企业架构要做的事情基本上就是为了实现企业的愿景,定义企业需要掌握哪些能力,需要构建哪些系统来提供支撑,他们之间的关系是什么,以及怎么实施和治理。
Togaf 4A架构
4A分别是指业务架构、应用架构、数据架构、技术架构。
业务架构
官方定义是:A representation of holistic, multi-dimensional business views of: capabilities, end-to-end value delivery, information, and organizational structure; and the relationships among these business views and strategies, products, policies, initiatives, and stakeholders.
翻译过来大概就是:对全面、多维业务视图的描述,包括:能力、端到端价值交付、信息和组织结构;以及这些业务观点与战略、产物、政策、举措和利益攸关者之间的关系。其实顾名思义就是描述企业业务结构、价值以及与各方面关系的视图。
应用架构
官方定义是:A description of the structure and interaction of the applications as groups of capabilities that provide key business functions and manage the data assets.
翻译过来大概是:对应用结构和交互的描述,这些应用是提供关键业务功能和管理数据资产的功能组。说白了就是为了支撑业务架构,需要哪些应用以及他们的关系。这与传统意义上常说的应用架构意思是相近的。
数据架构
官方定义是:A description of the structure and interaction of the enterprise’s major types and sources of data, logical data assets, physical data assets, and data management resources.
翻译过来是:对 Enterprise 主要数据类型和来源、逻辑 数据资产、物理数据资产和数据管理资源 结构和交互的描述。顾名思义,描述数据的。
技术架构
官方定义是:A description of the structure and interaction of the technology services, and technology components.
翻译过来是:对技术服务以及技术组件结构和交互的描述。与应用架构的区别是应用架构是应用的逻辑层展现,不涉及具体技术实施;技术架构是对应用架构实施落地的展现,设计具体的技术方案。还是举我喜欢的出行工具的例子,应用架构就是出行工具的模型图,技术架构就是把出行工具具化为汽车或者马车的设计图。从这个角度触发,我个人认为应用架构跟系统架构是类似的概念。对于系统架构,后面会提及。
其中应用架构和数据架构又合称为信息系统架构。
部署架构
没有公认的定义。但顾名思义,很好理解。例如,当出行工具的技术架构确认后,部署架构就是马车是要赤兔马还是血汗马,是要一匹马拉还是两匹马拉;汽车的话轮胎是要米其林还是普利司通,引擎是要自然吸气还是双涡轮增压。
系统架构
真正吊诡的概念来了。网上基本上找不到关于系统架构的公认的定义。但似乎每个人都经常使用这个名词。当我问人们要他们的系统架构图时,有时候他们会给我应用架构图,有时候会给我技术架构图,有时候是部署架构图,有时候甚至是业务流程图!但最让人感到惊奇的是虽然似乎每个人对这个名词的理解都不一样,但感觉好像又可以互相理解。基于系统架构,我更倾向于把它理解为跟应用架构一样,表示一个系统的逻辑层展现,不涉及任何技术与具体的实现。当然了,这只是我个人的理解。当我们在跟别人讨论系统架构的时候,一定要明确双方在一个明确的上下文中讨论。
IT架构
又是一个没有公认定义的概念。根据往常的经验,基本上除了企业架构和业务架构外,上述所提的所有架构都可以认为是IT架构的不同表示。这也意味着,当我们说IT架构时,别人往往是不知道我们想说什么的。所以要特别小心,我个人是不主张单纯说IT架构的。
最后,上一幅老图,压场总结。
构建IT系统的微服务架构
网友评论