什么是架构,什么是架构师?

百家 作者:聊聊架构 2017-07-08 14:31:18
作者|王晓波
编辑|韩婷

什么是架构,什么是架构师?这似乎是聊架构话题时永恒的问题。

从内心讲我真的不想回答架构具体需要做什么,架构师应该具体负责什么。因为从实际情况看,在不同的系统层级,不同的需求下架构师的职责也会不同;从不同的技术角度看,架构师又是个变色龙——一时是技术的大拿,一时是技术的规划者,一时是技术团队的指挥者。

那么,该如何回答“什么是架构,什么是架构师”这个问题呢?这或许需要先搞清楚另外一个问题——一名程序员是如何走上架构师之路的?我从许多朋友那里了解到了很多实际案例,程序员走上架构师之路,总结起来最多的原因是因为他早前代码写的好。

那么,代码写的好就是架构吗?显然不是。代码写的好只是表象,做所有事情都需要规划,尤其是一个复杂的软件系统,这更需要规划,否则可能连一行代码都写不出。复杂的软件系统一定会需要做很多抽象设计、对象规划、接口规划等准备动作。也就是“上一辈程序员”口中所说的:详细设计。做架构主要的事情也依旧如此,需要对整个系统进行系统的规划:模块、通讯、边界、扩展、技术下沉等工作。这样的规划完成之后项目方能正常跑起来。

当然,架构也不仅仅是规划,还要做的另一件大事就是技术识别。识别出系统中技术的难易区域,并分解复杂技术,使之成为一个个技术的黑盒子,在此之上再进行新的技术规划,使整个系统从技术角度来看是分层次的,从难到易,从大到小,但各层之间又是互相的黑盒。这也常说的让系统模块间达到“鸡犬相闻老死不相往来“的状态。

系统技术的识别完成之后还要对另一种技术进行识别,即人的技术。什么样的工程师适合写哪一层的代码,那一层的技术对程序员技术的深入程度要求到哪个点上。在做完这些事情整个架构表面上看是平稳进行了。

但实际上,架构的问题一定会再次前来打扰:首先是测试工程师来询问“对于整体系统架构而言这个应用该如何更好的被测试?”“我们需要用什么样的技术来更好地保证软件的质量?”然后是运维工程师来询问“该系统将跑在什么样的环境之上?”“我们应该提供什么样的服务器?”“服务器上我们会做哪些配置和安装哪些基础软件?”“我们需要提供一个什么样的网络环境?”“有什么样特殊的网络配置?”“我们需要做哪些安全策略?”……此时,架构师不时会像是一个掉入冰洞的猎人无比无助,头顶成群的苍蝇飞着,这些问题,有的懂点,有的不专业,还有的听说过没干过,有些仅限知道原理。其实这些辣手的事情是考验架构师的一种能力:技术的宽度。

一个架构师需要足够的技术的宽度。从软件到硬件,从开发到测试,从运维到安全等都需要面面俱到的了解。当然你可能不是这单方面领域里面最深入的人,但是你需要知道它们是怎么做的(不仅仅是皮毛,要深入原理),并且要知道它们组合起来是个什么样的东西。技术面也足够宽了之后,是不是就会成为完美架构师呢?

答案是不会,因为还有新的问题要过来。这次的问题诸如“系统在未来的运行过程中运维需要做什么?”“系统在未来的功能迭代中如何更方便的扩展?”“系统应该怎么修改?”“系统应该被怎么样升级?”这时的你是不时很困惑?是不是感觉这个架构的世界好长啊,怎么像保姆一样什么都要管。但仔细想想这是应该的,因为一个系统初次开发并交付只是它生命周期中的一小部分而已。后面的维护、改造、升级才占了整个软件生命周期的绝大部分时间。你是它的架构设计者,是它灵魂之所在,你当然应该设计好它的未来。这也是架构师做好的最后一件事情:系统未来的设计。

仔细想想,上文提到的这些案例全是架构的糗事,但糗事其实是架构师成长路上的必经之路。因为一个没有经历失败的架构师一定不是个好的架构师。只有经历各种苦难,越过各种坑和各种痛苦之后才能成为一个优秀的架构师。架构师也是一个很独特职业,不像现代教育里已经很成熟的人文和物理教育体系,勤奋的人大都能经过系统的阅读和教育能走向成功。架构更像一种艺术、一门哲学,架构师们也仿佛经过多年积累后忽然间就像打通了任督二脉。那么走向架构师的路是不是无迹可寻呢?——这个问题留个大家来思考。

今日荐文

点击下方图片即可阅读

技术领导力的三要素:敏感度、趋势判断和赌徒精神


近日,由 InfoQ 参与承办的以“在一起,梦飞扬”为主题的 2017 华为开发者大赛正式开赛,大赛设置百万现金奖励,面向参赛者征集采用华为 11 个领域开放能力的优秀作品,包括:云计算、大数据、物联网、企业云通信、eLTE、视频、CloudCaaS 、移动、开放工场、运营商运营管理、IES SmallCell。如果你是华为的合作伙伴,或者对华为合作伙伴生态感兴趣,可以点击“阅读原文”链接报名,InfoQ 将提供全程赛事指导,提交作品更有开发者礼包相赠。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接