【服务网格架构】Envoy和类似的系统比较

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 【服务网格架构】Envoy和类似的系统比较

总的来说,我们相信Envoy为现代服务导向架构提供了独特且引人注目的功能。下面我们比较一下Envoy和其他相关的系统。尽管在任何特定的领域(边缘代理,软件负载平衡器,服务消息传递层),特使可能不像下面的一些解决方案那样具有丰富的功能,但是总体而言,没有其他解决方案将相同的整体特征提供到单个自包含的高性能套餐。


注:以下大部分项目正在积极开发中。因此有些信息可能会过时。如果是这种情况,请让我们知道,我们会解决它。


nginx

nginx是规范的现代Web服务器。它支持服务静态内容,HTTP L7反向代理负载均衡,HTTP / 2和许多其他功能。尽管我们认为大多数现代的面向服务的体系结构通常不使用它们,但nginx比Envoy更具有整体特性作为边缘反向代理。与nginx相比,Envoy提供了以下主要优势作为边缘代理:


  • 完整的HTTP / 2透明代理。Envoy支持下行和上行通信的HTTP / 2。nginx仅支持HTTP / 2用于下游连接。
  • 自由提供高级负载均衡。只有nginx plus(付费服务器)支持与Envoy类似的高级负载均衡功能。
  • 能够在边缘以及每个服务节点上运行相同的软件。许多基础设施运行nginx和haproxy的混合。从操作的角度来看,每一跳的单一代理解决方案都要简单得多。

HAProxy

haproxy是规范的现代软件负载平衡器。它也支持基本的HTTP反向代理功能。作为负载均衡器,Envoy提供了比haproxy更多的主要优势:


  • HTTP / 2支持。
  • 可插拔的架构。
  • 与远程服务发现服务集成。
  • 与远程全球限速服务集成。
  • 基本上更详细的统计。

AWS ELB

Amazon的ELB是用于EC2应用程序的服务发现和负载平衡的标准解决方案。Envoy提供了ELB作为负载平衡器和服务发现系统的以下主要优势:


  • 统计和日志记录(CloudWatch的统计数据是延迟的,并且极其缺乏细节,日志必须从S3中检索并且具有固定的格式)。
  • 稳定性(使用ELB时偶尔会出现不稳定情况,最终无法调试)。
  • 先进的负载平衡和节点之间的直接连接。Envoy网格通过可变的弹性硬件避免了额外的网络跳跃。负载平衡器可以做出更好的决策,并根据区域,金丝雀状态等收集更有趣的统计信息。负载平衡器还支持诸如重试等高级功能。
  • AWS最近发布了应用程序负载均衡器产品。本产品将HTTP / 2支持以及基本HTTP L7请求路由添加到多个后端群集。与Envoy相比,这个功能还是很小的,性能和稳定性是未知的,但显然AWS将来会继续在这个领域进行投资。


SmartStack

SmartStack是一个有趣的解决方案,它提供了额外的haproxy之上的服务发现和健康检查支持。在高层次上,SmartStack与Envoy(out of process架构,应用程序平台不可知论等)具有大部分相同的目标。作为负载平衡器和服务发现软件包,Envoy相对于SmartStack提供了以下主要优势:


  • 与haproxy相比,前面提到的所有优点。
  • 集成的服务发现和主动健康检查。Envoy在一个单一的高性能包中提供了一切。

Finagle

Finagle是Twitter的Scala / JVM服务,用于服务通信库。Twitter和许多其他公司主要使用基于JVM的体系结构。它具有许多与Envoy相同的功能,例如服务发现,负载平衡,过滤器等。与Finagle相比,Envoy作为负载平衡器和服务发现软件包提供了以下主要优势:


  • 通过分布式主动健康检查最终一致的服务发现。
  • 所有度量标准(内存消耗,CPU使用率和P99延迟属性)的性能级别都较好。
  • 超出流程和应用程序不可知的架构。特使与任何应用程序堆栈。
  • proxygen和wangle
  • proxygen是Facebook的高性能C ++ 11 HTTP代理库,写在一个叫做wangle的Finagle之类的C ++库之上。从代码角度来看,Envoy使用与proxygen大部分相同的技术来获得作为HTTP库/代理的高性能。除此之外,这两个项目并没有真正的可比性,因为Envoy是一个完整的包含大型功能的独立服务器,而不是每个项目都需要单独构建的库。


