极客时间:《从 0 开始学架构》复杂度来源: 低成本、安全、规模
一、低成本
低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束。
低成本给架构设计带来的主要复杂度体现在,往往只有“创新”才能达到低成本目标。
二、安全
从技术的角度来讲,安全可以分为两类:一类是功能上的安全,一类是架构上的安全。
1、功能安全
从实现的角度来看,功能安全更多地是和具体的编码相关,与架构关系不大。
换句话讲,功能安全其实也是一个“攻”与“防”的矛盾,只能在这种攻防大战中逐步完善,不可能在系统架构设计的时候一劳永逸地解决。
2、架构安全
如果说功能安全是“防小偷”,那么架构安全就是“防强盗”。因此架构设计时需要特别关注架构安全,尤其是互联网时代,理论上来说系统部署在互联网上时,全球任何地方都可以发起攻击。
传统的架构安全主要依靠防火墙,防火墙最基本的功能就是隔离网络,通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同信任程度区域间传送的数据流。
互联网系统的架构安全目前并没有太好的设计手段来实现,更多地是依靠运营商或者云服务商强大的带宽和流量清洗的能力,较少自己来设计和实现。
三、规模
规模带来复杂度的主要原因就是“量变引起质变”,当数量超过一定的阈值后,复杂度会发生质的变化。常见的规模带来的复杂度有:
功能越来越多,导致系统复杂度指数级上升
数据越来越多,系统复杂度发生质变