笔记
当我们的架构方案只涉及几台或者十几台服务器时,一般情况下成本并不是我们重点关注的目标,但如果架构方案涉及几百上千甚至上万台服务器,成本就会变成一个非常重要的架构设计考虑点。
低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束。我们首先设定一个成本目标,当我们根据高性能、高可用的要求设计出方案时,评估一下方案是否能满足成本目标,如果不行,就需要重新设计架构;如果无论如何都无法设计出满足成本要求的方案,那就只能找老板调整成本目标了。
低成本给架构设计带来的主要复杂度体现在,往往只有“创新”才能达到低成本目标。
引入新技术的主要复杂度在于需要去熟悉新技术,并且将新技术与已有技术结合起来;创造新技术的主要复杂度在于需要自己去创造全新的理念和技术,并且新技术跟旧技术相比,需要有质的飞跃。
从技术的角度来讲,安全可以分为两类:一类是功能上的安全,一类是架构上的安全。
如果说功能安全是“防小偷”,那么架构安全就是“防强盗”。
传统的架构安全主要依靠防火墙,防火墙最基本的功能就是隔离网络
互联网系统的架构安全目前并没有太好的设计手段来实现,更多地是依靠运营商或者云服务商强大的带宽和流量清洗的能力,较少自己来设计和实现。
-
规模带来复杂度的主要原因就是“量变引起质变”,当数量超过一定的阈值后,复杂度会发生质的变化。
- 功能越来越多,导致系统复杂度指数级上升。系统的复杂度 = 功能数量 + 功能之间的连接数量。
- 数据越来越多,系统复杂度发生质变。
理解与思考
- 当系统的规模增长到一定规模后,降成本的收益的才会凸显。降成本需要技术创新,所以大公司更适合高级人才。
- 普通技术人员追求新技术的收益不高,除了开始接触时的新鲜感外。大部分人缺少整合新技术或发明新技术的能力。所以要看清自己的技术层次,去发展这个层次需要的能力。
- 安全是必选项,不是可选项。但是这方面的投资,是预防性质的,带来的不是直接的收益。如果没有被攻击,就是一种浪费,但是一种必要的浪费。
- 系统的数据规模对架构的设计影响很大。根据系统的实际数据量做设计,可以避免浪费,提高系统可用性。
思考题
学习了 6 大复杂度来源后,结合你所在的业务,分析一下主要的复杂度是这其中的哪些部分?是否还有其他复杂度原因?
我们的系统,主要的复杂度来自于高性能、低成本和数据规模。客户希望以较低成本的投资来管理更多的网元。