架构师常说的“技术架构”是指什么?

阿强的疑惑

团队的架构师call了个会,会议的主题是介绍技术架构的改造方案。阿强脑中闪过架构的模糊印象,一幅线框图里有密密麻麻的格子,格子里写着各种常用的组件名称。阿强口中开始念叨着着,“看你这次又要整啥花样”。投影仪里出现一张线框图,画着经常使用的工具,下面是IDE,gitlab,xxx构建平台,发布平台,上面是分支管理、CI流程的各个环节、灰度策略、投放策略、动态配置等。阿强发现这次架构图的名词和以前的维度不一样,脑中出现一个问号,到底什么是技术架构?

相信很多人都有这样的疑惑,工作中见过的架构图越来越多,自己也迷迷糊糊地画过不少,但还是不清楚什么是技术架构。

大家对这个概念都不清晰,是因为技术架构并没有权威的的定义。业务服务开发、中间件开发、测试、客户端开发,不同角色脑海里的技术架构图都不一样。

什么是技术架构?

技术架构的拆解

技术架构=技术+架构

架构=组件+关系+约束

技术=解决问题的方法或设备

技术架构我们可以理解为技术实现的架构,那还有其他类型的架构吗?还有组织架构、产品架构、政治架构、法律架构、证券架构...

为什么有那么多不同的技术架构?

因为我们做了不同维度的技术建设。如果你做业务开发,你关心的是业务领域对应的模型、业务流程、数据存储,这就是业务架构或逻辑架构。如果你是技术团队的Leader,你会关心研发流程如何跑得更快,代码管理、开发环境、构建、测试、发布,我们可称这为研发架构或交付架构。如果你是质量团队,你会关心怎样在项目上线前发现所有Bug,你建设了CodeReview流程、CI流程、自动化测试、压力测试、性能测试,这些可以称为研发架构或交付架构。

这些技术建设都离不开技术团队的核心使命,开发效率高、稳定性好、用户极致体验。我们可以根据需要,将团队的技术建设划分成不同的视图描述。

RUP4+1视图模型

你可以根据业务不同阶段的表现形式来划分,比如RUP4+1视图模型,逻辑视图、开发视图、过程视图、物理视图、用例视图/场景场景。

image

架构图是作用是指导团队开发,将技术架构划分为不同切面的视图是为了指导不同场景的技术团队工作。逻辑视图可以指导业务逻辑设计,开发视图可以指导开发流程的顺利进行。每个视图对应一种研发场景,它们本质上是不同维度的抽象,因此它们的组成要素、连接工具、承载要素的容器、面向的使用人员、关注的重点都不一样。

image

业务团队技术架构模型

你也可以根据团队职责来划分,逻辑架构、物理架构、研发架构、质量架构、决策架构。

image

客户端技术架构模型

如果你只是描述客户端技术架构,一张图就可以描述清楚。

image

参考

RUP4+1模型
https://baike.baidu.com/item/RUP/8924595?fr=aladdin

C4模型
https://c4model.com

你可能感兴趣的:(架构师常说的“技术架构”是指什么?)