阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章-程序员宅基地

技术标签: 运维  测试  

 题目:阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章,结合《XXX需求征集系统》,分析如何增加相应的功能,提高系统的可用性和易用性,撰写一篇1500字左右的博客阐述你的观点

 

    在这一节课上,我们学习了系统质量属性其中的可用性和易用性。那么质量属性是什么呢,质量属性是高于对系统功能(即对系统能力、服务和行为)的基本的要求的。系统质量属性讲重点放在了可用性、可修改性、性能、安全性、可测试性和易用性。从设计师方面,系统质量属性一般存在三个问题:(1)为属性提供的定义并不是可操作的。(2)重点通常是一个特定的方面属于哪个质量属性。(3)每个属性团队都开发了其自己的词汇。

      今天我们就根据《大型网站技术架构:核心原理与案例分析》将重点放在可用性和易用性的学习讨论上以及将其方法和实发项目结合起来,来增强我们实际系统的可用性和易用性。

      先来了解一下可用性。可用性与系统故障及其相关后果有关。当系统不再提供其规范中所说明的服务时,就出现了系统故障。系统的用户(人或其他系统)可以观察到此类故障。系统可用性是系统正常运行的时间比例。一般将系统可用性定义为:α=平均正常工作时间/(平均正常工作时间+平均修复时间)。有两个著名的例子。2011年4月12日,亚马逊云计算服务EC2发生故障,其ESB服务不可用,故障持续了数天,最终还是有部分数据未能恢复。这一故障导致美国许多使用亚马逊服务的知名网站受到影响,并引发了人们对使用云计算安全性、可靠性的大规模讨论。2010年1月12日,百度被黑客攻击,其DNS域名被劫持,导致百度全站长达数小时不可访问。

   课下读这三章主要讲的是网站的可用性、伸缩性和可扩展性。

      高可用架构是万无一失的。要保证一个网站永远完全可用几乎是一件不可能完成的任务。我们通过一个神奇的数字9来度量网站可用性,采用故障分来考核网站可用性。可用性指标是网站架构设计的重要指标,网站可用性看得见,摸得着,跟技术、运营、相关各方的绩效考核息息相关。一个典型的网站设计遵循基本分层架构模型即应用层、服务层、数据层。应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储和访问。网站的可用性架构设计不但考虑实际的硬件故障引起的宕机,还要考虑网站升级发布引起的宕机。高可用的服务策略包括分级管理、超时设置、服务降级(关闭非核心服务)等。高可用的数据是最宝贵的资产,保证数据存储高可用的手段主要是数据备份和失效转换机制。数据备份可以实现数据完全的持久化,失效转换机制是为了保证系统可用。保证网站高可用,万无一失,是一个艰难的过程,还需要更多努力。

      对于我们的系统来说,友好的界面风格,简单便捷的操作,合理的结构布局,良好的提示是必要的,对提高易用性很是有帮助。表格的设计需要提供给使用者好的视觉效果,减少给操作者带来视觉疲劳,操作提示应易于理解,使用准确恰当的语言。三级菜单的实现算法要以时间复杂度为标准,显示快,无需等待。

      网站的伸缩性永无止境。所谓网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。要实现网站的可伸缩性,关键技术就在于如何构建良好的服务器集群。要达到良好的目标,就要求每次扩容和减少服务器时,对整个网站的影响是最小的。CAP原理就是选择强化分布式存储系统的可用性和伸缩性,而在某种程度上放弃一致性。CAP原理对于可伸缩的分布式系统设计具有重要意义,不恰当地迎合各种需求,可能会使设计进入两难境地,难以为继。我们的系统有大量的统计数据。我们的网站随时都有可能进行修改,比如发布新功能,这时就需要在服务器上关闭原有的应用,重新部署新的应用,整个过程要求不影响用户的使用。为了把对用户的影响降低到最小,通常使用发布脚本来完成发布。经过严格的测试,软件部署到服务器还是会出现问题,主要原因就是测试环境和线上环境并不相同,所以我们在网站发布时,要把测试通过的代码先发布到预发布机器上,确认系统没有问题后才正式发布。

     我们的系统面向的用户多,范围广,通过不断地向集群中添加服务器来增强整个集群的处理能力,这就是网站系统的伸缩性架构,网站以此手段不断提升自己的规模,这个演化过程总体来说是渐进式的。网站的伸缩性设计可分为两类,一类是根据功能进行物理分离实现伸缩、一类是单一功能通过集群实现伸缩。其中HTTP请求分发配置即负载均衡服务器,实现负载均衡的基础技术主要有HTTP重定向、DNS域名解析、反向代理、IP、数据链路层负载均衡。伸缩性和可用性、正确性、性能等耦合在一起。伸缩性是复杂的,没有通用的、完美的解决方案和产品,但有很多这方面的案例可供借鉴。一个具有良好伸缩性的网站,其设计总是走在业务发展的前面,在业务需要处理更多访问和处理之前,就已经做好了充分的准备,当业务需要时,只需要增加服务器并简单部署就可以了,技术团队便可轻松应对了。

     可扩展架构是随需而变的。有的网站可以随时发布,新功能随时快速上线,而有的必须规定发布日,究其原因,则依赖于网站的扩展性架构设计。扩展性和伸缩性不同。相比之下就发现上学期自己做的网站。。。。唉,学了mvc模式和三大框架后更加觉得自己做的差了,所谓越是无知越是看不清自己,越是广识越是觉得自己渺小就是这样吧。。。。

转载于:https://www.cnblogs.com/liying123/p/6559836.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30621919/article/details/95120758

智能推荐

