世界之美,首先在于辩证之美,好与坏、美与丑、黑与白、长与短、分与合、静与动等既是矛盾的,又会辩证转换,更会完美统一。如果没有辩证,世间没有五颜六色,人生没有喜怒哀乐,月亮没有阴晴圆缺,那么世界将如此单一,甚至世界也就不是这个世界。
细想IT架构的演变处处体现了这种辩证之美。很多行业的系统开始都是一个单机版系统,然后变成网络集中版,然后又把集中的系统进行解耦,这种分分合合,既矛盾,又统一。最早的前端应用都是客户端系统,后来B/S架构看看就要一统江湖,当移动端出现后,C/S架构又重新火起来,然后又出现响应式网页,进行终端屏幕的自适应等等都体现了这种辩证和转换。
从数据架构设计看,可以分为静态数据和动态数据,常见的有机构、科室、人员、角色、物资价格、科目权限等标准数据一般称为静态数据。而明细数据,流水数据每天会发生很多笔,这些数据基本都是动态数据。但静态数据又不是绝对的,机构科室会随时调整,价格利率这些也会经常变动,这样看所有的静态数据都应该有生效的起止日期,状态,比如物资价格,什么时候生效,什么时候停止,目前是生效状态,还是历史状态,还是待启用状态,还比如人员信息,会有在岗、离职、待用,还会存在请假、学习、培训等这些,也需要变成动态数据,然后想想所有的静态数据都应该变成动态的数据,没有例外。而明细数据,需要根据不同口径,不同时段进行汇总分析,常见的日、旬、月、季、年统计,还有更进一步的形成各种指标数据,这些数据又是把动态的数据变成静态的,仔细想想,所有的动态数据也要变成静态的数据,这些静态的数据有的又变成各种模型数据,模型数据和标准数据的处理方式一样,也有生命周期,这又变成了动态数据。数据架构设计还有集中和分散的辩证,最早的单机版系统数据是分散的,然后进行网络集中,集中以后又进行解耦,把核心数据,渠道数据,产品数据,用户数据进行解耦,解耦以后又通过历史数据中心进行汇总集中,集中后又会根据不同主题和用途进行分离。在数据库设计中,一般需要遵循第三范式,但是如果完全按照第三范式,很多表数据的处理都非常不方便,又需要通过适当冗余来提升效率,数据库设计需要遵循完整性、一致性、安全性,但是在巨量数据的时候又会有所妥协,最典型的一致性是转账,甲转乙1000元钱,甲的账号减少1000元和乙的账户增加1000元,要么同时成功的,要么同时失败,但是在巨量的数据情况下,可能存在把这个事务进行分解,在跨行的情况下,或者在巨量交易情况下,可以先把甲的账户减少1000,然后再把乙的账户增加1000元,把同步变成异步,在互联网海量数据交易情况下,数据的不一致性又是常常存在的,同样的,完整性和安全性在特殊情况也是会适当牺牲,以保证数据整体的高效,快捷。
从应用架构设计看,早期的应用都是一个一个独立的系统,然后形成各种烟囱应用,然后进行整合,统一接入,十年前的EAI,ESB等大有一统接入之势,当时的构想是把所有的应用发布到ESB上,其他所有接入层或者展示层直接接到ESB不就可以了吗?直到现在,还有很多公司去忽悠,上了我们的平台,可以甩开一切厂商的绑架,想换哪个就换哪个,甚至做到热插拔,在实践中,才发现,ESB本身就是一个瓶颈,如果所有的应用发布到ESB上,ESB不但不能承受压力,而且ESB本身的风险成为全系统最大的风险,一旦ESB有问题,所有系统都会全面瘫痪,后来又发展了微服务,也有的通过中间件进行系统间的通讯,后来大型应用的架构又发展成ESB接入机构外的异构接入,内部应用内的通过中间件或者微服务进行通讯。从应用架构的表示层/展现层看,现在大多系统都是后台一个系统,前端一个界面,但从使用者的角度看,如果我是银行柜员,医院医生,客户经理,管理人员,我才不管后台有多少个系统,我就是需要一个系统统一处理我的业务,就又出现了前端的整合,不仅是浅层次的统一登录,统一权限,更希望是界面,操作的全面整合。Google前几年的战略是移动优先,这时移动端的展现和传统的系统展现是完全分离的,现在响应式的页面解决方案,混搭式方案又可以进行统一。
从物理架构设计看,最早的系统就是一个单机,然后当网络版出现的时候,进行了集中,这时小型机应用很火,更进一步集中发展到大型机,IBM的Z系列,一般IT投入少于1个亿的就基本不要考虑了,而且绑定了很多软件,年运维费少于2千万都运转不起来(当年和做IBM大机的有过接触,他们的理论是PC服务,小型机,大型机是不同的档次,数据量大要选择大集中,大型机是唯一选择,然后大型机绑定的软件价格是他们说了算,IBM绝对是一家非常厉害的企业,但绝对不是善茬),这要感谢我们的互联网企业,在2014年,双十一的海量交易应该吓坏了那些鼓吹只能选择大型机的人,IT圈到处转发《逃不掉的双十一,可怕的分布式架构隐患》一篇文章,后面有句话“双十一是一面照妖镜,让我们看到分布式系统的强大,也看到集中式系统的稳健。”这简直就是赤裸裸的威胁。当然也许有一天,会出现即价格合理,又处理能力超强的巨型机,一台机器就具有成千上万的PC服务器的处理能力。
从运维架构,风控架构的设计看,也处处体现了这种辩证。比如运维的集中监控,分布展示,风控架构的风控一体化,但规则和数据分离,识别和决策分开等等。当然这些架构的设计也不是随意的,而是根据应用的需要而不停改变,好的架构首先是设计出来的,然后是在应用中不断优化出来的,这也是一种辩证。
当年,光到底是按直线传播,还是按波传播吵得不可开交,大家都去找爱因斯坦,爱因斯坦说,为什么光的传播不能既是按波传播,又是按直线传播的呢?这种思辨的思维,不仅在个人的成长,生活与工作中处处充满着智慧,在IT架构的设计中也体现的淋漓尽致,也正是这种辩证,才显得那么有魅力,那么让人陶醉,那么让人不断探索追求而孜孜不倦。