软件架构除了实现自身功能外,还要关注几个关键要素,包括性能、可用性、伸缩性、扩展性、安全性。一般来说,我们就是利用这五个要素来判别一个架构的优劣。
1、性能的重要性不用多说,性能优化体现在从前端到后端的各个层面上,我们重点关注各种性能优化方案。
2、可用性:服务器正常使用的时间,与总服务时间的比例,换算成的量。实现高可用性的主要手段,就是冗余。数据在多台服务器上相互备份,即使其中某台服务器宕机,也不会影响整体的使用。不同种类的服务器,其可用性实现有其独特性,这里不深入下去。
3、伸缩性:通过不断的向服务器集群增减服务器,来适应访问压力的变化。衡量这个性能的标准在于:
(1)是否容易加入服务器
(2)加入服务器后服务质量是否受到影响
(3)加入服务器的数量有多大限制
4、扩展性,关注的是系统适应新需求的能力
5、安全性,先不深入