实现高可用性需要回答的两个问题

F5生态系统 | 2020年5月26日

消费者和员工突然转向数字化体验,对运营造成的最大影响或许是可用性。随着员工从办公室转为居家办公,相当一部分组织确实难以顺利实现远程访问。但最终只有部分员工居家办公,而所有人却突然都要依赖数字化方式来满足日常生活需求。

请看Nokia的调查结果。该公司报告称,“2020年3月,美国部分网络的上行流量”较疫情前水平“增长了30%”。再看这组数据:4月第二周的交易量增长了72%(页面浏览量增长了29%)。

数字体验需求正在增长。对用户而言,没有什么比应用或网站无法加载更令人沮丧。坦率地说,对运营人员而言,也没有什么比应用或网站无法加载更令人沮丧。

实现高可用性并非只需在数据路径中加入负载均衡器。这固然是其中一环,但要确保应用或网站持续可用,还需要采取其他措施。

首先,需要回答两个并不简单的问题:

  • 如何在服务器之间分配流量,以实现高可用性?
  • 需要进行何种级别的运行状况检查,才能正确验证服务器的可用性?

乍看之下,这些问题似乎很简单,但实际并非如此。要回答这些问题,需要充分了解应用及其基础设施。

那就开始吧。

如何在服务器之间分配流量以实现高可用性?

这个问题实际上是在探讨应使用哪种合适的负载均衡算法,因为算法决定了如何在资源(服务器)之间分配流量(请求)。具体选择取决于多种因素,首先要考虑应用架构和使用模式。

如果要让传统应用(单体应用、客户端-服务器应用、三层Web应用)实现高可用,就必须从完全不同的角度理解使用模式。

这是因为所有业务逻辑都由一台后端“服务器”负责执行。登录?订购产品?浏览目录?用的都是同一台“服务器”。您可能会认为,只需使用轮询之类的简单算法来分配流量即可。其实不然。每项业务功能对计算、内存、网络和数据都有不同的要求,因此会给“服务器”带来不同的负载。只要将过多资源密集型请求定向到单个“服务器”实例,它很快就会不堪重负。

要优化请求分配并确保传统应用的可用性,较为有效的方法是采用基于最少连接数的算法。该算法会根据当前打开的连接数,将负载分配到各个“服务器”实例。之所以有效,是因为资源密集型请求的处理时间更长,连接也会因此保持活动状态。将请求定向到连接数较少的“服务器”,更有助于维持所有服务器的可用性。

对于现代(基于微服务的)应用,这个问题更容易回答。这是因为现代应用已拆分为可独立扩展的业务功能。仍建议使用基于最少连接数的算法,因为针对同一功能的不同请求可能消耗不同数量的资源。不过,现代应用架构本身就能自然地平衡流量,因此几乎任何算法都有助于保持所有“服务器”可用。

关于可用性,有一点很有意思(至少我这么认为):知道如何分发请求只是成功的一半。遗憾的是,另一半并不是什么红蓝激光对决,而是要能够了解应用的运行状况。

要正确验证服务器的可用性,需要进行何种级别的运行状况检查?

这里本该插入我关于可观测性*的长篇论述,但为了简洁,也为了不让您抓狂,我就这样概括一下:

如果使用“应用可用性”以外的任何指标来判断应用状态,就会危及高可用性。这是因为其他可观测指标都无法反映应用本身的情况。虽然网络、传输和平台都需要保持可用,但在确认应用已准备好接收请求之前,向其发送流量可能会引发问题。

可观测性的四个组成部分都很重要。毕竟,如果网络连接中断,其他部分也就失去了意义。因此,需要密切关注并检查所有这四项指标。无论应用采用何种架构,所有应用都依赖网络层、传输层和平台层。架构的影响主要体现在应用层,因为应用架构可能会限制判断应用是否正常运行的方式。

在开发过程中,应始终要求提供对应用进行“运行状况检查”的方法。无论是通过API还是HTTP请求,专用的“运行状况检查”都能让开发和运维人员轻松验证应用是否正常运行。检查功能还可以验证与数据源或合作伙伴API等外部资源的连接。由于其中任何组件发生故障都可能导致应用在用户看来不可用或无响应,因此务必验证所有必需组件的可用性。

实现高可用性比想象中更难

营销资料常常让人以为,实现高可用性只需复制一台服务器,再在前面部署一个负载均衡器即可。但实际上,要确保应用具备高可用性,必须进行周密的评估、测量和准备。这不仅要确保各个实例可用,还要确保它们依赖的所有应用均可用,并合理分配请求,避免任何单个实例过载。

为确保应用实现高可用性而付出的额外努力,能够改善客户体验,并减少深夜因应用停机而接到的紧急电话。

* 其实,我并没有写过关于可观测性的论文。不过,如果写过,这里就是插入论文内容的位置。

分享
标签: 2020

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。