架构设计,尽可能简单

B站影视 2024-12-21 17:45 1

摘要:集成企业,核心是解决方案,解决方案的优劣,取决于认知。从架构维度看,能简单解决,绝不采用复杂的方案。

大道至简,衍化至繁。

最近看到一些物流集成企业经营艰难,甚至爆雷的消息,心有感慨!

集成企业,核心是解决方案,解决方案的优劣,取决于认知。从架构维度看,能简单解决,绝不采用复杂的方案。

复杂让客户看不懂,项目投入高、运营难,维护成本高;复杂让供应商心里没底,回款周期长;复杂让自己研发成本高,施工周期长,投资回报率低,经营容易陷入恶性循环,直至难以为继。

因此,我们在制定解决方案,架构设计时,尽可能简单。

尽可能简单

在软件架构设计上,有5条规则,可以保持简单。

规则一、避免过度设计

项目解决方案如果复杂,复杂的方案将导致实施成本高,而且产生长期的昂贵的维护费用;特别在经济下行的今天,会伤害自己和客户。

就算明天经济形势会变好,复杂的方案也限制了系统的可扩展性。

因此,在设计中要警惕复杂的解决方案。

验证方案是否复杂,或是否过度设计,最好的方式是看测试同事是否能够轻松理解。

规则二、方案中包含扩展

扩展是否会让方案变复杂?

会!但方案没有扩展性,会让项目周期特别长,实施特别难,这是平衡的艺术。

所以我们保持适度的扩展设计。

DID原则可以帮助我们,在我们评估需求之后,Design设计20倍的容量,Implement实施3倍的容量,Deploy部署1.5倍的容量。

DID原则在实践过程中被验证,是项目取得平衡一个较好的实践。详细原因,可以查看我的文章。

规则三、三次简化方案

在方案制定完成之后,有经验的架构师,会大刀阔斧地砍!

如何砍?可以问自己3个问题。

方案的范围还可以简化么?方案的设计还可以简化么?方案的实施是否还可以更简单?

方案的范围一般是指需求范围,需求决定了工作量,需求简化很难,但对项目最重要。

方案的设计取决于架构师的认知,需要反复审视方案是否易于理解?成本低么?扩展性适中么?

方案的实施,什么时候采购他人方案?什么时候用开源方案?什么时候采用自研的方式?这需要从企业整体视角来评估,欢迎查看我的文章。

规则四、减少页面目标

近年来,软件技术中兴起了微前端技术,或者称为大前端。

从整体架构上来说,尽可能减少网页上的对象数量。

因为客户端的资源相对服务端来说是较少的,而且给网络带宽造成一定的压力。

因此,对性能敏感的网页,尽可能采用服务端解析的方式,前端技术也可以更多地采用服务端解析的方案,减少或合并对象,平衡好最大并发连接数。

这样在客户易用性、可用性和性能之间能取得比较好的平衡。

规则五、采用同构网络

这是一个很容易被忽略的点。

混合使用不同OEM的交换机或路由器,厂商在实现各种标准协议时存在差异,数据包解析可能存在差异或转换时间长,如RFC协议等。

另外,公司采购的交换机、路由器、入侵检测系统、防火墙、负载设备等,如果采用不同厂商,可能在功能、可靠性、成本和服务角度存在较大差异,从简单的维度看,尽可能统一供应商。

简单是世界的本源,欢迎关注我。

来源:龚龚科技杂谈

相关推荐