本文原作者为Matt Klein,为envoy的工程师。发表于2017年12月。因原文英文写作和其它原因,本人觉得有必要分享。但翻译后期发现该文已于2018年1月被人翻译。思考再三,决定发布自己的翻译版本。原文较长,我分为三个部分便于大家阅读。此为第三篇

L7负载平衡的当前技术水平

当前技术上的代理之战是非常字面意义上的代理战争。 或 "代理人(软件)之战"。 Nginx plus、HAProx、, linkerd, Envoy毫无疑问竞相厮杀。 代理即服务/路由即服务SaaS供应商也参与其中。非常有趣的时刻!
 -  @copyconstruct
确实是的。最近几年L7负载均衡器/代理发展的如火如茶。这与分布式系统中对微服务架构的持续推动非常吻合。从根本上说,固有的网络故障使用得越频繁越难以进行高效维护。此外,自动扩展,容器调度程序等的兴起意味着在静态文件中配置静态IP的时代已经一去不返了。现代系统不仅更多地利用网络,还变得更加动态化,需要负载均衡器中的新功能。在本节中,我将简要总结现代L7负载平衡器中发展最快的领域。

协议支持

现代L7负载均衡器正在为许多不同的协议添加明确的支持。负载均衡器对应用流量的了解越多,它在可观察性输出,高级负载平衡和路由等方面就可以做得越出色。例如,在撰写本文时,Envoy明确支持对HTTP/1、HTTP/2、gRPC、Redis、MongoDB和DynamoDB的L7协议解析和路由。未来可能会添加更多协议,包括MySQL和Kafka。

动态配置

如上所述,分布式系统日益增强的动态化特性需要并行投入创建动态化和响应式控制系统。Istio就是这种系统的一个例子。

高级负载均衡

L7负载均衡器现在通常内置支持高级负载均衡功能,如超时,重试,速率限制,断路,阴影,缓冲,基于内容的路由等。

可视化

如上面关于通用负载均衡器功能的部分所述,日益动态化的系统变得越来越难以调试。强大的协议规格可观察性输出可能是现代L7负载平衡器提供的最重要的功能。现在,任何L7负载平衡解决方案几乎都需要输出数据统计,分布式跟踪和可自定义日志记录。

可扩展性

现代L7负载平衡器的用户通常希望轻松扩展它们以添加自定义功能。这可以通过编写加载到负载均衡器中的可插入过滤器来完成实现。许多负载均衡器也支持脚本,通常通过Lua来新增自定义功能。

容错

L7负载均衡器容错怎么样?通常,我们将L7负载均衡器视为可消耗和无状态的。使用商用软件可以轻松地水平缩放L7负载均衡器。此外,L7负载平衡器执行的处理和状态检测比L4复杂得多。尝试建立L7负载均衡器的HA配对在技术上是可行的,但比较困难。
总体而言,在L4和L7负载均衡域中,业界正逐渐从HA配对转向通过一致哈希融合的水平可扩展系统。

全局负载均衡和集中控制平台

网络负载均衡和代理技术3
图13:全局负载均衡
负载均衡的未来将越来越多地将各个负载均衡器视为商品设备。在我看来,真正的创新和商业机会都在控制层领域。图13显示了全局负载均衡系统的示例。在这个例子中,发生了一些不同的事情:

  • 每个挎斗车代理与三个不同区域(集群1,集群2和集群3)中的后端通信。
  • 如图所示,90%的流量被发送到区域C(集群3),而5%的流量被发送到区域A(集群1)和B(集群2).
  • 跨斗车(sidecar)代理和后端都向全局负载均衡器报告周期性状态。这允许全局负载均衡器做出考虑延迟,成本,负载,如发生故障等的决策。
  • 全局负载均衡周期性地为每个挎斗车代理配置当前路由信息。
    全局负载均衡器将越来越能够完成任何单个负载均衡器无法独立完成的复杂功能。例如:
  • 自动检测并绕过区域性故障。(如A或B、C发生故障)
  • 应用全局安全和路由策略。
  • 使用机器学习和神经网络检测和缓解包括DDoS×××在内的流量异常。
  • 提供集中的UI和可视化,使工程师能够聚合地理解和操作整个分布式系统。
    为了实现全局负载均衡,作为数据层的负载均衡器必须具有复杂的动态配置功能。

    从硬件到软件的演变

    到目前为止,这篇文章仅简要提到了硬件与软件,主要是在历史L4负载均衡器HA对的上下文中。这个领域的行业趋势是什么?
    一些推文总是带有一些调侃,但仍然总结了很多趋势,它们是:

  • 从历史上看,路由器和负载均衡器已被提供为极其昂贵的专有硬件。译注:如F5=负载均衡的观念在中国也屡见不鲜。
  • 越来越多的大多数专有L3 / L4网络设备正在被商用服务器硬件,商用NIC以及基于IPVS,DPDK和fd.io等框架构建的专用软件解决方案所取代。成本低于5千美元的现代数据中心机器可以使用Linux和使用DPDK编写的自定义用户空间应用程序轻松地使用非常小的数据包使80Gbps网卡饱和。与此同时,能够以惊人的总带宽和数据包速率进行ECMP路由的廉价和基本的路由器/交换机ASIC被打包为商品路由器。
  • 复杂的L7软件负载均衡器,如NGINX,HAProxy和Envoy,也在快速迭代并侵占之前的F5等供应商领域。因此,L7负载平衡器也在积极地转向商用软件解决方案。
  • 与此同时,整个行业向主要云提供商推动IaaS,CaaS和FaaS的转变意味着越来越多的工程师只需要了解物理网络的工作方式(这些是“黑魔法“和”我们不再需要知道关于“上面的部分”的事情。

    结论和负载均衡的未来

    总而言之,这篇文章的主要内容是:

  • 负载均衡器是现代分布式系统中的关键组件。
  • 业内主要定义了两种通用类型的负载均衡器:L4和L7。
  • L4和L7负载均衡器都与现代架构息息相关。
  • L4负载均衡器正朝着可水平扩展的分布式一致性哈希解决方案发展。
  • 由于动态微服务架构的流行,L7负载均衡器近期投入、发展潜力巨大。
  • 全局负载均衡及控制平台和数据平台之间的分离是负载均衡的未来方向,并且可以找到大多数未来的创新和商业机会。
  • 该行业正在积极地转向用于网络解决方案的商用OSS硬件和软件。我相信像F5这样的传统负载均衡供应商将首先被OSS软件和云供应商所取代。传统路由器/交换机供应商,如Arista / Cumulus /等。我认为在特定的系统集成周期有一定的市场,但最终也将会被公共云供应商和他们自己开发的物理网络取代。
    总的来说,我认为这是计算机网络中一个迷人的时刻!面向大多数系统的OSS和软件正在以惊人的速度迭代发展。此外,随着分布式系统通过“无服务器”化继续向动态化迈进,基础网络和负载均衡系统的复杂性将变的更加复杂。

全文完。

翻译优化:
1、去除掉与技术无关的内容
2、图片重构
3、省略部分扩展阅读
4、对原翻译进行了优化

网络负载均衡和代理技术3