前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业架构 | 绕不开的微服务

企业架构 | 绕不开的微服务

作者头像
悟空聊架构
发布2022-05-13 16:58:48
4540
发布2022-05-13 16:58:48
举报

你好,我是悟空呀~

在很多程序员的大脑中,都会有这样一个打怪升级的路径:

曾经,我对这个路径深信不疑,现在想想,也许是因为初出茅庐的我所看到的江湖太小。慢慢地,在江湖中久了、视野开了,就发现自己想得太简单了。

第1个对“架构师”的定义

十多年前,在我初入江湖的时候,首先进入了一家位于深圳的大型软件公司,研发人员的规模上千。面试我的人据说是公司中的架构师,我当时心里真的是对这个架构师充满了仰慕之情,以至于至今我都依稀能够回忆起他的容貌和声音。

当时的后端主流技术是Struts+Spring+Hibernate,也就是当时业内常说的SSH;前端的主流技术是HTML+jQuery+原生JS。那时还没有管理jar包依赖的maven,也没有开箱即用的SpringBoot,如果在新的项目中要将上述技术整合起来供开发人员适用,往往需要几天甚至几周的时间,而这些工作都是架构师的职责。

于是,我给架构师下了第一个定义:

架构师就是把各种框架整合到一个项目中,提供通用的代码,支撑开发人员完成业务功能的开发及提供必要的技术支持的人。

后来我回到了西安,此时的我,凭借自身的不断努力,已经将上述的几个技术掌握的很好了。在西安的一家规模不大的软件公司中,我也做起了架构师,同时给自己定了一个工作原则:

不参与业务功能的开发,只为程序员提供通用能力和技术支持。

在之后的几年中,我一直坚守自己对架构是的定义,原理业务知识,一心钻研各种炫酷的技术,也一直作为团队中面对困难的最后一道防线为开发人员提供支持。

第2个对“架构师”的定义

现在,我已经在江湖中摸爬滚打了12年,在架构师这个岗位上也已经有8年左右,原本简单的认为“架构师即巅峰”的我,中间有一段时间迷失了方向。在不断地与人沟通加上多次的面试经历后,似乎在每个人的心里,对“架构师”这个名词的理解都是不一样的。

有一次,在参加一个架构师训练营的时候,培训教材中有一幅图给我留下了很深的印象,虽然原图我已无法找到,但表达的思想如下图所示:

讲师将架构师类比为交响乐中的指挥家,在他的描述中,架构师的视角应该比别人高,关注点并非独立的一个个具体问题,而应该是用全局的视角去通盘考虑、整体规划,然后指挥别人去将规划落到实地。如果架构师过分的深入细节,只会让他因无法抬头看路而迷失方向,就像“不识庐山真面目,只缘身在此山中”一样。

于是,我对“架构师”有了第二个定义:

架构师就是一个站在比别人更高的角度上看待问题,凭借更高的视角而统领全局,不会拘泥于技术细节的人。

但这样一个定义也让我在之后的面试中不断地被面试官挑战,在大部分的面试中,面试官对架构师的要求依然是某项技术的深度,而非整体的技术广度。

第3个对“架构师”的定义

在近几年的工作经历中,我又接触到了另一类架构师,他们常常被称作“解决方案架构师”、“行业架构师”、“交付架构师”和“售前架构师”等。

在我最初从事这类工作的时候,我将之前给架构师下的两个定义又重新审视了一遍,似乎此时的工作内容与那两个定义都完全的不同。

经过近2年在解决方案架构师这个岗位上的历练,发现这类架构师实际上是作为客户的咨询顾问存在的。工作内容几乎已经脱离编码了,而是给予某一个技术和产品体系,在客户购买前、中、后提供贴身的咨询服务,帮助客户规划技术方向、产品组合以及提供实践方案等。

此时,“架构师”的第三个定义在我的心中诞生了:

架构师就是站在战略的层面,对企业中信息化技术提供整体解决方案、路线图规划以及合规性监管等工作的人。

后来我考取了有“架构师黄金证书”的TOGAF,也向我打开了“企业架构”的大门,这也让我更加确信我对架构师下的第三个定义。

“架构师”不是这么定义的

虽然我心中对架构师有了3个定义,然而它们非但没有让我对架构师地认识更加清晰,反而让我更加地迷惑。尤其是在面试架构师这个岗位时,明明自己很强,但却总觉得自己跟面试官的对话不在一个频道上。这也一度让我对自己的能力产生了怀疑,开始了自我否定。

