如葑:阿里云原生网关Envoy Gateway实践

82bcfc3beca454cfa25e1aaded5e9e06.png

图片来源:pexels.com

原文来源,分布式实验室:https://mp.weixin.qq.com/s/t1ppAQfm0cPmqhxEARB03Q

最近阅读 《Envoy Gateway 来了》这篇文章,深感 Envoy 强大的可扩展性和基于 Envoy Gateway 带来的易用性,在 Kubernetes 架构下,Envoy 重新定义了网关的定位和能力,被誉为云原生网关,甚至被称之为下一代网关。阿里巴巴早在 2018 年就启动了下一代网关的探索之路,本文将对这个探索历程做一个简单介绍。

阿里巴巴早在 2018 年,就开启了云原生上云的序幕,将容器、服务网格作为核心技术点进行演进,并尝试阿里巴巴和蚂蚁通过这次技术演进,来统一双方的中间件技术栈,让业务更聚焦业务开发,屏蔽底层分布式复杂度。作为服务网格一个重要方向,我们开启了下一代网关的探索之路。


 1 

Envoy Gateway 1.0(孵化期)

上云过程中,我们期望统一应用架构技术栈,但是蚂蚁和阿里巴巴的 RPC 协议不同,存在互调链路长、协议转换消耗大、Tengine Reload 访问有损(接入生效快就需要不断 reload 有损,如果控制 reload 影响,就要减少 reload 次数,接入服务生效慢)、Nginx 内核服务治理能力较弱等问题。因此,需要一个面对未来的网关解决方案。

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

fba0e7ba0ec8d22a3f08ca70961564c8.png

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

852ffbbe7f52e75d3b5578153936f136.png

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

dcf0f49495757f9b0db412a5534373a7.png

这个时期,我们面对未来演进了 Dubbo3.0 的 Triple 协议,基于 Envoy,演进了网关的服务管理能力,支撑了当年双十一本地生活战役数十万 TPS 的流量洪峰。


 2 

Envoy Gateway 2.0(成长期)

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

489ae7122aa12fa8849d2b94d02e1e36.png

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

5afc4769c56ea1ac5f7ebe9599192493.png

在两层架构中,Envoy 网关更多承担了微服务网关和微服务治理的需求,和 Tengine 流量网关完成了整合。在这个过程中,我们提升了服务治理和高可用能力,并且支撑优酷内部多个二层微服务网关统一,大幅提升性能和运维效率。

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

04930ac79b512fa9cfa949d9f879fd35.png

随着 Envoy Gateway 业务的快速铺开,在跟优酷持续合作时大家不约而同的提出了一个问题:Tengine Gateway(承担流量网关角色) + Envoy Gateway(承担微服务网关角色)的两层网关是否可以合并,使用 Envoy Gateway?答案是肯定的,而且我们也合作设计了新的架构图,如下:

65125787b15a1eba8ed28c79b7ebc05c.png

这个方案的演进,让我们看到了网关新的发展态势,尤其在以 Kubernetes 主导的容器化背景下,Kubernetes 集群内外网络的天然隔离性,用户也需要一款兼顾高性能与安全性、以及强大服务治理能力的入口网关,这也为我们走向3.0提供了很好的积累。


 3 

Envoy Gateway 3.0(成熟期)

随着阿里巴巴大量场景的打磨,Envoy 网关性能、稳定性都获得了很好的发展。2021 年,阿里巴巴开启了中间件三位一体战役,用云产品支撑集团业务,因此我们也将孵化成熟的技术通过 MSE 云原生网关来服务集团。

此时,我们通过 Envoy 将流量网关 + 微服务网关合二为一的同时,还通过硬件加速、内核优化等手段,在性能不打折的情况下,持续优化网关的资源部署成本。

e7c5c8447c597ceb0983095b11009a30.png

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

  • 网关直连业务 PodIP,不经过传统 Cluster IP,RT 更低

  • 支持 HTTPS 硬件加速,QPS 提升80%

  • 支持 Wasm 插件市场,插件热加载,满足多语言自定义插件需求

  • 自研 Multi-Ingress Controller 组件支持多集群 Ingress 复用同一个网关实例

  • 原生兼容 Kubernetes Ingress 规范,且支持 Nginx Ingress 核心功能注解的无缝转化

e461bb2e096a3e2225c0eff126042f80.png


 4 

回馈社区

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

作者介绍

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


往期推荐

如何用研发效能搞垮一个团队

他教全世界程序员怎么写好代码,答案写在这里!

研发效能提升的实践框架、模式与反模式

聊聊大中型公司都热衷于造轮子的故事

被滥用的“架构师”!

构建健壮的分布式系统

阿里在云原生架构下的微服务选型和演进

代码规范 & 设计模式落地之路

SOLID 原则的可靠指南

万字长文 | 淘宝 10年架构演进

efe6e7fff85713e47229fd32cc2ed6d1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值