领域修炼之路

系统架构思考

  身处信息工业革命的大潮中,作为潮头的一颗小水滴,大多数时间是茫然随潮而动,冲击,淹没,洗刷,奔向下一个障碍……
极速向前的列车,身在动,心却沉静,于是开始了思考。

  思考就有感触。几个月前踏上新的工作岗位,也是在这极速的列车上,身动而心静,回头看走过的路,
原来已是从山中走到了山外进而飞上高空俯瞰,没有对未知的恐惧,只有闪转腾挪的游刃有余。

  现在,驻歩思考,十多年的技术演进,海量信息汹涌而来,我想从中抓住什么,理清某些变化的脉络。

  回到系统架构,之所以想谈这个话题,一个是感慨OSGi的“怀才不遇”,一个是对大数据系统架构的思考。

  OSGi是一个伟大的构想,它为设备连接而提出,后来站在类和接口之上,开始专注于JVM内的模块化与服务,只是它的推广
未能在J2EE急速发展时快速跟进,重心一直偏重于J2SE,所以一直不温不火。在其意识到这一点,开始推进J2EE方面的应用时,移动互联网
推动的大数据,并行规模计算对技术的要求,又使其面临更大的挑战。物联网经过多年技术的革新,随着智能家居和可穿戴设备的逐步应用,
已经进入快速发展期,OSGi也将关注的重心重新转回物联网。

  现在的大数据系统架构与十年前的不同,思想却是一脉相承的,不同的只是面对的问题和架构的层面,这也印证了从量变引发质变的普适性辩证规律。

  从机器指令到汇编再到Fortran和C等高级语言,是二进制指令应用到了一定量的积累引发的变革。C++,Java等众多现代语言,仅仅是高级语言应对需求发展的一次跃迁,现在仍然是高级语言量的积累的时代。

  十五年前,我们开始关注的是最细粒度的架构设计原则,即面向对象,类和接口,设计模式。公司和个人,机构和组织不断深挖面向对象的高级语言能为系统设计带来什么,有什么更好的设计原则和最佳实践。

  挖完了,技术成熟了,网络带宽提升了,人们开始关注高一级的层面。于是,十年前我们关注的重点转向企业应用集成,而不再是类和设计模式,人们开始思考系统内的模块与服务,系统间交互的设计原则。

  在这期间,EAI,ESB,SOA理论与技术逐步推进,设计实践EIP也成了大型系统集成的最佳架构原则。

  同时,跨系统的通信也将分布式技术由概念理论推向实践验证,基础技术不断成熟。

  然后,五年前,伟大的乔布斯抓住了3G,4G甚至5G的快速发展趋势,通过iPhone引爆了移动互联网,也将诺基亚,IBM等老牌巨头拍在了沙滩上。

  得益于分布式通信技术理论的成熟,分布式技术的开源(这里要提一下雅虎对分布式技术的开源贡献),人们关注的重心不再是理论与实践都已成熟的单一系统和系统间集成,进而转向规模集群,云计算,大数据处理,机器学习。技术与研究,理论与应用,借助于对传统行业的颠覆,百家争鸣,百花齐放。

  纵观这一路而上的系统架构,二进制指令,过程编程,类与接口,模块与服务,资源隔离与规模集群。一层一层,一层的成熟为上一层的发展打下坚实的基础。一层的量变也引发上一层的质变。

  这一路走来,低一层的设计原则和最佳实践,经过放大,调整,实践和修正,成为上一层的架构。唯一不变的,是每一层上架构设计的思想。

  十年前,我们站在类和接口之上,在一个JVM(或进程)内思考组件标准化(EAI),通过组件编排随需应变地处理业务逻辑;五年前,我们站在模块与服务的角度,通过组件化服务(SOA)解决大型分布式系统的自治与运营;今天,我们仍以组件化思想和消息处理,在透明的规模集群上完成大数据计算。

  列车还在行驶,我也在大数据架构之路上前行,当我站在终点时,将会是下一段旅程的开始。

chrisrc wechat
更多信息请订阅我的微信订阅号