天天看点

云原生服务网格Envoy介绍

作者:SuperOps
云原生服务网格Envoy介绍

envoy

Envoy是什么?

Envoy 是一款开源的云原生代理(proxy)和通信总线(communication bus),由 Lyft 公司开发并维护。它旨在提供一个高性能、可扩展、可靠的服务代理,用于支持现代的微服务和云原生应用架构。

Envoy 的设计目标是实现以下特性:

  • 高性能和低延迟:Envoy 实现了多路复用和异步 I/O 等技术,可以处理大量并发请求,并提供低延迟的服务代理能力。
  • 可扩展性和灵活性:Envoy 提供了丰富的配置选项和插件机制,可以根据不同的应用场景和需求进行灵活的定制化配置。
  • 可观察性和可管理性:Envoy 提供了丰富的监控和管理功能,支持统计信息和日志的收集、可视化和分析。
  • 安全性和可靠性:Envoy 支持 SSL/TLS 加密、身份验证和访问控制等安全特性,可以提供可靠和安全的服务代理能力。

Envoy 的架构采用了插件式的设计,包括多个不同的组件,如网络层、过滤器、路由器等,这些组件可以根据需要进行配置和扩展。此外,Envoy 还支持多种不同的协议和数据格式,包括 HTTP、gRPC、MongoDB、MySQL 等。

Envoy 已经被广泛应用于生产环境中,包括 Lyft、Google、Salesforce、Apple 等知名企业。它也是 Istio、Knative、Consul 等多个开源项目的核心技术之一,为云原生应用架构提供了强大的服务代理和通信总线能力。

Envoy的架构

云原生服务网格Envoy介绍

envoy 架构

Envoy 的架构采用了高度可扩展和灵活的插件式设计,包括多个不同的组件,如网络层、过滤器、路由器等。下面是 Envoy 的主要组件和架构设计:

1. 网络层(Network Layer):Envoy 的网络层负责处理网络连接和数据传输,包括 TCP/IP 和 HTTP/2 等协议。Envoy 的网络层实现了多路复用和异步 I/O 等技术,可以实现高性能和低延迟的服务代理能力。

2. 过滤器(Filter):Envoy 的过滤器是其最核心的组件之一,用于实现各种不同的功能和特性,如路由、负载均衡、故障转移、认证、授权、限流等。Envoy 的过滤器可以实现不同的功能组合,形成完整的服务代理和通信总线能力。

3. 路由器(Router):Envoy 的路由器用于将传入的请求路由到不同的后端服务或负载均衡组,实现了灵活的流量控制和管理功能。

4. 配置管理器(Configuration Manager):Envoy 的配置管理器是一个动态的配置系统,可以实时更新和修改 Envoy 的配置,包括路由规则、过滤器等。这使得 Envoy 可以根据实际情况进行动态的调整和优化。

5. 监控和管理(Observability and Management):Envoy 提供了丰富的监控和管理功能,包括统计信息和日志的收集、可视化和分析,以及灰度发布、流量控制和故障转移等功能。

Envoy 的架构设计非常灵活和可扩展,可以通过插件和配置进行定制化,实现不同的服务代理和通信总线能力,为云原生应用架构提供了强大的支持。

Envoy的应用场景

Envoy 作为一个高性能、可扩展、可靠的服务代理和通信总线,可以适用于各种不同的应用场景。以下是 Envoy 的一些常见应用场景:

1. 微服务架构:Envoy 可以作为微服务架构中的核心组件,用于实现服务发现、负载均衡、流量控制、故障转移等功能,同时提供了可观察性和管理性能力,支持多种不同的协议和数据格式。

2. 云原生应用:Envoy 作为云原生应用的代理和通信总线,可以实现微服务之间的通信和协作,并提供了可观察性和管理性能力,支持多种不同的云原生技术和平台,如 Istio、Kubernetes、Docker 等。

3. API 网关:Envoy 可以作为 API 网关的代理和通信总线,用于实现 API 的路由、认证、授权、限流等功能,同时提供了可观察性和管理性能力,支持多种不同的协议和数据格式。

4. 数据中心网络:Envoy 可以作为数据中心网络的代理和通信总线,用于实现数据中心内部的服务代理和通信,支持多种不同的协议和数据格式,同时提供了可观察性和管理性能力。

5. 边缘计算:Envoy 可以作为边缘计算的代理和通信总线,用于实现边缘设备和云端服务之间的通信,同时提供了可观察性和管理性能力,支持多种不同的协议和数据格式。

Envoy 的应用场景非常广泛,可以适用于各种不同的服务代理和通信总线需求,为现代化的应用架构提供了强大的支持。

Envoy与微服务治理的关系

Envoy 在微服务治理中扮演了重要的角色,主要有以下几个方面的作用:

1. 服务发现和负载均衡:Envoy 可以与服务注册中心集成,实现服务的自动发现和注册,并根据负载均衡算法将请求路由到不同的服务实例。这样可以消除单点故障,提高系统的可用性和可扩展性。

2. 流量控制和故障转移:Envoy 可以对服务之间的流量进行控制和管理,支持限流、熔断、重试等功能,同时可以自动检测和恢复故障的服务实例,保证服务的可靠性和稳定性。

3. 安全认证和授权:Envoy 支持多种安全特性,如 SSL/TLS 加密、身份认证、访问控制等,可以保护微服务之间的通信安全,同时提供了灵活的认证和授权机制,可以根据不同的业务需求进行定制化配置。

4. 监控和可观察性:Envoy 提供了丰富的监控和可观察性能力,包括统计信息和日志的收集、可视化和分析,可以帮助运维人员快速发现和解决问题,同时也可以提供给开发人员有价值的反馈信息,用于优化和调整微服务的性能和质量。

总结

Envoy 在微服务治理中可以实现服务之间的自动化管理和控制,提高系统的可用性、可扩展性和安全性,同时也可以提供丰富的监控和可观察性能力,帮助运维人员和开发人员更好地管理和优化微服务架构。我在后续《微服务治理指南》里面也会介绍Envoy对于微服务治理的应用场景和解决的核心问题及其痛点。