我的架构观-架构未来的发展

最近看了一些架构方面的帖子,包括京东的、支付宝的,加上之前各种微服务,大平台,弹性化等各种架构词汇,在大脑里相互冲撞,一时间感觉不知所云,思维被各种概念牵引着,有点慌乱。当然这不是我想要的状态,于是运用曾文正公的处世之道:“立足当下,化繁为简”。回到架构的三个哲学问题:1.何为架构?2.它从哪里来?3.它要到哪里去?回答了这三个问题,就应该能抓住架构的本质,不至于人云亦云。当然,这只是一家之言,如果说错了,希望能指正我。

  1. 何为架构:与我而言,所谓架构其实是事物与事物之间恰当的关系。这个概念比较大, 我们不妨缩小一点范围就focus在IT架构领域。我们知道,TOGAF将架构分为业务架构、数据架构、应用架构、技术架构,这四个架构定义从不同的层面和维度解释了要实现上层企业架构应该具备的架构能力,这里的业务架构是从业务的维度讲业务流程、企业组织以及组织下的人员之间的关系;数据架构是从数据维度讲企业的数据资产及信息间的结构关系;应用架构是从应用系统的维度讲应用系统相互间如何协作以提供服务从而满足业务流程的系统化(也是讲系统间的关系);技术架构是从软硬件基础设施维度讲它们之间如何组合以提供基本的运算、存储、网络能力。
    • 当然,对于更一般的架构的认识,或许我们叫它系统架构或软件架构,指的是定义系统结构、行为、视图的概念模型的组织结构,包括系统分解的组成部分,它们的关联性,交互,机制和指导原则。定义比较晦涩,说的直白一点,还是从不同维度看各种能力及其它们之间如何协作以实现该维度的目标。进一步解释一下,我们通常说系统架构包括逻辑架构、物理架构、开发架构、运行架构、数据架构5个部分。所谓逻辑架构是功能模块如何划分,功能模块是啥,满足功能的能力嘛,如何划分其实还是在将关系嘛。再看物理架构,讲的就是物理服务器如何分配以及部署关系,其本质还是在讲能力和能力间的协作关系。其他三个架构也是在各自维度讲能力及关系。一般来说,系统需要的能力其实就是三种:1面向最终用户的支撑能力、2面向外部系统的交互能力、3面向数据的处理能力。所以说,架构本质就是这三种能力以及提供提供能力的实体相互间的关系。
  2. 它从哪里来:从架构的本质可以看到,在不同的维度架构需要提供不同的能力和关系,那是不是可以试着从这个角度看架构的发展过程呢?顺便也验证一下我们对架构的本质是否认知准确。我们知道,系统架构过程大致可以分为三个阶段:
    •   第一阶段是早期系统竖井式的架构,应用和数据交织在一起,无论是从逻辑上还是从物理部署上都是,因为这个时候各维度对能力的需要不是那么强烈,没有明显的能力短板,不需要明确区分相互间的关系。但随着系统壮大复杂,来自硬件的能力以不足以支撑整个维度需要的能力,这就进入第二阶段。
    • 基于SOA的分布式架构,通过SOA把这种能力水平拆分,好处当然是使得能力可以灵活增减,坏处是这种拆分会给能力间的关系增加复杂度,举例来说,原来通过内部调用即可满足的关系由于SOA把能力拆分,现在需要通过网络调用才能满足。那么当这种关系复杂度给系统间带来协作障碍时,我们就需要进入第三阶段。
    • 第三阶段即微服务+大平台架构阶段,通过构件大平台来控制这些复杂的关系,不要让其暴露出去变成不可控的因素。此阶段即把业务逻辑分散在微服务中,把所有业务处理中需要的技术能力统一归置到平台进行管理,平台通过标注化的,约定熟成的协议及通讯方式为上层的微服务们提供固定的服务,并把所有与服务安全、可靠性、监控、服务治理等相关的工作作为平台基础的能力提供出来。因此这种大平台其实就是通过设定标准和规范来降低关系的复杂度,是通过引入另外的能力和关系来达到的,比如大平台的引入本身就带来了更为复杂的关系。就像马路上的红路灯,虽然通过红灯停绿灯行等规范来解决交通拥堵的问题,但难道它们就不是造成更大拥堵的原因吗?
  3. 它要到哪里去:回答这个问题其实就是回答架构的下一阶段,我不是预言家,只是沿着我个人理解的架构发展路线来估测一下。从上面分析的架构路线来看,我们已经通过引入额外的标准规范一定程度上缓解了能力关系的复杂性,只不过这种引入带来了一定程度上大平台自身的能力挑战,因此我们可以预见,当需要大平台提供更加强的能力以满足更复杂关系的管理时,是不是在某一时点上平台自身的能力关系也变得不可控呢?就像马路上的红绿灯,想象一下当红绿灯出现故障时,路况是不是会更加崩溃呢?所以我们回过头来,还是从IT系统的起源来看,系统是服务于业务的,这一点毋庸置疑,因此架构的发展趋势一定也是让业务实现更自由,这种自由其实就是要有载体来负责管理这些关系性,而上面的分析我们发现通过引入外部的能力并非长久之计,那么很自然我们会想到最终的服务器会是这些载体,即将所有与技术相关的成本如协议、调度、服务、通讯、监控、缓存、服务调度等关系都最终龟缩成服务器硬件的基本功能,就像CPU、网络、存储能力一样,这种龟缩不一定完全有硬件服务器厂商来做,可以在驱动层、操作系统层、甚至在操作系统上再抽象出一层,通过这种内置的固化能力关系管理,使得各个维度上的能力真正做到可以按需使用,动态扩展。

    也许,架构的未来是没有架构!

