5

网易数帆 Envoy Gateway 实践之旅:坚守 6 年,峥嵘渐显 - 网易数帆

 2 years ago
source link: https://www.cnblogs.com/163yun/p/16326717.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

网易数帆 Envoy Gateway 实践之旅:坚守 6 年,峥嵘渐显

服务网格成熟度不断提升,云原生环境下流量处理愈发重要, Envoy Gateway 项目于近日宣布开源,“旨在大幅降低将 Envoy 作为 API 网关的使用门槛”,引发了业界关注。2018 年 11 月,Envoy 成为 CNCF 毕业项目,开始作为一款高性能数据和服务代理软件为从业者所知,但此后两三年,国内 API 网关实践中,选型 Envoy 仍是一条较为孤独的道路。

up-89aa1fba2ae12cc7346434916eae22f3b80.png

作为国内云原生实践的先行者,网易数帆轻舟云原生团队早在 2017 年就探索基于 Istio 和 Envoy 实现服务网格平台及 API 网关,并于 2019 年完成该体系在严选电商业务的成熟应用。践行及今 6 载,在企业侧,网易数帆 Envoy Gateway 承载了互联网、银行、证券、能源等多行业头部企业核心业务流量,经受了百亿级日流量的考验;在社区侧,团队于 2021 年开源了基于 Istio 和 Envoy 研发的 Hango Gateway,2022 年诞生了国内唯一的 Envoy Maintainer。

在此过程中,网易数帆也多次分享了 Envoy Gateway 相关实践,并曾于 2020 年就网关技术路线展开讨论,力陈 Envoy Gateway 的优势,与社区同道共同推动并见证 Envoy 不断成熟。网易数帆认为,Envoy Gateway 的开源,为 Envoy 成为标准数据面组件带来了一个良好的开端。

网易数帆云原生架构选定 Envoy

在云原生技术体系建设中,网易数帆非常重视统一技术栈,认为这样才能降低研发成本,真正发挥云原生的优势。网格网关体系之所以选择 Envoy,不仅仅是因为 Envoy 是 Istio 数据面默认的 Sidecar,更因为它是功能与性能都非常优秀的“双优生”。此后在网易严选业务的实践,验证了这一选择的正确性。

网格侧,网易数帆认为,Istio + Envoy 对微服务流量和服务治理的良好抽象,带来了统一服务化层技术栈的曙光。同时 Envoy 拥有不低于 Nginx 的转发性能,但在治理能力和控制能力(UDPA)方面,却比 Nginx 灵活得多。在网易严选当时的测试中,采用 eBPF/xDP(sockops),优化路径为 SVC <-> Envoy,延迟性能提升10-20%。

网易严选网关的升级,则考虑轻舟微服务体系的无缝融合以及主流的产品实现,同样采用 Envoy 数据面组件,负责南北向数据流量的代理、路由、治理、遥测等;通过 filterchain 进行扩展,支持基于 Lua、C++ 语言编写插件,WASM 落地后支持多语言方式扩展;并通过 xDS 与控制面组件进行配置下发等动态控制。控制面则以 Istio Pilot 作为基本控制面组件,同时提供 API 层、控制台供用户或第三方平台接入。

up-2d53302bc73a0a343f1d07f885f5f314022.png

基于轻舟 Envoy Gateway 网易严选实现了:

  1. 网关管理平台复用,保证用户习惯一致性。
  2. LUA 插件复用,方便扩展功能的无缝迁移。
  3. 函数级别路由能力的支持,为后续 FaaS 的引流铺平了道路。

经过大规模业务生产落地,网易数帆更加体会到 Envoy 的先天优势,并坚信 Envoy Gateway 是云原生业务流量入口的标准技术方案:

  1. 较 HAProxy、Nginx 更丰富的功能
  2. 与 Nginx 相当,远高于传统 API 网关的性能
  3. 动态管控能力强,具备数据面标准 xDS 协议
  4. 天然亲和容器环境
  5. 多语言扩展沙箱——WASM

性能方面,在网易数帆的测试中,Envoy 的 TPS 可以达到 12W 左右,而基于 Nginx 的 Kong,TPS 为 5W 左右。

到 2020 年,轻舟 Envoy Gateway 在网易多个核心业务大规模落地:

  • 网易传媒(新闻)已经实现全站流量通过轻舟 Envoy Gateway 暴露
  • 网易严选已经实现上云服务全部流量通过轻舟 Envoy Gateway 暴露
  • 网易有道、云信、Lofter 等网易核心互联网业务流量通过轻舟 Envoy Gateway 暴露
up-c6c97b0ebe7bb3ad8cf33fd40f56f1c6d27.jpg
up-e22b3885151718656c20fc5784834cda8b7.jpg

Hango 开源,进入 CNCF Landscape

2021 年 8月,网易数帆开源了高性能、可扩展、功能丰富的云原生 API 网关 Hango,并在之后再次从功能、性能、行业影响、技术趋势和最佳实践等方面全面解读了 Envoy 技术路线的优势,以及 Hango 的扩展设计和落地实践。

简而言之,Hango 数据面基于 Envoy 扩展,增强插件链,控制面基于 Istio 进行扩展,完成了微服务网关、七层负载均衡、Kubernetes Ingress 等多场景能力支持。如下是 Hango 网关插件链的数据流,通过创建 EnvoyPlugin CR,Slime 动态监听聚合生成对应的 EnvoyFilter,完成对 Envoy filter chain 的动态扩展。

up-a5bfdc8b04d2ef98dba1688ba902dd31461.png

而 Hango 也获得了云原生从业者的认可,进入了 CNCF Landscape。

up-eebce920764e279fa80aed86807d0357696.png

展望未来,网易数帆致力于扩大轻舟云原生体系“出圈”规模融入产业数字化,作为一个核心模块的轻舟 Envoy Gateway 也会加码产业应用场景落地能力,如多集群高可用、协议转换等金融场景刚需能力的增强。同时,轻舟 Envoy Gateway 的更多能力也会通过 Hango Gateway 开源出来。

持续贡献,国内唯一 Maintainer 出炉

目前网易数帆轻舟团队已累计向 Envoy 社区贡献 60+ PR,超过 14,000+ 新增代码,覆盖了 Envoy 的有状态会话保持、Tracing 能力增强、Lua script 的支持和 Dubbo 治理能力增强等核心功能。

2022 年 3月 ,Envoy 社区邀请网易数帆云原生专家、资深架构师王佰平成为社区 Maintainer——这是国内首位且唯一的 Envoy Maintainer,同时也是 Dubbo Extension Senior Maintainer,表明了社区对网易数帆持续贡献的认可。

Envoy Maintainer 助力解锁 Envoy 新技能

在成为 Envoy Maintainer 之前,王佰平也积极通过文章、直播、线下分享的方式,多次解读 Envoy 技术发展以及 Envoy Gateway 在内的相关实践。

最后,欢迎读者朋友踊跃参与 Envoy 和 Hango 社区,共创云原生的未来。


2022 年 5 月 13 日至 6 月 15 日,Loggie 社区面向云原生、可观测性及日志技术爱好者发起 Loggie Geek Camp 开源协作活动,以 “性能之巅,观测由我” 为主题,让参与者感受开源文化的精髓与开源社区的创造力,共创云原生可观测性的未来。包括提供 user case、捕捉 bug、完善和提交 feature 等四类任务,提交内容通过社区审核即为成功,表现优异者将可获得网易数帆及 Loggie 社区表彰。欢迎访问链接了解和参与:https://sf.163.com/loggie


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK