一、企业架构简介
企业架构:Enterprise Architecture,EA,或企业体系结构,是在信息系统架构设计与实践基础上发展起来的一个特殊领域。
但是企业架构现在还没有一个公认的定义,综合现有的研究与实践,可以从下面几个方面理解:
- 关于一般性的企业或组织(组织社会学)
- 包括某种企业参考模型或企业参考模型“框架”
- 涉及企业建模基本要素及其相互关系或结构、结构准则
- 应用、实施涉及或包括整个企业生命周期上的治理
- 应用、实施者通常是企业内信息技术部门,或能够从企业战略、业务模式与系统或组织建设角度结合、运用信息技术的部门或职能
- 应用、实施目标通常是在企业信息技术应用实施、集成中保持与业务的一致性;更深入的目标是创建和维护基于信息技术基础设施、充分发挥信息技术作用的信息化企业
以上来自维基百科:https://zh.wikipedia.org/wiki/企业架构
从上面简介中可以看到,企业架构所考虑的面向还是比较多,有企业组织、企业参考模型,还有从企业战略、业务模型与系统或组织建设角度结合,还有IT系统建设等等好多方面的内容。
二、简单的企业架构
先来看一看运营一家企业都有些什么,首先肯定有业务,然后具体的业务通过哪些应用系统来承载。如果是一家 IT 信息化的企业,对于这些应用系统肯定会用到 IT 中的技术。
根据上面这些信息可以画一张粗略的图出来:
比如说做招聘业务,帮助其它企业招聘企业需要的人员这种招聘业务。承载这个招聘业务,你可以做一个招聘系统,比如像拉钩、Boss直聘这样的在线招聘应用系统。那做这些招聘应用系统,可以用哪些技术呢?编程语言可以用PHP、java、Go来开发,服务器可以用云厂商,数据库也可以用云厂商的,等等这些技术。
三、复杂的企业架构
上面是我理解的一个简单的企业架构。复杂一点的企业架构包括什么呢?
企业战略、业务架构、数据结构、应用架构、技术架构,其中的数据架构和应用架构可以合并为信息架构。
- 企业战略:企业的价值定位,实现价值的发展战略。包括短期战略和长期战略。
- 业务架构:业务发展规划,业务目标,业务功能,业务对象,业务模型,业务流程,组织结构。
- 数据架构:数据流程,数据对象,数据模型,数据存储,一般要和应用架构一起使用。
- 应用架构:应用发展规划,应用系统,应用功能,应用组件、接口。
- 技术架构:技术发展规划,架构设计,技术选型,技术组件,技术中间件,laaS,PaaS 等。
企业战略:企业为了追求使命和实现目标而采取的一系列相关行动。
当然企业战略又可以细分为多种:业务战略,产品战略,营销战略,竞争战略,市场战略。。等等。这种战略一般都是公司高层制定。
一开始做企业,我觉得不容易想到企业的使命和价值,战略也不容易想到,而是在业务做着做着慢慢做大后自然会想到的事情。
这种企业架构就是战略决定了业务,业务决定了技术的运用。反过来,技术支撑了业务,业务支撑了战略。
战略制定了,就要想根据战略做什么样的业务,然后在运用技术来支撑业务。支撑业务是什么意思?由技术构成的应用系统来支撑业务。
所以我们平常的技术架构,都是要从当前业务出发来进行技术选型技术架构。
四、Zachman框架
John Zachman 在 1987 年提出了“信息系统架构的框架”,它是一个通用的组织架构模型分类方案,为现今的企业架构提出了一个基本的概要性视图。这一工作被视为企业架构方面的开创性工作之一。在 1997 年,Zachman 又总结提出了经过扩充、更完整的框架,称为“企业架构框架”(Framework for Enterprise Architecture)。
它为公司来理解、表述企业信息架构提供了一种直观的视图,为企业的信息基础设施提供了蓝图和架构。
John Zachman先生在 1987 年完成的那篇著名的信息系统架构论文(《A framework for information systems architecture》 ),并一直发展至今。在这篇论文中 Zachman 先生以修建房屋为例从两个维度将与信息系统架构设计相关的各种元素归纳到如下表格之中:
(来自:https://www.cnblogs.com/zscyun/archive/2013/05/02/3054610.html)
表格中的每一行,企业架构中的不同角色:
- 范围/规划师(Planner)
- 业务模型/拥有者(Owner)
- 系统模型/设计师(Designer)
- 技术模型/建造者(Builder)
- 详细表述/分包者(Sub-Contractor)
- 产品/运行中的企业(Functioning Enterprise)
最后一行产品/运行中的企业,1987年论文中是没有的,为了表述完整,加进去了。
对于企业架构中的不同角色,还可以这样来看:
- 企业拥有者
- 业务管理者
- 系统分析师
- 系统设计师
- 系统建设者
- 运行的产品
表格中的每一列代表了信息系统的某一个方面。在 Zachman 先生看来,对于任何一个事物只要在几个基本方面对其进行清晰的解释就足将其描述清楚,这些方面包括:
- 数据(What,即什么内容)
- 功能(How,即如何工作)
- 网络(Where,即何处)
- 人(Who,即何人负责)
- 时间(When,即什么时间)
- 原因(Why,即为什么做)
上面的各项内容更加详细解释请看这篇文章:https://www.cnblogs.com/zscyun/archive/2013/05/02/3054610.html。
五、TOGAF企业框架
5.1 TOGAF介绍
TOGAF:
开放组体系结构框架,是英文 The Open Group Architecture Framework 的头一个字母的缩写。它是一个企业架构框架,为企业管理信息架构提供了一种设计,规划的方法。TOGAF 是国际开放组织于 1995 年开发的。
TOGAF 是一种高层设计方法,提供了 4 种建模级别:业务,应用程序,数据,技术。
5.2 TOGAF内容
TOGAF 内容
TOGAF 发展了很多年,现在到了 9.1 版本
TOGAF 架构图:
(来自:https://pubs.opengroup.org/architecture/togaf9-doc/arch/index.html)
从上图可以看到 TOGAF 核心部分:
- 架构能力框架
- 架构开发方法
- 架构内容框架
- 企业持续性和工具
影响企业架构变化的因素有哪些:
- 企业使命和计划:企业的使命愿景,计划和组织基础架构变化。
- 企业战略:企业的战略,按 SWOT 来分析的话,内部竞争和外部竞争,优势,劣势,机会和威胁。企业范围内的改变,比如流程改进。
- 外部约束:市场因素,客户群体变化,客户需求变化等。
- 当前系统和技术:企业内部系统老旧需要升级,运用新技术来改造,提供更好的效率和服务。
- 计算机行业趋势:技术的变化,新技术的出现降低成本,提高开发效率。比如云计算,云原生技术。
ADM 架构开发方法
ADM,架构开发方法,英语 Architecture Development Method 的缩写。为开发企业架构所需执行的各个步骤以及他们之间的关系进行了详细定义,它是 TOGAF 框架中最为核心的部分。
TOGAF 架构开发的各个阶段:
(来自:https://www.visual-paradigm.com/guide/togaf/togaf-adm-tutorial/)
原图地址:https://pubs.opengroup.org/architecture/togaf9-doc/arch/index.html
从图可以看到,架构方法是一个循环迭代过程。它的核心是需求管理。ADM 的 9 个阶段:
- 预备阶段
- 架构前景阶段
- 业务架构阶段
- 信息系统架构阶段
- 技术架构阶段
- 机会与解决方案阶段
- 迁移计划阶段
- 实现治理阶段
- 架构变更管理阶段
这个架构方法有这么多步骤阶段,这是一个比较完整的实施循环。
如果你要参考实施,并不一定所有阶段的都要实现,可以根据自己实际情况适当去掉一些阶段。
企业架构是一个涉及面比较广、事关整体规划、长期实施的事情,也是一个企业长期追求,所以需要分阶段规划,逐步实施、迭代进行。
TOGAF 内容很丰富,更多内容请查看TOGAF 官网:https://pubs.opengroup.org/architecture/togaf9-doc/arch/index.html
六、总结
无论是 zachman 认知框架还是 TOGAF 框架,都给我们认识企业架构提供了一种视角,一种方法框架。
通过这些提供的认知企业架构的角度方法,可以审视自己的企业架构。
对自己进行企业架构有一个很好的指导作用。
当然企业架构框架不止这 2 种,还有好多其他的,比如在 OpenGroup 这个组织,里面还有 ArchiMate,IT4IT 等框架。
除了这些,主要的还有 EAP,FEA,DoDAF 等企业架构。
七、参考
- https://zh.wikipedia.org/wiki/企业架构 企业架构
- https://www.cnblogs.com/zscyun/archive/2013/05/02/3054610.html Zachman 框架
- https://pubs.opengroup.org/architecture/togaf9-doc/arch/index.html OpenGroup的TOGAF官网