作者:耿蕾蕾(如葑):阿里云研发工程师,从 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 也是增长最快的,社区承受度高。
在 2020 年 5 月,咱们启动了 Envoy Gateway 1.0 的研发,同年成功支撑了双 11 大促,且成为核心重保的事务链路。
Envoy Gateway 1.0 主要是应用于东西向流量的 RPC 互通,其架构布置如下图:
这个时期,咱们面临未来演进了 Dubbo3.0 的 Triple 协议,根据 Envoy,演进了网关的服务管理才能,支撑了当年双十一本地日子战争数十万 TPS 的流量洪峰。
Envoy Gateway 2.0(成长期)
跟着阿里巴巴上云战争的推进,越来越多的场景找到咱们,如云上云下事务互通,由于 Tengine 服务管理弱导致阿里内部很多二层微服务网关需要收敛,因而从事务上咱们需要做 Tengine+Envoy 两层网关的演进,承当南北向网关流量。在 2020 年 12 月份咱们开端了 2.0 架构的演进,下面以优酷场景为例阐明演进进程如下图:
Envoy Gateway 2.0 南北向的架构图如下:
在两层架构中,Envoy 网关更多承当了微服务网关和微服务管理的需求,和 Tengine 流量网关完成了整合。在这个进程中,咱们提高了服务管理和高可用才能,并且支撑优酷内部多个二层微服务网关统一,大幅提高功能和运维功率。
2.0 阶段,Envoy Gateway 完成了东西向、南北向全域流量的调度分发,东西向上不只支撑跨事务域的蚂蚁 RPC 互通,更是扩展到了混合云的云上云下的 RPC 互通场景,包括钉钉文档、阿里视频云、达摩院的店小蜜、智慧数字人等,2.0 阶段的事务大图如下(云上云下互通场景,以钉钉为例阐明):
跟着 Envoy Gateway 事务的快速铺开,在跟优酷继续协作时大家不约而同的提出了一个问题:Tengine Gateway(承当流量网关人物) + Envoy Gateway(承当微服务网关人物)的两层网关是否能够兼并,运用 Envoy Gateway?答案是肯定的,并且咱们也协作设计了新的架构图,如下:
这个方案的演进,让咱们看到了网关新的开展态势,尤其在以 K8s 主导的容器化布景下,K8s 集群表里网络的天然隔离性,用户也需要一款统筹高功能与安全性、以及强壮服务管理才能的进口网关,这也为咱们走向 3.0 供给了很好的堆集。
Envoy Gateway 3.0(成熟期)
跟着阿里巴巴很多场景的打磨,Envoy 网关功能、稳定性都获得了很好的开展。2021 年,阿里巴巴敞开了中间件三位一体战争,用云产品支撑集团事务,因而咱们也将孵化成熟的技能经过 MSE 云原生网关来服务集团。
点击此处,了解 MSE 更多详情
此刻,咱们经过 Envoy 将流量网关 + 微服务网关合二为一的同时,还经过硬件加速、内核优化等手段,在功能不打折的情况下,继续优化网关的资源布置成本。
技能架构决议技能优势,Envoy 天然的可扩展性,还能将丰富的安全认证和微服务管理才能进行集成,表现了云原生网关高聚合的优势,例如:
- 网关直连事务 PodIP,不经过传统 Cluster IP,RT 更低
- 支撑 HTTPS 硬件加速,QPS 提高 80%
- 支撑 Wasm 插件商场,插件热加载,满足多语言自界说插件需求
- 自研 Multi-Ingress Controller 组件支撑多集群 Ingress 复用同一个网关实例
- 原生兼容 K8s Ingress 规范,且支撑 Nginx Ingress 核心功能注解的无缝转化
回馈社区
咱们在对 Envoy Gateway 进行演进的进程中,也提了很多社区 issue,包括:dubbo_proxy、wasm、cryptomb 等,未来咱们会连续回馈社区,作出更多奉献,和社区共同打造下一代网关。