来源 | 转载自网易杭州研究院公众号
网关是“镇守”互联网应用门户的关键流量代理软件。进入云原生时代,行业用户除了需要 API 网关提供请求代理、熔断限流、审计监控等常规能力外,更多的开始关注云原生兼容性(容器、服务网格等),支撑场景的多样性(七层负载均衡、Ingress、Serverless 网关等),以及更好的性能稳定性。网易在 2018 年选型云原生标准数据面软件 Envoy 构建了新一代 API 网关,满足了云原生场景需求,承担了网易百亿级互联网业务流量。本文从网易数帆开源云原生 API 网关 Hango 的选型入手,对云原生网关选型为何选择 Envoy 进行了较为全面的解读。
背 景
Hango 是由网易公司开源的一个基于 Envoy 构建的高性能、可扩展、功能丰富的云原生 API 网关。
Hango 项目仓库:https://github.com/hango-io/hango-gateway
Hango 提供请求代理、动态路由、负载均衡、限流、熔断、健康检查、安全防护等功能,可用于微服务网关、七层负载均衡、Kubernetes Ingress、Serverless 网关等多种应用场景。此外,通过 Hango 的 Rider 模块,用户可以自定义多语言插件进行能力扩展。
Envoy 是由 Lyft 公司开源的一款高性能代理软件,也是云原生计算基金会(下文简称为 CNCF )第三个毕业的项目,GitHub 目前有 17k+ Star(https://github.com/envoyproxy/envoy)。Envoy 是云原生数据面代理标准软件。
Envoy 使用 C++ 语言开发,使用全异步事件机制驱动,具备丰富的功能,以及与 Nginx 相当的性能。相比于 Nginx、HAProxy 等经典代理软件,Envoy 还具备强大的可观察性和灵活的可扩展性,并且引入了基于 API 的动态配置方案 xDS。此外,Envoy 还提供了大量的开箱即用的 Filter 以满足各种场景下流量治理的需求。
本文我们将重点探讨 Hango 为什么会选择 Envoy 作为云原生网关实践的关键基础软件。
起 源
我们与 Envoy 结缘来自于服务网格(Service Mesh)相关建设的工作。Envoy 作为服务网格 Istio 的数据面软件选型,承担了东西向、南北向全部数据流量的代理、治理与观测职责。随着服务网格在网易内部大规模落地,我们对 Envoy 的功能、性能、扩展性、可观测性等多方面有了全面的研究与实践,也深刻感受到 Envoy 优质的内在品质,及其在云原生时代巨大的发展潜力。于是我们开始尝试基于 Envoy 建设网易的新一代 API 网关,目标是替换网易内部较多业务采用 Java 异步化网关、Kong 网关,并能够满足业务逐步进入云原生时代的南北向流量治理需求。从结果上看,选型 Envoy 不仅让我们顺利实现了网易 API 网关全面升级,还推动了网易云原生、微服务技术栈整体的统一与向前发展。
背书与潜力
作为 CNCF 第三个毕业的项目,Envoy 是云原生数据面代理软件的事实标准。行业应用方面,Envoy 在谷歌、微软、IBM、亚马逊、F5、雅虎及阿里巴巴、腾讯、百度、华为、网易、美团等国内外诸多大型公司大规模落地应用。Envoy 得到了顶级基金会与龙头公司的双重认可,具备十分优质的行业背书,不仅为其后续的发展提供了非常积极的基础,还展现出在云原生时代成为网络代理引领者的巨大潜力。我们认为 Envoy 可以作为企业下一代网络代理的重要选型标准。
(图片来自 Envoy 官网:https://www.envoyproxy.io/)
富能力
作为新一代网络代理软件,Envoy 原生具备了非常丰富的特性,能够满足大部分业务场景流量治理的需求:
高性能
性能对于网络代理软件来说是一个非常重要的指标。Envoy 在原生具备丰富特性的同时,也有着非常优秀、足以媲美 Nginx 与 HAProxy 的性能表现。难能可贵的是,除了基本路由代理功能外,众多其他功能由于原生 C++ 实现,相较于 Nginx、HAProxy 等通过扩展脚本实现主要功能的方式,性能优势更为明显。
下面是我们内部环境测试 Envoy 与 Nginx 的基准性能对比数据,仅供参考(均为原生软件,未做任何调优)。
吞吐量 RPS 对比:
响应时间 RT 90 值、95 值、99 值数据对比:
行业趋势
除了具备优质的基因和全面的能力,Envoy 在行业内的发展趋势对企业选型同样十分关键。事实上,Envoy 在不长的发展周期内已经形成了一定的行业趋势。
行业影响方面:
2020 年 中国云原生报告 显示,Envoy 的行业使用量呈明显上升趋势 —— NGINX (F5)使用量从 54% 减少到 39%,而去年排名第四的 Envoy,超过 F5 和 HAProxy 从 15% 的份额增长到 29%。
技术趋势方面:
最佳实践方面:
写在最后
回望 Hango 选型 Envoy 的心路历程,其实也是从传统软件选型到云原生方向演进的思路转变。Hango 作为一名开源领域 “新生” ,会继续站在 Envoy 的肩膀上,以发挥更大的领域价值。也期待更多关注云原生、微服务、API 网关以及 Envoy 的同学加入 Hango 的开源社区建设。
作者简介:
裴斐,网易数帆云计算技术专家、资深架构师。10 余年企业级平台架构和开发经验,目前主要负责网易轻舟微服务治理团队,专注于企业微服务架构及云原生技术的研究与落地工作。带领团队完成网易轻舟 Service Mesh、微服务框架 NSF、API 网关等多个项目在网易集团落地及商业化产品输出。
今日好文推荐
禁止热饭公司曾克扣前员工加班工资并索赔14万;腾讯再投500亿助力共同富裕;程序员被划为新生代农民工 | Q资讯
InfoQ 写作平台欢迎所有热爱技术、热爱创作、热爱分享的内容创作者入驻!
还有更多超值活动等你来!
扫描下方二维码
填写申请,成为作者
开启你的创作之路吧~
点个在看少个 bug 👇