将休眠镜像文件hiberfil.sys移动到D盘,可以减少C盘好几个G的空间占用_hiberfil.sys怎么转移到其他盘-程序员宅基地

文章浏览阅读4.4k次。4、如果,计算机\HKEY_LOCAL_MACHINE\SYSTEM目录下还有“ControlSet002”、“ControlSet003”……等类似的目录,也需要将其中的\Control\BackupRestore\FilesNotToBackup\Power Management”数值数据都改为“d:hiberfil.sys”。3、双击“PowerManagement”将数值数据“hiberfil.sys”添加新的路径改为“d:hiberfil.sys”。_hiberfil.sys怎么转移到其他盘

pd控制器matlab,基于MATLAB的PD控制器设计报告.doc-程序员宅基地

文章浏览阅读1.7k次。基于MATLAB的PD控制器设计报告MATLAB论文--基于控制系统的PID调节基于MATLAB的PID 控制器摘要:本论文主要研究PID控制器。PID控制是迄今为止最通用的控制方法,大多数反馈回路用该方法或其较小的变形来控制。PID控制器(亦称调节器)及其改进型因此成为工业过程控制中最常见的控制器 (至今在全世界过程控制中用的84%仍是纯PID调节器,若改进型包含在内则超过90%)。在PID控制..._matlab的pd控制器

二进制乘法运算-程序员宅基地

文章浏览阅读8.4k次,点赞2次,收藏15次。在回答本问题之前,先学习一些有关位运算的知识。(1) 常用的等式: -n=~(n-1)=~n+1(2) 获取整数n的二进制中最后一个1: n&~(n-1)或者n&(-n)。例如n=010100,则-n=101100,n&(-n)=000100。(3) 去掉整数n的二进制中最后一个1: n&(n-1)。例如n=010100,n-1=010011,则n&(n-1)=010000。注:对n为正数或者负数都适用。先看一个实例:1011*1010,因为二进制_二进制乘法

【转】【WPF】WPF样式(Style)—触发器-程序员宅基地

文章浏览阅读253次。样式(Styles)由三部分构成:设置器(Setter)、触发器(Triggers)、资源(Resources)。(1)触发器,让样式的使用更加准确、灵活和高效。(2)触发器(Triggers)主要分为三类,属性触发器(检查从属属性即WPF元素自身属性)、数据触发器(检查任意可绑定的属性)、事件触发器(用于监听事件)。属性触发器  检查从属属性的值,即WPF元素自身属性。比如按钮的..._wpf style.triggers 铃铛

YuYuYouEr Kinect SDK Wrapper v2.0.0.1版本发布_wrapper-2.0-程序员宅基地

文章浏览阅读1.5k次。官方网站:http://www.YuYuYouEr.cn官方QQ群:322609996C++ DLL插件已更新至2.0.0.0版本;Unity3D插件已更新至2.0.0.1版本;本版增加对Kinect V2硬件设备的支持,封装了Kinect for windows SDK v2.0-1409版本;并提供与Kinect V1设备完全兼容的DLL插件接口,大家可以根_wrapper-2.0

为什么不能在函数体内部初始化一个由extern关键字标记的变量?_extern 不能函数体内定义-程序员宅基地

文章浏览阅读1.9k次。函数体内部可以声明并且使用extern标记的变量,但是如果在函数体内定义一个extern变量,那么由于函数体内变量作用域仅限于函数体内的原因,将会导致出错。_extern 不能函数体内定义

随便推点

大数据技术原理与应用 第一篇 大数据基础_网中网 大数据技术应用基础-程序员宅基地

文章浏览阅读742次。大数据技术原理与应用 第一篇 大数据基础 中 大数据概述和大数据处理架构 知识点总结与理解_网中网 大数据技术应用基础

Docker/Podman使用入门---从容器构建镜像 & 提交镜像到服务器UCloud & dockerhub_podman commit-程序员宅基地

文章浏览阅读3k次。文章目录1.docker commit 提交镜像命令2.将镜像提交到UCloud服务器step1: 先在UCloud服务器上面,创建镜像仓库step2: 登录UCloud镜像仓库step3: 将本地镜像打标签step4: push镜像到服务器仓库step5:pull拉取镜像3.将镜像提交到dockerhubstep1:在dockerhub上创建镜像仓库step2:登录dockerhub镜像step3:给镜像打标签step4:上传镜像到docker hub1.docker commit 提交镜像命令_podman commit

软件设计文档国家标准—软件需求说明书(GB856T——88)_需求文档 gbt-程序员宅基地

文章浏览阅读5k次。上课所需内容。非常好用_需求文档 gbt

Weekly Idioms 2008-10-4_idoms 商业-程序员宅基地

文章浏览阅读1k次。 Crave for: want it badly. The thirsty man craved for water. 那个囗渴的人渴喝水。 I was craving for a drink. 我非常想喝点东西. at any rate: anyhow, anyway, in any case, in any event; at _idoms 商业

java-devbuild(开发环境的搭建1)_如何配置本地java的dev环境-程序员宅基地

文章浏览阅读448次。Centos7环境:Centos7设置ipvi /etc/sysconfig/network-scripts/ifcfg-ens33 onboot末尾onboot修改为yes表示启动网卡重启网络服务: sudo service network restart ip addr 进行查看 中文乱码:echo $LANGlocalelocale -a |grep ..._如何配置本地java的dev环境

APM: 分布式链路调用跟踪系统-程序员宅基地

文章浏览阅读650次。业界大部分的应用分布式追踪的原理源自 Google 的一篇 Dapper 系统的论文。Dapper是谷歌内部使用的分布式链路追踪系统,虽然没有开源,但是Google在其2010年发布的一篇..._apm分布式跟踪

推荐文章

热门文章

相关标签