作者:耿蕾蕾(如葑):阿里云研发工程师,从 2020 年 5 月负责 Envoy Gateway 的构建到推出 3.0,作为技能负责人主导了整个演进进程,在云原生网关领域有着丰富的实践。

最近阅读 《Envoy Gateway 来了》这篇文章,深感 Envoy 强壮的可扩展性和根据 Envoy Gateway 带来的易用性,在 K8s 架构下,Envoy 重新界说了网关的定位和才能,被誉为云原生网关,乃至被称之为下一代网关。阿里巴巴早在2018年就启动了下一代网关的探究之路,本文将对这个探究历程做一个简略介绍。

阿里巴巴早在 2018 年,就敞开了云原生上云的前奏,将容器、服务网格作为核心技能点进行演进,并测验阿里巴巴和蚂蚁经过这次技能演进,来统一两边的中间件技能栈,让事务更聚焦事务开发,屏蔽底层分布式复杂度。作为服务网格一个重要方向,咱们敞开了下一代网关的探究之路。

Envoy Gateway 1.0(孵化期)

上云进程中,咱们希望统一应用架构技能栈,可是蚂蚁和阿里巴巴的 RPC 协议不同,存在互调链路长、协议转化耗费大、Tengine Reload 访问有损(接入收效快就需要不断 reload 有损,如果控制 reload 影响,就要减少 reload 次数,接入服务收效慢)、Nginx 内核服务管理才能较弱等问题。因而,需要一个面临未来的网关解决方案。

其时,咱们有两个技能演进思路,一个是根据 Tengine 进行优化,一个是根据 Envoy 内核来扩展网关场景,考虑到 Tengine 解决这些场景架构变化太大,Envoy 作为网关的第二选项,能够简略的解决上述痛点,因而,咱们选择了 Envoy 内核作为下一代的网关演进方向,并且从 CNCF Ingress Provider 的统计数据来看,Envoy 也是增长最快的,社区承受度高。

阿里巴巴在 Envoy Gateway 的演进历程浅析

在 2020 年 5 月,咱们启动了 Envoy Gateway 1.0 的研发,同年成功支撑了双 11 大促,且成为核心重保的事务链路。

阿里巴巴在 Envoy Gateway 的演进历程浅析

Envoy Gateway 1.0 主要是应用于东西向流量的 RPC 互通,其架构布置如下图:

阿里巴巴在 Envoy Gateway 的演进历程浅析

这个时期,咱们面临未来演进了 Dubbo3.0 的 Triple 协议,根据 Envoy,演进了网关的服务管理才能,支撑了当年双十一本地日子战争数十万 TPS 的流量洪峰。

Envoy Gateway 2.0(成长期)

跟着阿里巴巴上云战争的推进,越来越多的场景找到咱们,如云上云下事务互通,由于 Tengine 服务管理弱导致阿里内部很多二层微服务网关需要收敛,因而从事务上咱们需要做 Tengine+Envoy 两层网关的演进,承当南北向网关流量。在 2020 年 12 月份咱们开端了 2.0 架构的演进,下面以优酷场景为例阐明演进进程如下图:

阿里巴巴在 Envoy Gateway 的演进历程浅析

Envoy Gateway 2.0 南北向的架构图如下:

阿里巴巴在 Envoy Gateway 的演进历程浅析

在两层架构中,Envoy 网关更多承当了微服务网关和微服务管理的需求,和 Tengine 流量网关完成了整合。在这个进程中,咱们提高了服务管理和高可用才能,并且支撑优酷内部多个二层微服务网关统一,大幅提高功能和运维功率。

2.0 阶段,Envoy Gateway 完成了东西向、南北向全域流量的调度分发,东西向上不只支撑跨事务域的蚂蚁 RPC 互通,更是扩展到了混合云的云上云下的 RPC 互通场景,包括钉钉文档、阿里视频云、达摩院的店小蜜、智慧数字人等,2.0 阶段的事务大图如下(云上云下互通场景,以钉钉为例阐明):

阿里巴巴在 Envoy Gateway 的演进历程浅析

跟着 Envoy Gateway 事务的快速铺开,在跟优酷继续协作时大家不约而同的提出了一个问题:Tengine Gateway(承当流量网关人物) + Envoy Gateway(承当微服务网关人物)的两层网关是否能够兼并,运用 Envoy Gateway?答案是肯定的,并且咱们也协作设计了新的架构图,如下:

阿里巴巴在 Envoy Gateway 的演进历程浅析

这个方案的演进,让咱们看到了网关新的开展态势,尤其在以 K8s 主导的容器化布景下,K8s 集群表里网络的天然隔离性,用户也需要一款统筹高功能与安全性、以及强壮服务管理才能的进口网关,这也为咱们走向 3.0 供给了很好的堆集。

Envoy Gateway 3.0(成熟期)

跟着阿里巴巴很多场景的打磨,Envoy 网关功能、稳定性都获得了很好的开展。2021 年,阿里巴巴敞开了中间件三位一体战争,用云产品支撑集团事务,因而咱们也将孵化成熟的技能经过 MSE 云原生网关来服务集团。

点击此处,了解 MSE 更多详情

此刻,咱们经过 Envoy 将流量网关 + 微服务网关合二为一的同时,还经过硬件加速、内核优化等手段,在功能不打折的情况下,继续优化网关的资源布置成本。

阿里巴巴在 Envoy Gateway 的演进历程浅析

技能架构决议技能优势,Envoy 天然的可扩展性,还能将丰富的安全认证和微服务管理才能进行集成,表现了云原生网关高聚合的优势,例如:

  • 网关直连事务 PodIP,不经过传统 Cluster IP,RT 更低
  • 支撑 HTTPS 硬件加速,QPS 提高 80%
  • 支撑 Wasm 插件商场,插件热加载,满足多语言自界说插件需求
  • 自研 Multi-Ingress Controller 组件支撑多集群 Ingress 复用同一个网关实例
  • 原生兼容 K8s Ingress 规范,且支撑 Nginx Ingress 核心功能注解的无缝转化

阿里巴巴在 Envoy Gateway 的演进历程浅析

回馈社区

咱们在对 Envoy Gateway 进行演进的进程中,也提了很多社区 issue,包括:dubbo_proxy、wasm、cryptomb 等,未来咱们会连续回馈社区,作出更多奉献,和社区共同打造下一代网关。