云网络浅析 - 负载均衡产品遇到的问题
云网络浅析 - 负载均衡产品遇到的问题
1. 概述
负载均衡产品(即SLB),是比较重要的公有云产品。其基本架构是DNS+L7LB+L4LB+RS集群。对于租户,使用SLB,再配合调度,可以将自己的服务弹性扩容。下面重点讲述在做SLB的过程中遇到的疑难杂症。
2. 产品架构遇到的问题
SLB的业务、架构比较成熟,那怎么在众多产品中作出优势?
从单个用户的角度出发分析,功能方面:
http方面:http-1.1及以下、https等。这个nginx可以cover。
https双向认证,这个TC支持了,MT没有。
UDP L4LB,JS就不支持这个,说明他们有可能根本就没用L4LB。
调度算法,有静态调度(RR、WRR),动态调度(LC),还有会话保持调度(SIP、IP-hash、consistant-hash),最后这个是强需求。
重定向,http可以重定向,这个nginx可以搞,不过有些客户还需要https重定向。
从单个用户的角度出发分析,性能方面:
可用性,即不能302。
延时,延时太高肯定不行,参考3秒原则。
并发量。
从集群角度(多个租户)出发,性价比高的实现方案:如果受经费限制的话,最好做成共享带宽的模式,计费可以在外部实现。阿里、ucloud等使用listener的模式,计费在内部实现。集群肯定比主备方案好。
3. 组网遇到的问题
上述产品feature决定了组网。
都有哪些组网方案?一共6种,不过最终选择了主流的EIP+L4LB+L7LB+RS模式。这种优势在于1)扩容方便,2)用户操作方便。
L4LB使用哪种网络方案?fullnat。cip携带问题有现成方案。
已有EIP用户如何平滑升级到ELB?EIP加到L4LB上,计费在外网核心单独计费。
4. 研发遇到的问题
L4LB几个大问题:
session同步
配置统一管理
IPv6
QUIC
5. 测试遇到的问题
测试视角很重要。
性能测试?主要从用户视角考虑,测试的性能指标包括测试请求的平均响应时间、最大响应时间、50%请求的响应时间、99%请求的响应时间,通过这些指标来判断用户实际获得的性能体验如何。
压力测试?主要从运维视角考虑,测试的性能指标包括处理能力、各种硬件资源占用,通过这些指标来了解目前应用的处理能力,通过业务增长了解何时需要进行扩容。
6. 运营遇到的问题
如何排查问题?总结一个流程。例如,如果遇到用户反馈客户端出现不成功(3XX、4XX、5XX):
查看是L4LB还是L7LB问题。
检查L4LB健康状态。
检查URL-VIP映射是否正常,检查VIP-RS映射是否正常。
如何发现问题?压测、演练、监控。
监控哪些项目?
客户端监控,即自建或者借助客户反馈,MT自建
设备监控,即LB设备的状态监控,这个需要自己开发,走管理网
L4LB-L7LB监控,可以把L7LB看作RS,LVS标准方案。
L7LB-RS监控,nginx方案。