架构的执念(https://afoo.me/posts/2016-02-24-what-defines-an-archtect.html)
王福强 - fujohnwang AT gmail DOTA com
2016-02-18
所谓“Great Minds Think Alike”, 架构上很多东西都是相通的,架构的修行之路跟个人的修行之路随行, 如果说一个人要从身, 心, 灵
多维度修行的话,那么,我们今天的架构话题更多是围绕着“灵(Spirit)”展开,希望跟大家一起探讨,一名合格的架构师应该拥有什么样的执念和坚守,使他/她可以在架构之路上能够引领潮流,持续前行!
1 前瞻性的眼光
合格的架构师一定需要有前瞻性的眼光。
架构不是演化出来的,摸着石头过河,遇到问题解决问题,那是专家的优势和特长, 架构师不应该关注如何精妙的去解决问题, 而应该关注如何从一开始就奠定粗糙但正确的蓝图和基调,避免后面投入大量的资源去应对本不该出现的各种危机。 合格的架构师都应该做扁鹊的兄长那样的人,而不是扁鹊, 扁鹊是专家的偶像。
一名合格的架构师设计出来的架构是要有前瞻性的,要为了将来的组织能力更上一个台阶而设计, 满足当下需求并能够适当扩展,是遵循架构设计的系统实现要关注的事情,系统是多样的,架构不是,系统是演化出来,架构不是。
一名合格的架构师,要目光高远的去改造“世界”, 去将高远的思想化为现实, 你要做的是冲破各种阻力, 去构建大多数世人没有见过甚至没有想过的事情。
如果搞建筑,你要搞的是摩天大楼,甚至宇宙城堡:
而不是仅仅搭建一个遮风挡雨的栖身之所:
前者体现了架构的更高价值, 后者则只是满足需求的野蛮生长, 我并没有说两种不同的生态孰优孰劣,但作为合格的架构师,你要很清楚自己的选择是什么。
NASA当年给赞比亚修女的那封信, 相信大家都看过,解决眼前的问题很重要,但大部分人力和物力已经在做了, 应用,工具, 服务,所有这些都是为了解决类似的眼前问题。 所以, 作为合格的架构师, 你要做得应该是创造更高附加值的事情, 立足现状, 志存高远, 用你的前瞻性,作为先驱者, 探索, 发掘, 然后再回补, 周而复始, 走在前列。
当然, 有前瞻性不意味着你要去做一个梦想家,甚至空想家, 就跟Donald J Trump所说:
Before the dreams lift you into the clouds, make sure you've looked hard at the fact on the ground.
你要做的,只需要基于现有资源和环境,挖掘架构需求背后的本质, 做出高于普通标准的方案就可以了。 这跟艺术上经常说的“源于生活,又高于生活”是同样的道理。
前阵子在自己的朋友圈看到一篇介绍智利的建筑设计师凭借“杀手级设计-半个房子(Half A House)”获得普利兹克奖的故事, 而这个半个房子的设计,实际上就是很好的前瞻性设计的典范:
设计者基于现有资源和环境给出了以上的设计, 然后希望后面的住户根据自己的经济实力和需求自行建设和装修, 而后面各个半个房子的演化也很好的证明了设计者的预想:
看,这就是前瞻性的眼光!
2 系统性的思考
合格的架构师都是好的战略家, 前瞻性眼光是他们起码的要求, 而系统性的思考则是将这些前瞻性眼光落地的必备素质。
架构既看重前瞻, 又看重落地,落不了地的架构只是空中楼阁, 所以, 如何将架构落地, 考量的就是一名合格架构师的综合素质和系统思考的能力。
因为架构的规划和落地依附于现有的环境因素很多且不可重现, 所以, 合格的架构师要能够尽可能多的将对架构有过多权重影响的因素考量进来,然后做权衡, 抓住重点因素, 最后集中兵力重点突破。
比如, 是采用传统的Monolith架构体系,还是时下风靡的微服务架构体系, 你要能够从团队人员层次和能力, 组织和公司的发展现状, 时机等重点因素中做出权衡, 你没法通过数据建模的手段去完成这个工作, 你能依靠的,只有你的综合素质和系统思考能力:
-
从时机(Timing)上说, 如果单个应用结点就可以满足业务发展需求,那么, 就没有必要上微服务,否则反而凭空增加了整个交付链路的负担;
-
如果团队的成员能力还不足以支撑起微服务体系相关的所有工具化,服务化和平台化建设, 那么微服务架构也不是最合适的方向;
-
如果公司业务还处在四处拼杀, 生死未卜的时候, 公司的现状也不会允许你去搞各种完善的基础性建设, 活下来才是第一位的;
对于架构师来说, 你要关注的不是“点”, 而应该关注的是尽可能多的“点”, 进而是连接点的线, 到面,甚至到体, 你要构建的是“人浪”的整体形态, 而不是指导“人浪”中某个人的“起立和坐下”, 你要关注的是“整体效率”, 而不是"单点效率", 否则就不是健不健,美不美
的问题了:
系统性思维帮助做出合理的决策, 但最终都是为了架构的落地而服务,所以, 在繁杂的系统因素中做出抉择之后, 要能够集中兵力攻占阵地, 这个时候考验的则是架构师的统筹和带兵打仗的能力, 你可以使用情感纽带将兄弟们团结在一起为了同一目标而奋斗, 你也可以政教合一, 像亚马逊那样通过行政上的强化,来保证“所有服务都必须HTTP化”类似的决策执行, “路怎么走, 你们看着办咯~”
No man ever steps into the same river twice!
3 开放性的心态
前瞻性的眼光, 系统性的思考能力不是凭空而来的, 你需要“海纳百川”, 去芜存菁,然后通过独立的思考,经过长时间的积累,持续沉淀为一名合格架构师的综合素质, 而开放性心态是那道坎儿, 你迈不过去, 持续的沉淀就无从谈起。
一名合格的架构师是一座冰山, 他给你的印象可能只是很平常的小冰块儿, 但实在货都沉淀在下面:
而且, 在开放的心态下, 下面的沉淀将持续壮大。
3.1 有了开放性的心态,你才能“接纳差异”,做出合理的权衡
对于技术人来说, 或者说骨子里就是为技术而生的人, 与生俱来会有一种特质,那就是专注。 这种专注的特质可以让人沉浸在技术的海洋中欣喜而不可自拔, 但是, 不能因为这, 就忽略了千差万别的人,就忽略了斑驳陆离的世界。
我们不是一个个的“孤岛”,我们需要与不同的人,团队,组织打交道, 虽然我们为自己作为一名技术人和架构师而自豪,但不能因此而“老子天下最牛”, 即使是同一团队中, 针对同一需求,也会存在不同的声音,作为架构师, 我们不一定要听得进去,但起码要能听到,因为做架构本质上是要有一定的集权性的, 接纳众多意见,最终还是要归一为同一个方案,只是,集权不意味着武断, 接纳也不意味着民主, 但起码要知道有差异, 以及这些差异是否是当前架构需求的重点影响因素, 只有开放言路, 开放心态, 接纳人的差异, 组织的差异,才能帮助我们当时当下做出最为合理的权衡和架构决策。
推荐各位架构师去了解一些像MBTI之类的人格理论, 或许对了解人之间的差异会有帮助,空谈要心态开放可能意义不大, 倒是不妨先从了解人与人之间的差异开始吧!
3.2 有了开放性的心态,你才不会被过往的经验所羁绊
过去的经验有些时候不一定是财富, 有时候反而往往成了障碍。
一个公司在快速发展阶段,往往会快速吸纳来自不同公司和组织文化的人员, 而吸纳这些人员的初衷其实也正是能够直接应用他们之前的经验, 但实际上, 并非所有人员和他们的经验都是对当前公司和组织有益的。 大部分架构师或者技术专家都会对自己的“孩子”关爱有加,但往往也会被这种“爱”蒙蔽了双眼, 觉得什么都是好的,所以, 将原来的劳动成果照搬过来也就不是什么不可理解的行为了, 但是, 像基于HBASE的小文件存储
这样的设计和系统,如果别人告诉你,该方案的设计和实践的基石不合适,你却听不进去,还要争辩说这套小文件存储的设计和系统在原来公司运行的好好的云云,那么, 从心态到过往的经验,对个人其实都是一种羁绊。
舍得,舍得, 只有舍了,才能得,杯子空了,才可以重新装入新的液体!
3.3 有了开放性的心态, 你才会走上成长为一名合格架构师的莫比乌斯之路!
相信“在座”的很多人都打过游戏吧? 游戏之旅我们通常戏称为“打怪升级”之路, 我通常为了鼓励创业者能够跳出来勇敢地去折腾,也会用“打怪升级”来形容创业的过程, 而话说回来, 架构之路,实际上也是一条“打怪升级”之路。
大部分架构师会在整个生命周期内接触不同层面,不同领域的工作内容,做过应用开发,做过数据库和系统管理,做过中间件,也做过大数据,还做过..., 甚至你还可能还有公司和组织架构的经验。 但不管怎么样,只有你有了一颗开放的心态,才可以保证自己能够持续的沿着那条看似毫无尽头但却精彩绝伦的架构师的莫比乌斯之路前行。
4 Be A Full-Life Learner!
我今天要讲的最后一点就是, Be A Full-Life Learner!
技术很多时候是撬动人类历史快速向前发展的核心因素之一, 火药的发明引发了从烟花,到火炮,火绳枪,燧发枪, 连发枪的持续演化, 而且演化迭代的速度也是越来越快; 商业上也是同样的道理,如果说原来的电话普及是数十年才填满市场,那么现在的智能手机则只是短短的几年;
一名合格的架构师在这个快速发展的背景下,只有不断持续的学习,才能跟得上时代的步伐,才能不让自己成为团队和组织的瓶颈,才能持续的做出自身的贡献,所以,要沿着架构之路坚持的走下去,就去做一名终身的学习者吧!
你说那?;-)
原文:https://afoo.me/posts/2016-02-24-what-defines-an-archtect.html
相关推荐
运营商对于采用aTCA架构的设备和应用青睐有加,它们的电信级设计和模块化、开放式的标准架构对电信网络行业的发展和产业化进程起着至关重要的作用。 总结而言,IPTV CDN应用基于aTCA架构能够有效地提供高效的宽带...
编者按与传统意义上的红包相比,近两年火起来的“红包”,似乎才是如今春节的一大重头戏。历经上千年时代传承与变迁,春节发红包早已成为历史沉淀的文化习俗,融入了民族的血脉。按照各家公布的数据,除夕全天微信...
openstack自动化搭建脚本,openstack私有云平台部署。 这次是基于devstack进⾏⾃动化部署,后续会通过解析这个部署脚本的源代码的形式...(理解⾃动化部署的思路,以便后续⾃⼰编写⾃动化部署脚本)分析软件的架构特点
本系统基于Struts2框架, B/S软件架构体系,以windows 7为操作系统,适用于大部分电脑,以Eclipse为开发平台,TomCat为服务器,以J2EE为开发架构,MySql为后台数据库,开发出本系统。 2.1 B/S软件架构 B/S结构...
**系统结构方艾亥以吁侨玛彰态剧交苛卸敖疡焚厩薯钻懂饲犊随塌豆获刚槐舆...念胶噪诽界舍痰筏缺堕琼掘象芽沫馏胺馁汗津就军承怎粱妄边走峦盲煮执肩释特瘟鸦开屡匣著佣克伊喉奠霞孕寞士焉否钠电呼龚蚀并租序涌隔聋普觉墙...
【标题】"maven构建的springMVC+mybatis项目" 涉及的主要知识点包括Maven、Spring MVC和MyBatis三个核心部分,以及JavaWeb开发...这样的组合提供了高效、灵活且易于维护的开发环境,是现代企业级应用的常见架构选择。
锐捷设备VLAN的高级特性涉及到一系列网络配置与管理技术,用以提升网络的安全性、优化网络架构和提高IP地址利用率。本文将详细介绍隔离口技术、保护端口技术、PVLAN(Private VLAN)和SuperVLAN的技术要点。 首先,...
- 总体设计包括系统架构设计,通常采用三层架构:表现层(前端)、业务逻辑层(后端服务)和数据访问层(数据库连接)。 - 网页基本流程设计涉及用户登录、首页展示、搜索结果返回、播放控制等步骤,需要绘制流程...
系统采用三层架构设计,包括表示层(用户界面)、业务逻辑层(处理业务规则)和数据访问层(处理数据存取)。这种分层设计有利于代码的复用和维护,同时提高了系统的可扩展性。 3.2 数据库设计 数据库设计是系统的...
系统采用典型的三层架构设计,即浏览器-Web服务器-数据库模型。浏览器通过Web服务器与数据库交互,实现了用户与系统的远程访问和数据交换。 **开发技术与环境**: 1. **Java语言**:作为后台处理的主要语言,提供了...
- **三层架构**:通常采用表现层(视图)、业务逻辑层(控制)和数据访问层(模型)的架构,实现职责分离,提高代码可读性和可维护性。 - **MVC模式**:模型-视图-控制器模式用于处理用户请求,更新模型数据,并显示...
思科针对中端市场的网络安全蓝图为抵御入侵和网络安全威胁提供了一个网络架构解决方案的建议。凭借思科集成安全解决方案,您能使企业免遭蠕虫或病毒引起的业务中断,且能降低部署和维护安全网络的成本。思科集成安全...
它不仅提供了信息传输的基础架构,还支持了各种网络服务与应用的高效运行。本次设计的主要目标是通过合理运用建筑与通信知识,结合网络设计的基本原理,完成对3#厂房的改造工作。 #### 二、设计目标与指导思想 ...
云计算由Google提出,随后在互联网界风起“云”涌,随之而来的云计算服务和技术... 云计算主要基于资源虚拟和分布式并行架构两大核心技术,同时互联网上有大量的开源软件为用户提供支撑,如Xen、KVM、Lighttpd、Memca
ATA5830是通用高度集成低功耗UHF ASK/FSK RF单片收发器,包括了RF部分,数字基带和AVR 微控制器内核,内核是采用增强RISC架构的低功耗CMOS 8位MCU.收发器工作在ISM频段,频率范围为310MHz- 318MHz, 418MHz-477MHz...
SiGe半导体改变了其公认的高集成度2.4GHz RF前端器件架构,以支持一系列高数据速率54Mbps WLAN应用。在尺寸为8×7×1.1mm的小型封装中,每个器件都集成了线性功率放大器、功率探测器、传输/接收开关,以及相关的...
系统架构 芯片测试tester-DX测试系统采用modular设计,组件包括: 1. 测试主机:提供测试主机,能够控制测试过程和数据采集。 2. 测试仪器:提供各种测试仪器,例如数字仪器、DC仪器、模拟仪器、SerDes仪器和RF...