演化:这五年里,我们对架构师职责的思考与定位

点击上方“芋道源码”,选择“置顶公众号”

技术文章第一时间送达!

源码精品专栏

 

来源:吃草的罗汉

最近两年,随着互联网红利的消失,对于人才需求似乎已失去往年那种唇枪舌剑的感觉,但我却发现,无论在社交平台,还是技术大会,又有人对 “架构师是用来干嘛的?” 这样的伪命题开始津津乐道,缘由也许是无事生非?还是抒发感情?又有谁在乎呢。

相信任何一家含有技术属性的企业,或多或少都会有一名(或者多名)扮演架构师身份的人存在,在许多人眼里他们是站在技术金字塔最顶端的神秘人物,具有快速切入,举一反三,一句顶一万句的特殊技能,而且逻辑思维能力很强,思路清晰,有洞察力,善于抓重点,但也有人说他们的强项只是打酱油、和稀泥、背黑锅、拉仇恨……

很显然,评价之所以产生如此大的差异,抛去调侃的成分,我觉得还是由于每家企业对架构师职责的定位不同,而且这种不同,会随着技术发展与业务规模的变化,甚至组织结构的调整产生变化。

在进入正题之前,我们先来看看维基百科是如何对 “架构师” 进行分类的:

  • 软件架构师

  • 信息架构师

  • 网站架构师

  • 业务架构师

  • 中间件架构师

  • 基础架构师

与 “官方分类” 相比,好买技术团队中的架构师岗位,不但起源较晚(没记错的话应该是2013年),而且刚开始定位模糊、职责不清,如把这五年的演进进行梳理的话,可简要分为三个阶段:

640

图1. 好买架构师职责的演进过程

| 第一阶段:技术救火员

2013年,技术团队刚从十余人扩展到几十号人,应用系统也随着业务功能的迭代而增加到三个。

在从 0 到 1 的技术创业阶段,无论开发狗还是业务猫,似乎都更关注功能性需求,往往一个简单粗暴的 MVC 项目就可以搞定一切,但随业务量逐渐增大,用户需求逐渐多样化,非功能性突发情况变得越来越多,而此时也有越来越多的人开始意识到,在技术上遇到难以攻克的问题,如果招俩牛X的架构师在身旁,似乎解决系统的疑难杂症都是小菜一碟。

这一阶段的架构师,无需具备多伟大的宏观设计能力,只要开发小伙伴遭遇技术难题之时,能像美国队长一样挺身而出,施展拳脚,攻克技术细节便可。

| 第二阶段:项目技术评审

2015年,技术团队又从几十号人发展到上百号人,应用系统伴随着 “持续污染” 扩展到了近百个。

众所周知,应用越多,人也就越多,然后功能需求的延期现象越来越严重,直到无法再承受的那天一拍脑门做出决定。

A君提出:“咱们成立PMO(项目管理部)吧,按瀑布迭代的方式推进,这样对项目的控制力会强一些”。

B君质疑:“好是好,但当前引起延期的主要原因都集中在应用架构与技术选型上,使用PM形态应该也无法解决吧?”

A君解答:“那就让架构师参与到每个项目中,对每个项目进行技术评审,并逐渐将技术公共服务抽象,这样一来,短期/长期的问题、隐患不都迎刃而解了吗?”

B君同意:“的确是个好方法,开干吧!”

看似完美无缺的套路,可实施起来又如何呢?

由于第一阶段的发酵,架构师自身并没有深入参与应用系统的业务环节(当时这个环节是由各应用系统研发Leader管辖的),在业务上的沉淀不足,导致对于软件工程的理解、目标没有清晰的认识。

在做架构设计与技术选型时,非常容易泛泛而谈,甚至与应用系统研发Leader产生冲突,冲突的原因也无非是觉得太过高屋建瓴,缺乏对具体实现的理解和把握。许多架构设计方案,仅仅停留在PPT上,具体的落实完全依靠一线开发人员。

通过一年的磨合,虽说演化出类似缓存系统、调度中心及统一配置服务等多项中间件雏形,但最终由于组织结构的变更,从2017年起,架构师不再参与项目技术评审,此项工作由应用系统研发Leader全权负责。

| 第三阶段:中间件产品化

2017年,技术团队到达了200人的规模,组织结构也被拆分成了互联网化的FeatureTeam,应用系统也打着 “拆” 字的旗号发展到了成百上千的程度。

640

图2. 中间件平台与服务系统的关系

随着业务支撑场景的复杂度加大,外加FeatureTeam形成后需避免重复性建设,在推动一些全局横向技术工作时,需要有人与应用研发一起突破架构上的各项难题,通过前两阶段的磨练后,架构师是最为合适的人选。

截止到这个阶段,也有一部分架构师转型成为了FeatureTeam团队的Leader,还有一部分架构师则专职负责中间件平台的建设,而每个中间件服务则被划分为不同的产品线,再挑选出几位不但精于技术领域,还能有跨团队、部门沟通,推进事情能力的架构师担当负责人,对技术落地的进度、风险进行把控。

640

图3. 2017年 - 中间件平台全景图


其实,这样对架构师的职业发展路线也不是坏事,只不过从原先的 ‘身兼数职’ 变为 ‘垂直一职’,对于 "本身酷爱技术" 的他们来说也是一种对于能力的锻炼。

- 感慨 -

演化,有时候就是选了一些完全出人意表的道路,有时只有当回望的那一刹那,你才能分辨好与坏,才能感受到这其中的酸甜苦辣……

你家架构师的演进历程是什么样的?快到评论区分享下吧。





如果你对 Dubbo / Netty 等等源码与原理感兴趣,欢迎加入我的知识星球一起交流。长按下方二维码噢

640?

目前在知识星球更新了《Dubbo 源码解析》目录如下:

01. 调试环境搭建
02. 项目结构一览
03. 配置 Configuration
04. 核心流程一览

05. 拓展机制 SPI

06. 线程池

07. 服务暴露 Export

08. 服务引用 Refer

09. 注册中心 Registry

10. 动态编译 Compile

11. 动态代理 Proxy

12. 服务调用 Invoke

13. 调用特性 

14. 过滤器 Filter

15. NIO 服务器

16. P2P 服务器

17. HTTP 服务器

18. 序列化 Serialization

19. 集群容错 Cluster

20. 优雅停机

21. 日志适配

22. 状态检查

23. 监控中心 Monitor

24. 管理中心 Admin

25. 运维命令 QOS

26. 链路追踪 Tracing

... 一共 69+ 篇

目前在知识星球更新了《Netty 源码解析》目录如下:

01. 调试环境搭建
02. NIO 基础
03. Netty 简介
04. 启动 Bootstrap

05. 事件轮询 EventLoop

06. 通道管道 ChannelPipeline

07. 通道 Channel

08. 字节缓冲区 ByteBuf

09. 通道处理器 ChannelHandler

10. 编解码 Codec

11. 工具类 Util

... 一共 61+ 篇


目前在知识星球更新了《数据库实体设计》目录如下:


01. 商品模块
02. 交易模块
03. 营销模块
04. 公用模块

... 一共 17+ 篇


目前在知识星球更新了《Spring 源码解析》目录如下:


01. 调试环境搭建
02. IoC Resource 定位
03. IoC BeanDefinition 载入

04. IoC BeanDefinition 注册

05. IoC Bean 获取

06. IoC Bean 生命周期

... 一共 35+ 篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值