网站架构核心要素

软件架构的核心5要素:性能、可用性、伸缩性、扩展性和安全性。

  1. 性能
性能是网站的一个重要指标。对于网站、应用app来说,现在的用户无法忍受一个响应缓慢的网站或者app。网站的打开缓慢将会严重导致用户流失,对于app来说可能甚至影响用户直接卸载app,很多时候好性能问题也是网站架构升级优化的触发器,因此性能是网站架构设计的一个重要设计指标。
衡量网站性能有一系列指标,有响应时间、TPS、系统性能计数器等。网站在长期运行期间,无法预知网站可能面临的访问压力,还必须保证系统在持续运行且访问压力不均匀的情况下保持稳定的性能。
优化网站性能的手段比较多,常见手段,一般从用户浏览器到数据库,影响用户请求的所有环节都可以进行性能优化。
  • 在浏览器客户端,可以通过浏览器缓存、使用页面压缩、合理布局、减少cookie请求、异步加载页面、多张图片合并一张,减少图片请求次数等等,还可以使用CDN,将网站的静态资源与动态资源分离,让用户从最近的网络服务商获取数据,也可以在网站机房部署反向代理缓存热点文件、数据。、
  • 在应用服务器端,可以使用服务器本地缓存和分布式缓存,通过内存存储热点数据。也可以通过消息队列异步处理任务。
  • 在代码层面,通过使用多线程、改善内存管理,减少线程间同步等手段优化。
  • 在数据库服务端,索引、缓存、sql优化、分表、分库等,如果遇到大数据量的,可以使用成熟的NOSQL技术。
2. 可用性
可用性就是网站有效访问的特性,网站的可用性非网站的功能需要,但是网站可用可有效保证用户的正常使用,尤其一些电商网站、金融交易平台、支付系统、银行系统等,可用性尤为重要,如果网站不可用,可能损失公司的收益。
网站高可用的主要手段是冗余加故障转移,应用部署在多台服务器上同时提供服务,数据存储在多台服务互相备份,任何一台机器脱机都不造成数据丢失,网站不可访问。网站除了运行时出现故障,网站的上线升级也是最容易引起故障,网站的开发过程发布过程也需一些工具软件保证质量,通过预发布验证、自动化测试、自动化发布、灰度发布等手段,减少上线升级引起故障。
网站可用性度量:
网站故障时间 = 故障恢复时间点 - 故障发现时间点
网站年度可用性指标 = (1 - 网站不可用时间 / 年度运营总时间) X 100 %
网站年度可用性指标业界经常有2个9、3个9、4个9,假如年度运营时间为365年,2个9基本可用,年度不可用时间小于87.6小时;3个9较可用,年度不用时间小于8.76小时;4个9网站具有自动恢复的高可用能力,年度不可用时间小于5分钟。

3.伸缩性
伸缩性指系统能够通过增加或者减少自身资源(机器、内存、CPU、带宽等)规模的方式增强或者减少自身计算处理的能力。如果这种增减成比列的,称为线性伸缩性。在网站架构中,通常利用集群的方式增加服务器数量、提高系统的整体处理事务吞吐能力,称为伸缩性。
衡量架构伸缩性的标准就是是否可以用多台服务器构建集群,是否容易向集群中添加新的机器,加入服务器后系统是否可以提供和原来的服务器无差别的服务,或者减少服务器数据量,用户量在一定访问量下降的条件下,系统同样能够提供和原来的服务无差别的服务。
网站的伸缩性设计有根据功能进行物理分离实现伸缩,或者单一功能通过集群实现伸缩性,前者采用不同的服务器提供不同的服务,不同的功能;后者集群内的多台服务器部署相同的服务,提供相同的功能。大多数网站都采用两者并用。

4.扩展性
扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或者提升的能力。在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,对需求变更更加敏捷快速响应。它是系统架构设计层面的开闭原则(对扩展开放,对修改关闭),架构设计考虑未来功能扩展,当系统增加新功能或者需求时,不需要对现有系统的结构和代码进行修改,因此经常听到高内聚低耦合,就是扩展性一种设计原则。对于创业公司来说,前期在探索业务模式,随时都有可能增加新功能,快速上线,对研发人员有极高的要求,如果有良好的扩展性设计尤为重要。
扩展性一般设计方式,采用模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性。将业务进行纵向拆分和横向拆分,纵向面向业务模块,横向面向基础技术模块,及可服用模块。

5.安全性
网站是面相互联网的开放,任何人任何地方都可以访问的,网站随时都有可能被恶意攻击和恶意访问,窃取网站重要的数据。衡量网站安全架构的标准就是针对现存和潜在的各种攻击与窃密手段,是否有可靠的应对策略。对于大多数公司都没有安全部门,对架构师来说安全的设计尤其重要。一些常见的网站窃取手段,例如:SQL注入、XSS跨站点脚本攻击、struts漏洞、DOSS攻击。作为架构师应具有安全性意识,在设计架构师面面考虑到。

个人公众号,谢谢关注,一起探讨技术:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值