负载均衡的前世今生——揭秘阿里云ALB Ingress云原生网关

简介: 随着云原生发展如火如荼,拥抱云原生成为业界共识,为了更好地支持云原生场景,ALB与ACK/ASK等云原生服务深度集成,阿里云推出了ALB Ingress——云原生Ingress网关。

初识负载均衡

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

vcg_VCG41N1288562960_RF.jpg


负载均衡的前世今生

一项技术的兴起,就是要看它的应用发展空间是多大的。那么网络负载均衡技术也是随着网络发展而兴起的。现在让我们回首,看看它的发展历史,同时,也是对网络的发展有一个侧面的认识。首先我们要弄清楚负载均衡从何而来,在什么基础上才被研发出来的。  

vcg_VCG41N1206953099_RF.jpg

网络负载均衡的诞生

1996年,由美国华盛顿大学的几个学生创立了F5公司,一个新的网络负载均衡企业诞生了。F5为何会选择网络负载均衡作为创业点呢?根据JohnMcAdam介绍,Internet的规模每一百天就会增长一倍,网络应用流量也越来越大。网络的各个核心部分随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的需求。于是,网络负载均衡机制应运而生,这是一个巨大的市场机会。

vcg_VCG41163521404_RF.jpg

互联网泡沫带来的挑战和机遇

网络负载均衡的机会在于网络应用的扩张,网络流量的增大,所以,它非常依赖于网络的发展。然而,在2000年里,当互联网的泡沫破裂时,所有的网络负载均衡厂商都面临了生存的考验。因此各大厂商将业务重心从互联网转移到大企业方面,专门针对电信、银行,以及联邦政府等大企业做网络负载均衡。此时的负载均衡聚焦于四层网络负载均衡技术。2003年非典爆发,这是一个灾难,然而,却是互联网的发展机会。网上看新闻、网上定餐、电话问候等等,网络应用快速发展起来。在全球市场上,众多的企业也从互联网的泡沫经济中走出来,开始走向理性化的发展方向。在前面一轮的基础设施建设的基础上,开始更加重视增值业务/数据业务的建设工作。此外,互联网泡沫时代所引导的客户经济,也在这个时间开始体现出了真正的经济效益,各种增值业务如网上银行、电信运营商的短信增值业务,也在这个时期开始蓬勃发展,并产生出了巨大的经济效益,接踵而至的就是各种各样的网络应用流量瓶颈问题开始凸显,网络游戏这个典型的互联网经济在这个时候也开始进入爆发式增长阶段。此外,加上国内的电信、网通南北分拆,导致南北互通问题,这导致不少企业的网络流量瓶颈问题更显突出。这种种问题,并不是单纯升级传统的路由、交换设备而能解决的。而网络负载均衡设备正好能解决这些问题。在这个时期,包括F5、Netscaler在内的网络负载均衡设备厂商,都得到了快速的发展,提供了针对网络访问、数据中心同步访问、远程办公、应用防火墙等多种为了提升关键业务访问效率的解决方案。

vcg_918124550348079104_RF.jpeg

互联网快速发展,负载均衡面向应用交付

从2006年开始,国内股市开始火爆起来,随着上交所、深交所的股票交易量不断创新高,证券交易的"堵单"现象越来越严重。此外,企业电子商务的网络应用越来越多,而彩信应用的推广,对网络带宽也有了新的要求;此时,国内视频网站开始纷纷出现,流媒体形成的巨大访问量,需要提供更高的网络流量处理能力,对于四层负载均衡交换机的压力会更大。在这种情况下,普通的负载均衡设备已经难以满足网络应用流量增长的需求。此时,以应用为导向的方案越来越明显了,综合多种技术手段的需求越来越强。我们可以这样形象地理解:基于网络二层、三层的是路由交换,而基于网络七层的则是"应用交换",应用交付是完全基于网络应用的系统解决方案,它将关键应用与基础网络设备关联起来。网络负载均衡"L4-7LoadBalance"和应用交付"AdvancedADC"是两个独立的设备市场。其中,网络负载均衡"L4-7LoadBalance"指具有传统的网络负载均衡机制的设备;而"AdvancedADC"则是传统的网络负载均衡的升级、扩展,它是一种综合的交付平台设备,其综合了负载平衡、TCP优化管理、链接管理、SSLVPN、压缩优化、智能网络地址转换、高级路由、智能端口镜像等各种技术手段的综合平台。事实证明,综合了多种交付手段的应用交付设备(包括有L4-7LoadBalance功能)俨然成为了主流的技术,更符合企业级用户多样化的流量业务需求。

vcg_VCG211288551431_RF.jpeg



流量为王时代,负载均衡拥抱云原生

随着云原生发展如火如荼,拥抱云原生成为业界共识,为了更好地支持云原生场景,ALB与ACK/ASK等云原生服务深度集成,阿里云推出了ALB Ingress——云原生Ingress网关。

image.png


ALB Ingress 技术原理

我们知道Kubernetes集群通过Ingress可以把集群外部的流量,路由到集群内部的Service,以此实现七层负载均衡功能。Ingress工作在7层,为Service做业务选路。

image.png


阿里云ACK/ASK等Kubernetes产品,可以借助云原生的应用型负载均衡产品ALB,把集群外部流量路由到集群内部的Service,实现七层负载均衡功能。此时K8S集群中部署了ALB Ingress Controller,负责监听API Server中AlbConfig/Ingress/Service等资源的变化,动态地转换为ALB所需的配置。

image.png