来自Dimmacro为知笔记(Wiz)

时间: 2024-10-18 08:18:00

我的架构观-架构未来的发展的相关文章

从软件的架构观谈起

概述 这一年来读了读有关国外大牛和先辈相关的书,最近自己也在做项目架构.见一些同行的言论,有些感触 有赞同的地方也有不赞同的地方,这里谈谈自己的架构观. 1.架构不是为了玩技术 很多人在玩技术技巧,但架构这东西非作秀,然而一些人在这么干, 架构的审核标准第一条:便捷.易维护.适合于需求不断调整业务场景. 曾经在一个企业见过这样的场景:所谓的一个leader十年多年的时间带领一帮人做一个简单的信息管理系统, 他们所有的一切都一团糟,却玩起了技术秀--学着别人做DDD. 邯郸学步的后果--完全在模仿

程序员未来的发展方向……(猿媛必看)

程序员未来的发展方向--(猿媛必看) 提交 我的评论 加载中 已评论 程序员未来的发展方向--(猿媛必看) 2015-08-14 CSDN博客 程序人生 程序人生 程序人生 微信号 coder_life 功能介绍 分享CSDN社区中最优质的博文.最精彩的讨论.最实用的开发资源,并不定期奉送CSDN社区的各种福利. ↑ 点击上方"程序人生"关注我们 程序员工作两三年后,基本上都会考虑自己的未来发展方向.发展的路径不外乎: 程序员-系统分析员-架构师-技术经理-CTO程序员-项目组长-项目

小钢的架构思考:架构设计

原创文章,转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/architecture/20160621微信订阅号:keeganlee_me写于2016-06-21 小钢的架构思考:什么是架构小钢的架构思考:架构规划小钢的架构思考:架构设计 最近一个多月因为忙于工作上的项目重构,所以文章一直没能更新.现在,重构终于暂时告一段落,于是,赶紧抽时间把文章写完更新发布.下面进入正文. 当架构规划的结果,整理出一堆不同优先级的需求,尤其是质量需求之后,接下

未来数据库发展畅想

突发奇想,对于数据库,想到了一些有意思的事情和功能,算是对未来数据库发展的一种畅想吧,期待未来有实力的公司或是科研机构能真正实现. 一:分布式操作系统---永动机型操作系统 聊数据库,先要说说操作系统,毕竟数据库要安装部署在操作系统上.目前应用服务常见的硬故障分为电源.CPU.硬盘.内存.网络等,这些都是常见的.不可抗拒的故障.非分布式操作系统下,各个服务器资源不能最大化的得到合理利用,即使是现在的K8S容器时代,也是这样.目前在应用服务层面,存在读写性能.CPU.内存.网络等瓶颈,但在分布式操

我要带徒弟学JAVA架构 ( 写架构,非用架构 )

我要带徒弟学JAVA架构 (写架构.非用架构) 非常多人做java开发2,3年后.都会感觉自己遇到瓶颈. 什么都会又什么都不会.怎样改变困境,为什么非常多人写了7,8年还是一个码农,工作中太多被动是由于不懂底层原理. 公司的工作节奏又比較快,难有机会学习架构原理,也没人教.所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要. 相同公司的两个新人,一个新人一点就通.学东西非常快,有的人.学东西非常慢,也非常痛苦,处处都是新技术.为什么?由于那个人懂原理,万物都有规律,掌握了规律学其它

如何成为一名架构师,架构师成长之路(转)

转自http://blog.csdn.net/fei33423/article/details/61934514 如何成为一名架构师,架构师成长之路 原创 2017年03月13日 22:50:34 3116 大量阅读别人的系统实现文章( 架构= 模块图 + 模块流程图(启动 和 主流程 ,可以用拟物 tag) 或者 模块时序图) 动态+静态 .对象很重要,模块很重要. 从产品角度,用户很重要 脑图不需要按空格,收缩行 https://www.processon.com/view/link/58c

如何看待安卓未来的发展

中国拥有世界上最大的手机用户群,在我们生活中,常见的有安卓和IOS系统,相较而言安卓用户占比大多数,我相信随着android手机的普及,android应用的需求势必会越来越大,安卓的发展也会越来越迅速. android的特点主要有: 1.开放性 2.应用程序无界限 3.应用程序是在平等的条件下创建的 4.应用程序可以轻松的嵌入网络 5.应用程序可以并行运行 安卓手机比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入了全部web应用的平台.安卓的版本很多,随着版本的更新,从最初的

怎么看待安卓未来的发展

Android系统自从2008年出现在市场后,凭借其良好的用户体验,低廉的成本和较高的开放性深受众多终端厂商的青睐. 从终端厂商的角度来看,因其采用了开源的平台,厂商可以按需深度定制系统开发本地化应用环境,且可以生产出更多的功能与性能不同的终端设备. 从开发者的角度来看,因其开放性,开发者在程序的开发和移植上更为方便不需要考虑厂商端能否安装等问题.而且android支持多种语言,使得它具有非常广泛的开发群体,这样也可得到更多的支持与研究. 从用户的角度来看,用户可选择的应用资源更加丰富,应用免费

spark未来的发展方向

spark是采用scala语言开发的基于内存的计算框架,作者Matei Zaharia,在未来的发展方向: 1.spark streaming:提高spark的流处理能力,使得spark更适于通过一套代码进行大数据流处理和批量计算: 2.MLlib:spark0.8加入了MLlib,下一步会在MLlib中加入更多的机器学习算法,使得spark更适于分布式机器学习: 3.GraphX:是基于spark的图计算框架,当前很多社交网络分析,机器学习和图的相关算法最终完成推荐系统的工作,最终想达到让用户