最近发了几篇文章分别讲了业务架构、应用架构及数据架构(见文末链接),如果说业务架构定义了“我们需要做什么”,数据架构和应用架构描述了“我们将如何做到这一点”,技术架构则提供了“我们需要哪些工具和技术来实现这一目标”的答案。
这次,我要系统化的谈谈技术架构的概念、视图和实践,这也是TOGAF架构系列的最后一篇。
下图放了一张融合了业务架构、应用架构和技术架构各种组件的示意图,让大家对技术架构的生态位置有个初步认识。
一、企业架构全景图
TOGAF(The Open Group Architecture Framework)是一个工具集、术语集和流程集,提供了一个全面的方法来开发企业架构。TOGAF的中心是一个被称为"架构开发方法"(Architecture Development Method,简称ADM)的流程,如下图所示:
我们最关注的是业务架构、数据架构、应用架构及技术架构,这些架构层次的描述体现了从高层策略到低层实施的逐渐细化的逻辑。
四种架构域是层层递进、相互关联的。当一个组织制定企业架构策略时,这四个域通常需要协同工作,以确保策略的完整性和连续性。
二、技术架构的核心概念
在TOGAF中,技术架构被定义为一个企业信息系统环境中基础设施的规范和设计。这包括硬件、软件、网络和其他技术资源的配置和关系,以支持和使得应用架构、数据架构和业务架构能够有效地运行和互动。
要理解技术架构,首先需要理解逻辑应用组件、物理应用组件、逻辑技术组件、物理技术组件四个核心概念,这些是理解技术架构的基础,互相之间也有千丝万缕的关系,下表是对这些概念的解释:
总之,逻辑组件主要负责描述“做什么”,物理组件主要负责描述“怎么做”。逻辑应用组件和逻辑技术组件主要关注业务和功能需求,而物理应用组件和物理技术组件则负责具体的实现和部署。这些组件相互依赖,共同构成一个完整的企业架构。
三、技术架构目录、矩阵和视图详解
那么,技术架构具体长啥样呢?
TOGAF 提供了一个详细的架构工具模型,如下所示:
在阶段D,TOGAF定义了技术架构的主要交付物,共分目录、矩阵、图三类类型,总计8个制品:
1、图:平台分解图、处理图、网络计算硬件图、网络和通信图、环境和位置图、
2、矩阵:应用/技术矩阵
3、目录:技术标准目录、技术组合目录
下面以案例的形式逐个说明这8个制品的具体内容,技术架构的最终交付物往往是这8个制品的编排组合:
1、平台分解图
平台分解图描述支持信息系统架构运营的技术平台。该图展示了整个基础设施平台的所有方面,并为企业技术平台提供了一个概览。这个图可以扩展以匹配至适当的应用程序。
此图可能会展示某特定功能或流程区域内的细节,例如产品版本、技术环境,或者仅仅是非正式的“意见”,如网络或服务器的数量和环境。该图应清晰展示整个应用程序以及每个应用程序区域的技术平台进一步如何分解为以下几点:
硬件:
■逻辑技术组件(带有属性)
■物理技术组件(带有属性)
软件:
■逻辑技术组件(带有属性)
■物理技术组件(带有属性)
下面示例了一个电商的平台分解图:
2、处理图
处理图关注可部署的代码/配置单元以及如何将这些单元部署到技术平台上。部署单元代表业务功能、服务或应用程序组件的分组。处理图解决了以下问题:
■哪些应用程序组件需要分组以形成部署单元
■一个部署单元如何连接/与另一个部署单元互动(局域网、广域网以及适用的协议)
■应用程序配置和使用模式如何为不同技术组件生成负载或容量需求
以下是一个典型处理图示例,注意,处理图更适合于系统工程师和开发工程师进行系统设计、性能优化和故障排除:
3、网络计算硬件图
此图的目的是显示逻辑应用程序组件在分布式网络计算环境中的“已部署”的逻辑视图,该图对以下方面非常有用:
■使人们了解在分布式网络计算环境中应用程序在何处部署
■建立对这些技术组件的授权、安全性和访问
■了解支持应用程序的技术架构,以便在解决问题和故障排除时使用
■隔离应用程序遇到的性能问题,确定是与应用程序代码相关还是与技术平台相关,并对特定物理技术组件进行必要的升级
■识别在可用新技术时减少成本的优化领域
■启用应用程序/技术审计,并证明符合企业技术标准
■作为引入技术架构变更的重要工具,从而支持有效的变更管理
■建立可追踪性,同时在将应用程序从共享环境移动到专用环境或反之时,改变应用程序端点地址
以下是一个网络计算硬件图示例:
处理图和网络计算硬件图看似很相似,但实际上两者的目的和焦点并不同,它们为不同的观众提供了不同的视角:
处理图:
■主要描述了系统或应用的各个组件之间的数据流和交互。其重点是描述数据的流向、处理和存储,以及组件间的关系。
■通常更加高级和抽象,描述的是系统的逻辑视图,而不是实际的物理实现。
■主要为系统分析师、设计师和架构师使用,帮助他们理解和设计系统的数据流和逻辑。
网络计算硬件图:
■集中描述了IT环境的物理部署,包括硬件设备、网络连接、服务器、负载均衡器等。其重点是展示物理硬件及其连接方式。
■更加具体,描绘了实际部署的硬件和网络设备。
■主要供IT操作团队、网络工程师和系统管理员使用,用于指导实际的硬件部署和配置。
4、网络和通信图
网络和通信图描述了在技术架构中资产之间发送和接收信息的通信手段,即发送和接收信息的方法,因为前述架构中的包装解决方案选择对应用程序之间的通信提出了特定要求。
网络和通信图将客户端和服务器组件之间的逻辑连接转化为物理实施这些连接所需的网络边界和网络基础设施。它不描述信息的格式或内容,但会解决协议和容量问题。
以下是一个网络和通信图示例:
5、环境和位置图
环境和位置图描述了哪些位置托管哪些应用程序,识别了哪些技术和/或应用程序在哪些位置使用,最后确定了业务用户通常与应用程序互动的位置。此图还应显示不同部署环境的存在和位置,包括开发和预生产等非生产环境。
以电商业务为例,下面示例了一个系统分散部署的环境和位置图:
6、应用/技术矩阵
大家可能会混淆付款API接口(逻辑技术组件)与付款处理模块(逻辑应用组件)之间的区别,这里做个说明:
(1)定义与功能:
■ 付款API接口(逻辑技术组件):它是一个技术性组件,专门定义了如何与外部支付系统(如银行、支付服务提供商等)进行交互。这可能包括如何发起付款请求、如何接收付款响应、处理错误等技术细节。
■ 付款处理模块(逻辑应用组件):它是业务应用的一个部分,负责处理与付款相关的所有业务逻辑,例如检查订单的完整性、计算总金额、与库存模块交互、调用付款接口进行实际付款操作等。
(2)侧重点:
■ 付款API接口:技术侧重,主要关注与外部系统的通信协议、数据格式、安全性等。
■ 付款处理模块:业务侧重,主要关注订单的付款流程、业务规则、用户体验等。
(3)交互与依赖:
■ 付款处理模块在执行其业务逻辑时,通常会调用付款API接口来与外部支付系统进行交互。也就是说,付款处理模块依赖于付款API接口来完成实际的付款操作。
总之,付款API接口是一个更偏向技术的组件,负责实现与外部系统的交互;而付款处理模块则是一个业务组件,负责整个付款的业务流程,并在需要时调用付款API接口。两者在功能和侧重点上都有所不同,但它们在电商应用中是紧密关联的。
7、技术标准目录
技术标准目录记录了企业跨技术领域的同意标准,包括技术、版本、技术生命周期以及技术的刷新周期。根据组织的不同,这可能还包括位置或业务领域特定的标准信息。该目录提供了企业标准技术的快照,这些技术可以部署或已经部署,同时有助于识别企业内的差异。
技术标准目录包含以下元模型实体:
■技术服务
■逻辑技术组件
■物理技术组件
如果当前已经存在技术标准,可以将这些标准应用于技术组合目录,以获得符合技术标准的基线视图。
以电商业务为例,下面示例了一个技术标准目录:
8、技术组合目录
技术组合目录的目的是识别并维护企业内使用的所有技术的列表,包括硬件、基础设施软件和应用软件。已同意的技术组合支持技术产品和版本的生命周期管理,也构成了技术标准的定义基础。技术组合目录通常是技术架构阶段的起点。技术注册表和存储库也可以从基线和目标角度为该目录提供输入。
目录中的技术应根据企业内使用的已定义分类法进行分类,例如 TOGAF TRM(请参阅 TOGAF® 系列指南:TOGAF® 技术参考模型(TRM)),必要时进行适应以适应所使用技术产品的分类。
技术组合目录包含以下元模型实体:
■技术服务
■逻辑技术组件
■物理技术组件
以电商业务为例,下面示例了一个技术组合目录:
技术组合目录和技术标准目录是TOGAF中的两个重要概念,它们都与组织中的技术资产有关,但具有不同的目的和特点:
技术组合目录的目的是记录并维护企业内当前使用或计划使用的所有技术资产,包括硬件、基础设施软件和应用软件。它为技术架构阶段提供起点,同时帮助组织理解其技术投资。
技术标准目录旨在列出组织内跨技术领域的同意标准。这些标准为企业提供了一个关于如何选择和使用技术的引导,它包括技术、版本、技术生命周期以及技术的刷新周期。
总的来说,技术组合目录提供了组织目前拥有或计划拥有的技术的全景,而技术标准目录则为组织制定了一系列技术使用的标准和指南。两者共同支持组织在技术决策、采购和部署中做出明智的选择。
四、技术架构的服务对象
你会发现,技术架构中的八个制品,无论是技术标准目录、技术组合目录、应用/技术矩阵、环境和位置图、平台分解图、处理图、网络计算硬件图还是网络和通信图,互相之间是有联系的,甚至很多内容是有重叠的,因为这些制品本身就是为了满足不同利益者的关注点而设计的,同样的一个视点,可能由于角色的不同而会产生不同的视图,但也有大家共同关注的地方,从而使得视图有些地方会相似,比如网络计算硬件图、网络和通信图都会关注硬件。
下表示例了这8个制品分别主要服务的企业对象有哪些:
五、技术架构的实际案例
现实中的大多数技术架构图,都可以看成以上8种图的编排组合,下面举些实际例子。
1、处理图
这是一张大数据平台的架构图,其实就是处理图,描述了应用(含数据)程序组件如何合理部署。
2、网络计算硬件图
这是一张数据系统硬件图,其实就是网络计算硬件图,强调了应用的具体物理部署。
3、环境和位置图
这是某公司IT系统的物理部署图,IT系统分布在上海A区、上海B区、上海C区、上海D区、上海E区5个机房,其实就是环境和位置图。
4、平台分解图
这是某系统的技术架构图,其实就是平台分解图,一般会划分层次,我在里面标注了每层的组件的类型。
这是某系统的技术架构图,其实也是一张平台分解图,这个架构图展示了一个现代的、多层次的、微服务化的应用环境。
5、网络和通信图
这是某机房网络拓扑图,其实就是网络和通信图。
6、处理图 or 网络和通信图
这是某系统的网络结构图,具体是什么图取决于视点,如果关注应用部署在哪里,那么就是处理图,如果更关注网络拓扑,那就是网络和通信图。
这是TOGAF架构系列的最后一篇。事实上,我们除了业务、应用、数据和技术架构,平时还可能碰到系统架构图、软件架构图等等,你会发现些架构更为综合,但跟业务、应用、数据和技术架构似乎又有千丝万缕的关系,下次找机会聊一聊。