ALB基于洛神云网络平台,具备超大规模、超强性能和开放可编程等特点。通过多级负载和多级调度,单实例支持100w QPS;通过软硬件一体化和硬件加密卡,具备超强转发性能;通过自动弹性让运维更简单,SLA高达99.995%;通过自定义转发平台,提供丰富的高级路由特性。

image.png


ALB Ingress 使用简介

ALB Ingress与云原生服务做了深度集成,在具备丰富功能的同时也保证了易用性,在ACK/ASK中只需以下操作即可使用ALB Ingress网关(详细可见官网文档):

image.png

ALB Ingress在兼容K8S原生功能的基础上,通过AlbConfig CRD和Ingress注解项,还提供了丰富的高级特性(详细见官网文档)。用户通过AlbConfig CRD,可以方便地在K8S中配置ALB的实例和监听;通过Ingress注解项,可以方便地在K8S中配置ALB的转发规则和服务器组。ALB和K8S中资源的映射如下:

image.png



ALB Ingress 优势

阿里云ACK/ASK等Kubernetes产品中,支持使用Nginx Ingress和ALB Ingress。Nginx Ingress需要用户自行运维,一般用于用户对网关定制有强烈需求的场景。ALB Ingress为全托管模式,具备超大容量、自动弹性、高可靠和免运维等特性,提供更强大的Ingress流量管理能力。我们从以下几个维度来看看它们之间的差异:

image.png


在用户实际使用过程中,我们发现在一些场景下,ALB Ingress相比Nginx Ingress具有明显的优势。


长连接场景:长连接适用于交互频繁的业务场景,如物联网IOT、互联网金融和在线游戏等。当用户进行配置变更时,Nginx Ingress由于需要Reload Nginx进程,会导致长连接闪断,这对有些应用来说是不可接受的。以下是Nginx Ingress和ALB Ingress在长连接场景下的对比测试,可以看到Nginx存在读写失败,ALB无异常。

image.png


高QPS场景:互联网业务往往具有高QPS的特点,比如预期内的大促活动和突发的热点事件。以下是我们打满单台Nginx和ALB单个VIP时的测试数据。可以看到一方面ALB的处理延迟要比Nginx的低。另一方面Nginx在处理HTTPS短连接时由于没有使用硬件加速卡,单机性能较低,高QPS下需要较多机器;虽然ALB单个VIP的QPS限制为5万左右,但是ALB支持自动弹性,高QPS时会自动弹出更多VIP,通过一个ALB实例即可支持百万QPS。

image.png

高并发连接场景:物联网业务由于终端设备数量大,往往具有高并发连接的特点。ALB Ingress基于洛神云网络平台,支持对用户session进行收敛,单个ALB实例支持千万级连接数;Nginx Ingress需要用户自行运维,单台设备支持的session数有限,即使使用网络增强型虚拟机,依然存在容量风险,需要维护大量设备。


业务存在峰谷的场景:费用方面ALB也存在优势,特别是对于有波峰波谷的业务,比如电商和游戏。因为ALB按量计费,波谷期间消耗的LCU少,且支持自动弹性,用户无需关注和应对自身业务流量模型。而Nginx在波谷期间往往有闲置成本,用户需要根据业务流量调整机器到合适的数量和规格。另外考虑到容灾需要,Nginx通常还需要有资源buffer,这些都会产生额外的成本。

image.png

image.png


ALB Ingress 应用场景

ALB Ingress是阿里云官方提供的云原生Ingress网关,适用于以下K8S环境:

· 阿里云容器服务ACK(包括专有版和托管版)

· 阿里云Serverless容器集群ASK

· 阿里云上自建K8S集群(ALB Ingress Controller已集   成到开源版CCM)

ALB Ingress由于具备超大容量、自动弹性、功能丰富、高可靠、免运维等特性,加上前文介绍的优势,自发布以来吸引了多个行业的客户,覆盖多种业务场景,以下是几个常见的应用场景:

image.png


结束语

最后我们来做个小结。ALB Ingress是阿里云官方推出的云原生Ingress网关,基于洛神云网络平台,具备超大容量、自动弹性、功能丰富、免运维、高可靠等特点,在特定场景下相比Nginx Ingress有明显优势,适用于阿里云ACK/ASK和自建K8S环境,覆盖多种业务场景。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
弹性计算 负载均衡 网络协议
阿里云SLB深度解析:从流量分发到架构优化的技术实践
本文深入探讨了阿里云负载均衡服务(SLB)的核心技术与应用场景,从流量分配到架构创新全面解析其价值。SLB不仅是简单的流量分发工具,更是支撑高并发、保障系统稳定性的智能中枢。文章涵盖四层与七层负载均衡原理、弹性伸缩引擎、智能DNS解析等核心技术,并结合电商大促、微服务灰度发布等实战场景提供实施指南。同时,针对性能调优与安全防护,分享连接复用优化、DDoS防御及零信任架构集成的实践经验,助力企业构建面向未来的弹性架构。
1190 76
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全面增强
云原生应用网关进阶:阿里云网络ALB Ingress 全面增强
626 6
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
1847 25
|
存储 弹性计算 负载均衡
活动实践 | ALB 实现跨地域负载均衡
本方案通过阿里云的云企业网(CEN)、转发路由器(TR)、专有网络(VPC)、云服务器(ECS)和应用型负载均衡(ALB),实现跨地域的应用负载均衡。它扩展了系统的吞吐能力,提升了可用性和安全性。用户可通过资源编排服务(ROS)一键部署,并进行负载测试验证。清理资源也简便快捷。
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
1345 9
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
550 2
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
532 21
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
1198 3
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
1415 4
解决nginx配置负载均衡时invalid host in upstream报错
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
583 1

热门文章

最新文章

相关产品

  • 负载均衡