大型网站技术架构读书笔记03—大型网站架构核心要素

架构,指的就是能够指导整个软件开发的那一部分设计。在维基百科里面的定义是:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计,

软件开发除了考虑软件的功能性需求之外,还需要考虑性能,可用性,伸缩性,扩展性和安全这5个架构要素(非功能性需求)。这篇文章就带大家来了解了解这5个网站架构中的核心要素。

1.性能

性能是衡量一个网站的重要指标,任何网站都必须要有很好的性能才能留住客户。一个打开速度极慢的网站会使客户大量流失,所以任何网站架构的设计必须考虑性能这个因素,性能最直接的体现是网站打开速度的快慢。
网站优化的手段有很多,从用户发送请求到最终收到响应(最终呈现的网页)这个过程要经历很多环节,所以可以在这些环节中的任意环节对性能进行优化。
在浏览器端,可以使用浏览器缓存,页面压缩,合理布局页面,减少Cookies传输来优化性能
CDN内容分发网络可以保证用户能从离自己最近的服务器中拿到自己想要的数据
应用服务器的本地缓存和分布式缓存可以极大地加快处理请求
异步操作可以使用户很快收到响应消息,而对应的处理可以放到消息队列里面,等待后续任务去处理
集群可以大大提高网站的处理能力
等等......
衡量一个网站有很多指标,通过测试这些指标是否达标来确定系统设计是否合理。
性能优异仅仅是一个网站最基本也是必备的条件。性能不达标,会直接使客户流失殆尽。

2.可用性

对于大型网站而言,服务器宕机是必不可少的事件。那么在服务器宕机的时候,网站能否正常运行则反应了这个网站的可用性怎么样,如果网站直接崩溃,说明网站的可用性很差。所以网站高可用性设计的目的是当服务器宕机的时候,网站依然可以正常运行!

3.伸缩性

用户访问规模的不断扩大会使网站面临前所未有的压力。而伸缩性正是解决这个问题的关键。伸缩性指的是不断向集群中加入服务器来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。如果网站的伸缩性架构设计的好,那么可以非常容易的向网站服务器中添加新的机器来解决问题。如果添加一台或者数台机器带来大量麻烦的工作,那说明这个网站的伸缩性架构设计的并不合理。
数据库做到大规模集群是比较难的。

4.扩展性

软件开发有一个原则,开闭原则,具体含义就是对扩展开发,对修改关闭。指的就是可以对系统进行扩展,增加新的功能,但是要尽量在不修改原来模块的前提下进行。
架构的扩展性和这个观点是类似甚至可以说是一致的。扩展性关注的是网站的功能性需求。网站短时间快速发展,功能不断扩展,如何设计网站架构能够快速适应新需求是扩展性架构设计的目的。
衡量网站扩展性好坏的主要标准是:在网站增加新的业务产品业务需求时,是否在不修改现有模块或者尽量少的修改现有模块的基础上把新的业务功能附加到网站系统中,如果可以,就说明网站的扩展性架构设计的非常合理

5.安全性

任何一个网站都需要安全的运行环境,所以任何一个网站的架构设计都必须要考虑网站安全架构,也就是如何保证网站不被恶意破坏,数据不会被恶意盗取。

你可能感兴趣的:(大型网站架构)