ebay增强可用性的4个原则(4)

简介: ebay增强可用性的4个原则(4)

微信图片_20220123183311.jpg


规则3——避免系统串联

内容:减少以串联方式连接的组件数量。

场景:每次考虑添加组件的时候。

用法:删除不必要的组件、收起组件或添加多个并行组件以减少影响。

原因:串联组件受多重失败乘法效应的影响。

要点:避免向串联系统添加组件。如果有必要这样做,添加多个版本的组件,如果一个出故障,其他组件可以取代它的位置。

 

电路中的元件有多种连接方式。两种最简单的连接方式是串联和并联。串联电路的元件(可能是电容、电阻或其他元件)沿电路连接。在这种类型的电路中,电流流过每个元件,电阻和电压是在这个基础上产生的。图9-2显示了两个电路,一个有三个电阻,一个有三节电池,由此产生电阻和电压。请注意,在此图中,如果有任何元件出故障,如电阻烧掉,就会造成整个电路出故障。


微信图片_20220123183318.jpg



图
9-3显示了两个并联电路,上面的有三个电阻(和一个电源或电容),下面的有三节电池。在这个电路中,总电阻的倒数等于每个电阻的倒数之和。定义的总电阻必须小于最小电阻。请注意,电压不改变,但电池只贡献了一小部分的电流,这有延长其使用寿命的效果。请注意,在这些电路中,元件的故障不会导致故障整个电路出故障。


   系统架构和电路在许多方面有相似之处。像电路一样,系统也由不同组件组成,如Web和应用服务器、负载均衡器、数据库和网络设备,而且也可以并联或串联。让我们以一个有大流量的静态网站为例。你可能把相同的静态内容配置在10个Web服务器上以提供网站服务。要么使用负载均衡器引导流量,要么利用DNS通过为相关域名指定10个独立的IP地址。这些Web服务器像图9-3中的电池一样是并联的。Web服务器所处理的流量是总量的一小部分,如果一个Web服务器失败,该网站仍然可用,因为还有其他9个Web服务器。


作为一个更典型的串联架构例子,让我们添加一些层。如果以一个包括一个网络服务器、一个应用服务器和一个数据库服务器的标准的三层网站为例,我们会有一个串联的架构。要满足请求,Web服务器必须先接受请求,然后将其传递给应用服务器(它查询数据库)。应用服务器接收并处理数据后,将其发送回Web服务器,最终满足客户的请求。如果电路或架构中的任何组件发生故障,整个系统将出故障。


回到现实世界的架构。几乎总是有些组件需要串联。当考虑到负载均衡、Web和应用层、数据库、存储系统等时,为了保持系统运行需要许多组件。当然,添加并联组件,即使层之间串联,有助于降低由组件故障引起系统故障的总风险。如果只有一个Web服务器出故障,多台Web服务器可以分散流量负载并避免系统故障。对于网络与应用层,大多数人很容易接受这个概念。数据库和网络层的这个问题却被大多数人忽视。如果并联的Web和应用服务器都串联到单个数据库,就可能会有一个可以导致灾难性故障的组件。


关于网络组件,我们经常看到架构对并联服务器非常关注,但完全忽略网络设备,尤其是防火墙。流量通过防火墙、负载均衡器、防火墙、交换机,然后到Web服务器、应用服务器、数据库服务器,然后再一路返回。这个过程至少有7个串联的组件。如果已经有6个组件了,那么再增加一个有什么大不了的?


串联组件出故障的风险具有乘法效应。举个简单例子,如果我们有两个串联的服务器,各有99.9%的可用性或正常运行时间,那么该系统的总可用性不能大于99.9%×99.9%=99.8%。如果在串联中增加可用性为99.9%的第三个组件,我们就得到一个更低的总可用性99.9%×99.9%×99.9%=99.7%。放置的串联组件越多,系统的总可用性就越低。表9-4列出了一些简单的计算,来说明可用性降低,那么每月由此产生的停机时间增加。对串联的系统,每增加一个组件(可用性99.9%),每月停机时间就增加大约43分钟。然而,对并联系统,每增加一对组件(可用性99.9%),每月停机时间就减少大约26分钟。假如并联的每个组件有更低的可用性,这种改善效果甚至更加显著。


微信图片_20220123183359.jpg


就像今天的大多数电路一样,系统也远比简单的串联和并联更加复杂,对可用性的精确计算要比简单的例子复杂得多。然而,可以明确的是,串联组件显著增加了系统停机的风险。当然,可以通过减少串联组件或增加并联组件来降低风险。


微信图片_20220123183406.jpg

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
Kubernetes Java Nacos
nacos常见问题之通过helm方式部署设置开启授权认证功能如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
1398 0
|
前端开发
如何解决前端工程化中出现的版本冲突问题?
如何解决前端工程化中出现的版本冲突问题?
742 61
|
缓存 UED 开发者
【专栏:交互与用户体验篇】网页加载动画与用户等待体验
【4月更文挑战第30天】网页加载动画在现代设计中扮演重要角色,通过提供视觉反馈和分散注意力,改善用户体验。本文讨论了设计加载动画的原因和类型,如进度指示器、旋转指针、动态图标、模糊效果和文本提示,并提出了设计最佳实践:简洁相关、快速明确、考虑不同设备和避免误导。优化加载策略,如首屏内容优先加载和懒加载,也是提升用户体验的关键。设计时需注重实用性、品牌一致性和跨平台兼容性,确保在加载延迟时仍能给用户留下良好印象。
667 5
|
域名解析 网络协议 安全
DNS劫持
【8月更文挑战第19天】
4526 3
|
人工智能 大数据 关系型数据库
阿里云
阿里云成立于2009年,是全球领先的云计算和人工智能科技公司,致力于推动数字经济基础设施建设。目前在全球24个地域运营75个可用区,服务覆盖200多个国家和地区,在亚太市场排名第一,并跻身中国和全球云计算市场前三。通过自主研发的飞天大数据平台和CIPU技术,阿里云提供安全可靠的计算能力,其PolarDB、EDAS等产品展示了在信创领域的实力。公司在Gartner分析和商业智能平台魔力象限中连续四年获认可,并成为唯一入选的中国厂商,展现了其技术创新和服务能力的国际领先地位。阿里云通过技术和生态合作,助力各行各业实现数字化转型,推动社会智能化与可持续发展。
|
存储
【CSAPP】HW1 | 位向量的应用 Application of bit vectors | Adressing and Byte Ordering
【CSAPP】HW1 | 位向量的应用 Application of bit vectors | Adressing and Byte Ordering
390 0
【CSAPP】HW1 | 位向量的应用 Application of bit vectors | Adressing and Byte Ordering
|
人工智能 负载均衡 异构计算
灵骏可预期网络:Built for AI Infrastructure
灵骏可预期网络:Built for AI Infrastructure
灵骏可预期网络:Built for AI Infrastructure
|
存储 前端开发 JavaScript
基于前端技术原生HTML、JS、CSS 电子病历编辑器源码
基于前端技术原生HTML、JS、CSS 电子病历编辑器源码
956 0
|
关系型数据库 MySQL 数据库
Windows下MySQL修改Data存放路径
Windows下MySQL修改Data存放路径
1710 0
Windows下MySQL修改Data存放路径
|
IDE Serverless 开发工具
【1】天猫精灵开放实验平台实验—创建语音技能
【1】天猫精灵开放实验平台实验—创建语音技能
815 0
【1】天猫精灵开放实验平台实验—创建语音技能