GRPC

gRPC是一种新的多平台消息传递系统。它使用IDL来描述RPC库,然后为各种不同的语言实现特定于应用程序的运行时。底层传输是HTTP / 2。尽管gRPC可能有将来实现许多类似于Envoy的特性(负载平衡等)的目标,但是到目前为止,各种运行时并不成熟,主要侧重于序列化/反序列化。我们认为gRPC是特使与竞争对手的伙伴。这里描述了Envoy如何与gRPC集成。


linkerd

linkerd是构建在Netty和Finagle(Scala / JVM)上的独立的开源RPC路由代理。linkerd提供了许多Finagle的功能,包括延迟感知负载平衡,连接池,断路,重试预算,截止日期,跟踪,细粒度检测以及用于请求级路由的流量路由层。linkerd提供了一个可插拔的服务发现接口(标准支持Consul和ZooKeeper以及Marathon和Kubernetes API)。


linkerd的内存和CPU要求明显高于Envoy的。与Envoy相比,linkerd提供了极简主义的配置语言,并且明确地不支持热重载,而是依靠动态配置和服务抽象。linkerd支持HTTP / 1.1,Thrift,ThriftMux,HTTP / 2(实验)和gRPC(实验)。


nghttp2

nghttp2是一个包含几个不同的东西的项目。它主要包含一个实现HTTP / 2协议的库(nghttp2)。Envoy使用这个库(顶部有一个非常薄的包装)来支持HTTP / 2。该项目还包含一个非常有用的负载测试工具(h2load)以及一个反向代理(nghttpx)。从比较的角度来看,Envoy与nghttpx最为相似。nghttpx是一个透明的HTTP / 1 HTTP / 2反向代理,支持TLS终止,正确支持gRPC代理以及其他各种功能。有了这个说法,我们认为nghttpx是各种代理功能的一个很好的例子,而不是一个强大的生产就绪解决方案。特使的重点更多地集中在可观察性,一般操作敏捷性和高级负载平衡功能上。

相关文章
|
1月前
|
人工智能 前端开发 编译器
【AI系统】LLVM 架构设计和原理
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
57 3
|
25天前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
146 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
19天前
|
机器学习/深度学习 算法 数据可视化
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
本文探讨了在量化交易中结合时序特征和静态特征的混合建模方法。通过整合堆叠稀疏降噪自编码器(SSDA)和基于LSTM的自编码器(LSTM-AE),构建了一个能够全面捕捉市场动态特性的交易系统。SSDA通过降噪技术提取股票数据的鲁棒表示,LSTM-AE则专注于捕捉市场的时序依赖关系。系统采用A2C算法进行强化学习,通过多维度的奖励计算机制,实现了在可接受的风险水平下最大化收益的目标。实验结果显示,该系统在不同波动特征的股票上表现出差异化的适应能力,特别是在存在明确市场趋势的情况下,决策准确性较高。
55 5
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
|
30天前
|
机器学习/深度学习 人工智能 并行计算
【AI系统】Kernel 层架构
推理引擎的Kernel层负责执行底层数学运算,如矩阵乘法、卷积等,直接影响推理速度与效率。它与Runtime层紧密配合,通过算法优化、内存布局调整、汇编优化及调度优化等手段,实现高性能计算。Kernel层针对不同硬件(如CPU、GPU)进行特定优化,支持NEON、AVX、CUDA等技术,确保在多种平台上高效运行。
84 32
|
30天前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
57 4
【AI系统】计算图优化架构
|
14天前
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。
|
20天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
63 3
|
18天前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
48 0
|
1月前
|
存储 人工智能 监控
【AI系统】推理系统架构
本文深入探讨了AI推理系统架构,特别是以NVIDIA Triton Inference Server为核心,涵盖推理、部署、服务化三大环节。Triton通过高性能、可扩展、多框架支持等特点,提供了一站式的模型服务解决方案。文章还介绍了模型预编排、推理引擎、返回与监控等功能,以及自定义Backend开发和模型生命周期管理的最佳实践,如金丝雀发布和回滚策略,旨在帮助构建高效、可靠的AI应用。
106 15
|
28天前
|
缓存 Kubernetes 容灾
如何基于服务网格构建高可用架构
分享如何利用服务网格构建更强更全面的高可用架构

热门文章

最新文章