题目:阅读《大型网站技术架构:核心原理与案例分析》第5、6、七章,结合《XXX需求征集系统》,分析如何增长相应的功能,提升系统的可用性和易用性,撰写一篇1500字左右的博客阐述你的观点算法
在这一节课上,咱们学习了系统质量属性其中的可用性和易用性。那么质量属性是什么呢,质量属性是高于对系统功能(即对系统能力、服务和行为)的基本的要求的。系统质量属性讲重点放在了可用性、可修改性、性能、安全性、可测试性和易用性。从设计师方面,系统质量属性通常存在三个问题:(1)为属性提供的定义并非可操做的。(2)重点一般是一个特定的方面属于哪一个质量属性。(3)每一个属性团队都开发了其本身的词汇。安全
今天咱们就根据《大型网站技术架构:核心原理与案例分析》将重点放在可用性和易用性的学习讨论上以及将其方法和实发项目结合起来,来加强咱们实际系统的可用性和易用性。服务器
先来了解一下可用性。可用性与系统故障及其相关后果有关。当系统再也不提供其规范中所说明的服务时,就出现了系统故障。系统的用户(人或其余系统)能够观察到此类故障。系统可用性是系统正常运行的时间比例。通常将系统可用性定义为:α=平均正常工做时间/(平均正常工做时间+平均修复时间)。有两个著名的例子。2011年4月12日,亚马逊云计算服务EC2发生故障,其ESB服务不可用,故障持续了数天,最终仍是有部分数据未能恢复。这一故障致使美国许多使用亚马逊服务的知名网站受到影响,并引起了人们对使用云计算安全性、可靠性的大规模讨论。2010年1月12日,百度被黑客攻击,其DNS域名被劫持,致使百度全站长达数小时不可访问。架构
课下读这三章主要讲的是网站的可用性、伸缩性和可扩展性。mvc
高可用架构是万无一失的。要保证一个网站永远彻底可用几乎是一件不可能完成的任务。咱们经过一个神奇的数字9来度量网站可用性,采用故障分来考核网站可用性。可用性指标是网站架构设计的重要指标,网站可用性看得见,摸得着,跟技术、运营、相关各方的绩效考核息息相关。一个典型的网站设计遵循基本分层架构模型即应用层、服务层、数据层。应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储和访问。网站的可用性架构设计不但考虑实际的硬件故障引发的宕机,还要考虑网站升级发布引发的宕机。高可用的服务策略包括分级管理、超时设置、服务降级(关闭非核心服务)等。高可用的数据是最宝贵的资产,保证数据存储高可用的手段主要是数据备份和失效转换机制。数据备份能够实现数据彻底的持久化,失效转换机制是为了保证系统可用。保证网站高可用,万无一失,是一个艰难的过程,还须要更多努力。负载均衡
对于咱们的系统来讲,友好的界面风格,简单便捷的操做,合理的结构布局,良好的提示是必要的,对提升易用性非常有帮助。表格的设计须要提供给使用者好的视觉效果,减小给操做者带来视觉疲劳,操做提示应易于理解,使用准确恰当的语言。三级菜单的实现算法要以时间复杂度为标准,显示快,无需等待。框架
网站的伸缩性永无止境。所谓网站的伸缩性,指不须要改变网站的软硬件设计,仅仅经过改变部署的服务器数量就能够扩大或者缩小网站的服务处理能力。要实现网站的可伸缩性,关键技术就在于如何构建良好的服务器集群。要达到良好的目标,就要求每次扩容和减小服务器时,对整个网站的影响是最小的。CAP原理就是选择强化分布式存储系统的可用性和伸缩性,而在某种程度上放弃一致性。CAP原理对于可伸缩的分布式系统设计具备重要意义,不恰当地迎合各类需求,可能会使设计进入两难境地,难觉得继。咱们的系统有大量的统计数据。咱们的网站随时都有可能进行修改,好比发布新功能,这时就须要在服务器上关闭原有的应用,从新部署新的应用,整个过程要求不影响用户的使用。为了把对用户的影响下降到最小,一般使用发布脚原本完成发布。通过严格的测试,软件部署到服务器仍是会出现问题,主要缘由就是测试环境和线上环境并不相同,因此咱们在网站发布时,要把测试经过的代码先发布到预发布机器上,确认系统没有问题后才正式发布。分布式
咱们的系统面向的用户多,范围广,经过不断地向集群中添加服务器来加强整个集群的处理能力,这就是网站系统的伸缩性架构,网站以此手段不断提高本身的规模,这个演化过程整体来讲是渐进式的。网站的伸缩性设计可分为两类,一类是根据功能进行物理分离实现伸缩、一类是单一功能经过集群实现伸缩。其中HTTP请求分发配置即负载均衡服务器,实现负载均衡的基础技术主要有HTTP重定向、DNS域名解析、反向代理、IP、数据链路层负载均衡。伸缩性和可用性、正确性、性能等耦合在一块儿。伸缩性是复杂的,没有通用的、完美的解决方案和产品,但有不少这方面的案例可供借鉴。一个具备良好伸缩性的网站,其设计老是走在业务发展的前面,在业务须要处理更多访问和处理以前,就已经作好了充分的准备,当业务须要时,只须要增长服务器并简单部署就能够了,技术团队即可轻松应对了。布局
可扩展架构是随需而变的。有的网站能够随时发布,新功能随时快速上线,而有的必须规定发布日,究其缘由,则依赖于网站的扩展性架构设计。扩展性和伸缩性不一样。相比之下就发现上学期本身作的网站。。。。唉,学了mvc模式和三大框架后更加以为本身作的差了,所谓越是无知越是看不清本身,越是广识越是以为本身眇小就是这样吧。。。。性能