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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: ebay增强可用性的4个原则(4)

微信图片_20220123183311.jpg


规则3——避免系统串联

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

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

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

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

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

 

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


微信图片_20220123183318.jpg



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


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


作为一个更典型的串联架构例子,让我们添加一些层。如果以一个包括一个网络服务器、一个应用服务器和一个数据库服务器的标准的三层网站为例,我们会有一个串联的架构。要满足请求,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

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3月前
|
弹性计算 运维 Serverless
传统架构在哪些方面存在缺陷?
【8月更文挑战第15天】传统架构在哪些方面存在缺陷?
|
3月前
|
Cloud Native
核心系统转型问题之平衡核心架构中的功能性与非功能性需求如何解决
核心系统转型问题之平衡核心架构中的功能性与非功能性需求如何解决
|
4月前
|
供应链 监控
软件架构一致性问题之软件供应链管理中降低维护成本如何解决
软件架构一致性问题之软件供应链管理中降低维护成本如何解决
47 4
|
4月前
|
数据库
交易链路设计原则&模式问题之在软件开发中,平衡业务需求和平台能力的边界,如何解决
交易链路设计原则&模式问题之在软件开发中,平衡业务需求和平台能力的边界,如何解决
|
4月前
交易链路设计原则&模式问题之在业务系统中,根据单一职责原则设计扩展点,如何解决
交易链路设计原则&模式问题之在业务系统中,根据单一职责原则设计扩展点,如何解决
|
6月前
|
供应链 安全 Java
软件架构一致性 —— 被忽视的研发成本
本文主要介绍了一些解决架构一致性问题的方法,以及我们应该如何去理解和应对部分不得不付出的成本。
|
区块链
关于DEFI模式系统详细方案技术开发逻辑讲解方案
关于DEFI模式系统详细方案技术开发逻辑讲解方案
|
存储 缓存 架构师
「可扩展性」可扩展性最佳实践:来自eBay的经验教训
「可扩展性」可扩展性最佳实践:来自eBay的经验教训
|
数据可视化 UED iOS开发
设计产品的十大可用性原则
尼尔森十大可用性原则是Jakob Nielsen提出,用来评价用户体验好不好的十个标准,虽然这是在web时代设计的标准,但依然可以给我们在做产品设计的时候做参考。
269 0
设计产品的十大可用性原则
|
存储 缓存 供应链
ebay增强可用性的4个原则(2)
ebay增强可用性的4个原则(2)
171 0
ebay增强可用性的4个原则(2)