vlambda博客
学习文章列表

云网络浅析 - 负载均衡产品遇到的问题

云网络浅析 - 负载均衡产品遇到的问题

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方案。