开发者学堂课程【阿里云移动用户反馈系统使用教程:管理公网流量-SLB】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/767/detail/13483
管理公网流量-SLB
内容介绍:
一、负载均衡行业趋势与挑战
二、阿里云负载均衡 SLB 产品总体技术架构
三、阿里云负载均衡 SLB 典型部署方案
四、负载均衡 SLB 集群部署架构
五、阿里云负载均衡 SLB 性能
负载均衡 SLB 全称是 Server Load Balancing,是对多台云服务进行流量分发的负载均衡服务。
负载均衡可以通过流量分发,扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
一、负载均衡行业趋势与挑战
1、负载均衡云化趋势明显加速
当用户业务上云之后,负载均衡越来越多云方式部署,云提供商逐渐成为主要玩家,传统硬件厂商加速向云化转型,提供基于云化的解决方案。
2、5G/ IOT 等技术带来机遇与挑战
目前 5G/ IOT 发展迅速,从而催生更大的流量洪峰;底层通信协议的升级,将网络瓶颈转移至应用层; SLB 能够将流量分发到多台服务器,以便应对大流量冲击。
3、网络环境日益复杂安全性需求凸显
愈加复杂的网络环境、越来越深入的面向应用系统交付对安全提出了更高要求, SLB 在这方面也有很大的优势。
4、云原生:从流量入口到面向应用交付
越来越多企业将业务以云原生的方式进行部署、快速迭代。 SLB 可以面向云原生,基于 7 层高级特性加速企业应用快速交付能力,负载均衡从面向网络层引进到面向应用层。
二、阿里云负载均衡 SLB 产品总体技术架构
SLB 支持同城容灾,也就是多可用区容灾。为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地部署了多可用区,已实现同地域容灾。
当主可用区出现机房故障或不可用时,负载均衡仍有能力在非常短的时间内大约 30 秒中断,切换到另外一个被可用区恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。使用负载均衡时,可以将负载均衡部署,支持多可用区地域,以实现同城容灾。
此外,建议结合自身的应用需要,综合考虑后端服务器的部署。如果每个可用区添加(至少添加一台) ECS 实例,那么此种部署方式下的负载均衡的服务效率是最高的。
如图所示,在负载均衡实例下绑定不同可用区的 ECS 实例,正常情况下,用户访问流量将同时转发至主备可用区的 ECS 实例,当可用区 A 发生故障时,用户流量将只转发至被可用区的 ECS 实例。此种部署既可以避免因为单个可用区的故障而导致对外服务的不可用,也可以通过不同产品间的可用区的选择来降低延时。
三、阿里云负载均衡 SLB 典型部署方案
部署 SLB 有多种部署方案。首先是单 SLB 实例的高可用。为了向广大用户提供更稳定、更可靠的负载均衡服务,阿里云负载均衡已在大部分地域部署了多可用区,已实现同地域下的容灾。
当主可用区出现故障或不可用时,负载均衡有能力在非常短的时间内切换到备可用区并恢复服务;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。
除了单 SLB 的高可用还可以部署多 SLB 的高可用的方案。如果对可用性的要求特别高,负载均衡实例自身的可用性保障机制可能无法满足需求。
例如,当网络攻击或配置错误等情况下导致负载均衡实例不可用时,由于未出现可用区及故障,不会触发负载均衡实例的可用区切换。
此时,可以创建多个 SLB 实例,通过云解析对访问进行调度,或者通过全球负载均衡解决方案实现跨地的容灾备份,后端 ECS 的实例的高可用,负载均衡通过健康检查来判断后端 ECS 实例的可用性。健康检查机制提高了前端业务的整体可用性,避免了后端 ECS 异常对整体服务的影响。
四、负载均衡 SLB 集群部署架构
SLB 负载均衡实例采用急停不集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
其中,4 层负载均衡通过 LVS 加 Keepalived 的方式实现;7 层负载均衡通过 Tengine( Tengine 是淘宝网发起的 web 服务项目,在 Nginx 的基础上,针对有大量访问的网站需求进行了优化)实现。来自公网的请求通过等价多路径到达 LVS 集群, LVS 集群内的每台 LVS 通过主播报文会将会话同步到该集群其他的 LVS 上,从而实现 LVS 集群内的各集群间的会话同步。
同时 LVS 集群会对 Tengine 集群进行健康检查,将异常机器从 Tengine 集群移除,保证 7 层负载均衡的可用性。 SLB 支持 TCP 、 UDP 协议和 HTTP 、 HTTPS 协议。
当 TCP 和 UDP ,HTTPS 和 HTTP 协议的流量都需要经过 LVS 集群转发, LVS 集群内的每一台节点服务器均匀地分配海量访问请求,并且每一台节点服务器之间都会有会话同步策略,以保证可用。
如果相应的负载均衡实例服务端口使用的是 4 层协议,那么 LVS 集群中每个节点都会根据负载均衡实例、实例负载均衡策略,将其承载的服务请求按策略直接分发到后端的 ECS 服务器,如果相应的负载均衡实例服务端口使用的是7层 HTTP 协议,那么, LVS 集群内的每个节点会将其承载的服务请求均匀分发到 Tengine 集群, Tengine 集群内的每一个节点,再根据负载均衡策略将服务请求按策略最终分发到后端的 ECS 服务器。
如果相应的负载均衡实例服务端口使用的是 7 层 HTTPS 协议,与上述 HTTP 处理过程类似。差别是在按策略将服务请求最终分发到 ECS 服务前,先用 Key Server 进行证书验证以及数据包加解密前置操作。
五、阿里云负载均衡 SLB 性能
1、 SLB 采用 DPDK LVS,它较传统的 Kernel LVS 性能有大幅提升,集群吞吐可达到 160 Gbps,并发高达 2 亿,解决了 5G/ IOT 场景下超大并发的需求。
2、 SLB 还集成了 Intel QuickAssist Technology 硬解卡,他可以大幅提升 SLB 卸载性能。 SLB 不仅实现了可用区级高可用,还可以实现集群级别高可用,可以实现不同程度的容灾能力。