Categories
程式開發

云原生时代的流量入口:Envoy Gateway


流量入口代理作为互联网系统的门户组件,具备众多选型:从老牌代理HAProxy、Nginx,到微服务API网关Kong、Zuul,再到容器化Ingress规范与实现,不同选型间功能、性能、可扩展性、适用场景参差不齐。当云原生时代大浪袭来,Envoy这一CNCF毕业数据面组件为更多人所知。那么,优秀“毕业生”Envoy能否成为云原生时代下流量入口标准组件?

背景 —— 流量入口的众多选型与场景

在互联网体系下,凡是需要对外暴露的系统几乎都需要网络代理:较早出现的HAProxy、Nginx至今仍在流行;进入微服务时代后,功能更丰富、管控能力更强的API网关又成为流量入口必备组件;在进入容器时代后,Kubernetes Ingress作为容器集群的入口,是容器时代微服务的流量入口代理标准。关于这三类典型的七层代理,核心能力对比如下:

云原生时代的流量入口:Envoy Gateway 3

从上述核心能力对比来看:

  • HAProxy&Nginx在具备基础路由功能基础上,性能、稳定性经历多年考验。Nginx的下游社区OpenResty提供了完善的Lua扩展能力,使得Nginx可以更广泛的应用与扩展,如API网关Kong即是基于Nginx+OpenResty实现。
  • API网关作为微服务对外API流量暴露的基础组件,提供比较丰富的功能和动态管控能力。
  • Ingress作为Kubernetes入口流量的标准规范,具体能力视实现方式而定。如基于Nginx的Ingress实现能力更接近于Nginx,Istio Ingress Gateway基于Envoy+Istio控制面实现,功能上更加丰富(本质上Istio Ingress Gateway能力上强于通常的Ingress实现,但未按照Ingress规范实现)。

原文链接:【https://www.infoq.cn/article/SF5sl4IlUtUxuED3Musl】。未经作者许可,禁止转载。