阅读笔记大型网站技术架构02
软件架构需要考虑具体的功能模块以及非功能的设计与决策。系统的各个重要组成部分及其关系构成了系统的架构,这些组成部分可以是具体的功能模块,也可以是非功能的设计与决策,他们相互关系组成一个整体,共同构成了软件系统的架构。一般来说,除了当前的系统功能需求外,软件架构还需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构元素,架构设计过程中需要平衡这5个元素之间的关系以实现需求和架构目标,也可以通过考察这些架构要素来衡量一个软件架构设计的优劣,判断其是否满足期望。性能是网站的一个重要指标,用户是无法忍受一个响应缓慢的网站的。性能可以通过Web前端优化,应用服务器优化,存储服务器优化等方式优化。可用性,对于网站,网站服务器不可用是一个重大的事故,因此网站必须达到高可用目标才行,即当服务器宕机时,服务或者应用依然可用。网站高可用主要通过冗余来实现,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份,任何一台服务器宕机都不会影响应用的整体可用,也不会导致数据丢失。伸缩性,指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。网站的扩展性架构直接关注网站的功能需求,衡量网站扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响。网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。
对于网站的高性能架构这一章的阅读,我学习到了性能、可用性、伸缩性、扩展性和安全性等网站架构中最核心的几个要素。虽然这些都是理论知识,但是随着我以后接触到的项目越来越多,我相信我会逐渐把这些理论应用于实践的。