在深入的思索及阅读相关的资料后,我发现,问题的根源在于对“架构师”这个名词的滥用

Martin Fowler(微服务架构提出者之一)在其一篇谈论架构师的文章中说到:

不管架构是什么,它都包含了重要的事物,而架构师就是关注这些重要事物的人。

我认为,“架构师”这个名词的滥用,也正是因为这个岗位关注的是重要的事物,因此,行业中在招聘时,只要涉及重要的事物,就会称其为“架构师”。

架构师的分类

其实,架构师是分很多种类的,每一类架构师都有自己的成长路径——这与打怪升级是不同的。

首先,我将“关注竟要的事物的人”拆分为三类,如下图所示:

  • 常见的技术专家有:数据库架构师、缓存架构师、框架架构师、工作流架构师”、大数据架构师等,这些架构师专注于对应领域的技术细节。
  • 常见的产品、行业专家有:售前架构师、解决方案架构师、交付架构师、某某行业架构师等,这些架构师的关注点不在于研发和技术,而在于某个产品体系或某个行业的通用诉求。

对于上图中的“架构师”而言,还可以继续拆分,如下图所示:

  • 研发类架构师:为一个IT项目或产品负责,责该IT系统的技术规划、研发和运维等工作。常见的岗位名称有:系统架构师、软件架构师、技术架构师等。
  • 业务类架构师:普遍存在于各行各业,负责规划其所在企业的业务逻辑。常见的岗位名称有:领域专家、业务架构师、总设计师等。
  • 企业架构师:普遍存在于各行各业,负责企业内外IT系统的规划和建设。在非IT企业中时,主要负责企业内部IT的建设,为业务部门提供信息化的支撑;在软件或互联网等IT企业中时,则可仅负责企业内部系统也可内外系统均负责。

架构师的工作方式

这里所说的工作方式主要分为两类:集权型和连接型。

(1)集权型架构师

集权型架构师通常在某一领域内拥有出众的能力,是以“问题终结者”的角色出现在团队之中的,当出现其他团队成员无法处理的问题时,集权型架构师会成为团队的最后一道防线。

集权型的优点有:

  • 作为决策的唯一制定者,可以高效地统一团队内的思想,保证了团队内的一致性。
  • 作为团队内的经验和技术方面的专家,会为其他成员带来安全感。

集权型的缺点有:

  • 集权型架构师作为唯一的决策者可以高效地统一思想,但在实际工作中,架构师往往并非距离问题最近的人,架构师的误判也是比较常见的,由于集权型架构师是唯一的决策者,其他成员只能跟随,因此极有可能做出错误的决策。
  • 集权型架构师自身强大的个人能力在为其他成员带来安全感的同时,会让其他成员对集权型架构师形成依赖,导致其他成员的积极性和主动性降低,集权型架构师自身的工作强度随之上升。

(2)连接型

连接型架构师就像黏合剂,他们更善于与他人合作。这类架构师可能不具备出众的个人技术能力,但他们拥有丰富的经验和沟通能力,通过和不同职能团队之间深度合作,协助团队解决问题,必要时可为团队提供相应的资源和授权。另外,连接型架构师会成为技术人员和非技术人员之间的桥梁,将业务部门和技术部门连接在一起。

在我工作的早期一段时间,我都非常支持集权型,因为我觉得这样的沟通成本最少、效率最高,但现在来看,其缺点也是不容忽视的,并且,系统越庞大缺点也就约明显。因此我目前的推荐方式是以连接型为主,集权型为辅。

总结

笔者结合自己在软件研发行业12年的工作经历,提出了在不同阶段对架构师这个岗位的3种定义。在与各类人群针对架构师的讨论过程中,得出“架构师”一词在行业中被广泛的“滥用”这一结论。

在对架构师这一岗位深入的思索后,提出了架构师的分类体系。笔者认为,被滥用的“架构师”一词实际上表达了包括技术专家、架构师和产品、行业专家在内的不同方向,并对架构师这个方向继续分类为:研发类架构师、业务类架构师和企业架构师三类。

总之,架构师关注重要的事物,视角应该更高,避免陷入细节;系统越庞大,越是需要连接型的架构师,当团队踌躇不前时,需要集权型架构师快速地决断。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 悟空聊架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这里所说的工作方式主要分为两类:集权型和连接型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档