Nginx 软件负载平衡器和硬件负载平衡器的选择

Nginx 软件负载平衡器和硬件负载平衡器的选择,nginx,load-balancing,haproxy,f5,Nginx,Load Balancing,Haproxy,F5,我想知道是否有任何情况下,人们更喜欢软件负载平衡器而不是硬件负载平衡器,反之亦然。我简单地介绍了f5、A10、Nginx和HAproxy,我能注意到的唯一细微差别是价格,除了略好一些的API文档等。所以我的问题是: 是否存在任何特定的使用案例,其中人们更喜欢软件负载平衡器而不是硬件负载平衡器,反之亦然? 请随意引用您的经验,其中您更喜欢其中一种,以及您做出该决定的理由 附言:我读过,没有发现那里的解释很有说服力。 编辑:关于我的用例,我需要很多负载均衡器来保护/平衡成吨的应用程序。因此,设计决

我想知道是否有任何情况下,人们更喜欢软件负载平衡器而不是硬件负载平衡器,反之亦然。我简单地介绍了f5、A10、Nginx和HAproxy,我能注意到的唯一细微差别是价格,除了略好一些的API文档等。

所以我的问题是:
是否存在任何特定的使用案例,其中人们更喜欢软件负载平衡器而不是硬件负载平衡器,反之亦然?

请随意引用您的经验,其中您更喜欢其中一种,以及您做出该决定的理由

附言:我读过,没有发现那里的解释很有说服力。


编辑:关于我的用例,我需要很多负载均衡器来保护/平衡成吨的应用程序。因此,设计决策应该是这样的,以应对其背后成倍增长的应用程序数量(应该易于扩展)。我不是在寻找10个或50个应用程序负载均衡器,而是在负载均衡器s解决方案背后寻找成千上万个应用程序。另外,如果你能特别指出H/W比S/W更重要的特性,或者反之亦然,那就太好了。例如,使用H/W负载平衡器FPGA服务,如果有超过Y个应用程序支持,则可以进行SSL卸载并获得X级性能增益。

接下来的问题是,您的应用程序和负载平衡器的要求是什么

通常,硬件LB具有固定的性能和硬件加速,以帮助SSL卸载。软件或虚拟性能可能会随着负载的增加而波动,然后您可能会遇到性能方面的错误,但部署和扩展更容易


其他需要研究的问题是,您是否需要根据内容修改或重定向流量?例如,重写或过滤流量?如果是,那么您可能需要一个完整的代理LB。

这个问题不会有一个单一的答案,因为它将始终取决于您的应用程序要求和您的合规义务。像F5、A10、Citrix这样的公司提供的服务远远超过了基本的负载平衡,并且提供了lb无法触及的功能

如果您只是在寻找lb服务,可能需要一些SSL桥接或卸载,这里有一些好处:

  • 硬件:由于使用FPGA服务,提供硬件加速的SSL卸载和批量加密。这还取决于您计划使用的密码套件。对于硬件,您通常将它们放在100个应用程序的前面,或者您正在使用它,因为它们可能是经过认证的防火墙,并且您需要额外的法规遵从性要求
  • 软件:如果您只需要基本LB,HAProxy/Nginx是基本LB服务甚至一些SSL服务的简单选择。如果你不付钱,支持是混合的,只能依靠社区的例子
  • 但是,如果您有混合环境,并且可能已经有一个供应商在使用,这可以帮助您做出决定。所有的硬件供应商都提供虚拟设备,并拥有自动化工具来帮助弹性环境,因此最终的结果是“您是否只需要LB服务,还是以后需要添加更多”

    F5/A10/Citrix ADC的in-cloud在单个平台上提供的功能仍然比必须启动隔离服务(想想防火墙/负载平衡/Web防火墙/全球负载平衡/欺诈预防/分析/访问管理)提供的功能更多

    于2017年6月21日更新:

    硬件:人们购买的硬件解决方案不是代理1或2个应用程序,而是在其数据中心(现场或并置)中代理100或200个,甚至1000或2000个应用程序。在这些情况下,它涉及的是lb之外的性能和服务。它包括安全需求和应用程序保护,而不是HAproxy和Nginx

    ADC供应商软件解决方案:您有3种选择,因为F5/A10/Citrix还销售虚拟设备,允许您在Azure/AWS/Google或VMWare中运行相同的软件。。。。你明白了。这变得非常独特,因为您可以将硬件放在同一位置,将虚拟设备放在云解决方案中,并将其放在同一供应商和管理员的奖金上,即同一个支持升级点上

    HAproxy/Nginx软件:这可以追溯到最初的声明,如果您只谈论LB解决方案,而价格是一个问题,那么这就是您的方法。与上述ADC/安全解决方案相比,这些功能集的限制更大,但它们做得很好。管理100个应用程序可能会变得有点麻烦,因此您必须更多地依赖您的开发团队,以确保他们能够隔离环境或真正擅长自动化

    最终的决定取决于您是否只需要负载平衡器?如果是,则为HAproxy/Nginx。如果你需要更多的功能来平衡负载和保护你的应用,那么ADC软件解决方案就是最好的选择

    如果您需要可靠的性能,并且无法证明为每台主机指定一个虚拟机来实现这一点是合理的,那么硬件ADC就是一条出路


    为了提高透明度,我在F5的DevCentral团队工作,所以我很想说硬件可以,但如果你不需要,就不要这样做。但这将取决于您的应用程序需求。

    谢谢您的详细回答。您是否建议软件负载平衡器仅在小规模环境中使用,或者主要在您刚开始使用应用程序时使用。一旦你开始获得高流量,你应该转向H/W负载平衡器?我编辑了我的问题,以便更准确地了解我的用例,请看一看。感谢你的回答,我编辑了我的问题,以便更准确地了解我的用例,请看一看。