复杂度来源之成本、安全和规模

本文探讨了在架构设计中如何平衡低成本、安全和规模带来的挑战。低成本通常需要创新技术,安全分为功能安全(防止黑客攻击)和架构安全(如防火墙隔离),而规模的增大则可能导致系统复杂度指数级上升。功能安全依赖于编码实现,而架构安全在互联网领域更多依赖于服务商的能力。随着系统规模扩大,功能和数据的增多会显著提升复杂度。
摘要由CSDN通过智能技术生成

低成本

当我们设计高性能、高可用的架构时,通用的手段都是增加更多服务器来满足要求;而低成本正好与此相反,我们需要减少服务器的数量才能达成低成本的目标。因此,低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束。也就是说,我们首先设定一个成本目标,当我们根据高性能、高可用的要求设计出方案时,评估一下方案是否能满足成本目标,如果不行,就需要重新设计架构;如果无论如何都无法设计出满足成本要求的方案,那就只能找老板调整成本目标了

低成本给架构设计带来的主要复杂度体现在,往往只有创新才能达到低成本目标。这里的创新既包括开创一个全新的技术领域,也包括引入新技术。

引入新技术的主要复杂度在于需要去熟悉新技术,并且将新技术与已有技术结合起来;创造新技术的主要复杂度在于需要自己去创造全新的理念和技术,并且新技术跟旧技术相比,需要有质的飞跃。

安全

安全本身是一个庞大而又复杂的技术领域,并且一旦出问题,对业务和企业形象影响非常大。

从技术的角度来讲,安全可以分为两类:一类是功能上的安全,一类是架构上的安全。

功能安全

例如,常见的 XSS 攻击、CSRF 攻击、SQL 注入、Windows 漏洞、密码破解等,本质上是因为系统实现有漏洞,黑客有了可乘之机。黑客会利用各种漏洞潜入系统,这种行为就像小偷一样,黑客和小偷的手法都是利用系统或家中不完善的地方潜入,并进行破坏或者盗取。因此形象地说,功能安全其实就是防小偷

从实现的角度来看,功能安全更多地是和具体的编码相关,与架构关系不大。

功能安全是一个逐步完善的过程,而且往往都是在问题出现后才能有针对性的提出解决方案,我们永远无法预测系统下一个漏洞在哪里,也不敢说自己的系统肯定没有任何问题。换句话讲,功能安全其实也是一个攻与防的矛盾,只能在这种攻防大战中逐步完善,不可能在系统架构设计的时候一劳永逸地解决

架构安全

如果说功能安全是防小偷,那么架构安全就是防强盗。小偷是偷东西,而强盗很多时候就是故意搞破坏,对系统的影响也大得多。

传统的架构安全主要依靠防火墙,防火墙最基本的功能就是隔离网络,通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同信任程度区域间传送的数据流。例如,下图是一个典型的银行系统的安全架构:

从图中你可以看到,整个系统根据不同的分区部署了多个防火墙来保证系统的安全。

防火墙的功能虽然强大,但性能一般,所以在传统的银行和企业应用领域应用较多。但在互联网领域,防火墙的应用场景并不多。因为互联网的业务具有海量用户访问和高并发的特点,防火墙的性能不足以支撑。互联网系统的架构安全目前并没有太好的设计手段来实现,更多地是依靠运营商或者云服务商强大的带宽和流量清洗的能力,较少自己来设计和实现。

规模

很多企业级的系统,既没有高性能要求,也没有双中心高可用要求,也不需要什么扩展性,但往往我们一说到这样的系统,很多人都会脱口而出:这个系统好复杂!为什么这样说呢?关键就在于这样的系统往往功能特别多,逻辑分支特别多。特别是有的系统,发展时间比较长,不断地往上面叠加功能,后来的人由于不熟悉整个发展历史,可能连很多功能的应用场景都不清楚,或者细节根本无法掌握,面对的就是一个黑盒系统,看不懂、改不动、不敢改、修不了,复杂度自然就感觉很高了。

规模带来复杂度的主要原因就是量变引起质变,当数量超过一定的阈值后,复杂度会发生质的变化。常见的规模带来的复杂度有:

  1. 功能越来越多,导致系统复杂度指数级上升;
  2. 数据越来越多,系统复杂度发生质变;

--------来源《极客课程》∙ 学习摘要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值