0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

庖丁解牛:Apache APISIX 3.0与Kong 3.0功能背后的趋势

OSC开源社区 来源:OSC开源社区 作者:OSC开源社区 2022-11-24 11:56 次阅读

微服务架构的兴起,使得 API 的数量呈现爆炸式的增长。为了能高效地管理这些规模庞大的 API,API 网关开始在技术领域大展拳手。

云原生时代下,企业逐渐向云上迁移,越来越多的应用和服务都在进行容器化改造,服务之间的流量也开始爆发性的增长,用户除了需要 API 网关提供请求代理、熔断限流、审计监控等常规能力外,更多开始关注云原生兼容性、支撑场景的多样性,以及更好的性能及稳定性。在这样的背景下,以 Apache APISIX 和 Kong 等为代表的云原生 API 网关项目得到了越来越多开发者的青睐。

2022 年 9 月 28 日 Kong 发布了 3.0 GA 版本,新版本中新增了一些功能及性能上的提升。9 月 21 日,Apache 软件基金会的顶级项目 APISIX 也发布了 3.0 版本预览版,介绍了生态和功能方面的 10 大亮点。

本文就让我们来详细分析下这两个流行的开源 API 网关项目的全新版本,看看这些更新细节的背后透露出哪些值得大家关注的趋势。

亮点汇总

Kong Gateway 3.0 亮点
亮点 适用版本 类别 目标用户 解决的问题 APISIX 是否支持 备注
FIPS 140-2 安全标准 企业版 合规 北美金融企业和政府 合规性 不支持 不适用
密钥管理 开源版、企业版 合规 金融企业 合规性及安全性 支持 APISIX (2021.12) :feat(vault): vault lua module, integration with jwt-auth authentication plugin
Kong (2022.2):feat(vaults) adds vaults beta support to kong
插件功能排序 企业版 易用 有复杂场景的大中型企业 让企业使用插件时更灵活 支持 APISIX(2022.6):feat: allows users to specify plugin execution priority
Kong (2022.7):feat(plugins) add support for ordering
Kong Manager 3.0 管理面板 企业版 易用 没有太多技术团队的大中型企业 帮助企业用户更好地管理 API 支持 不适用
深度支持Websocket 企业版 功能 深度使用Websocket 的企业用户 校验 Websocket scheme,限制Websocket frame 大小 部分支持 Kong(2016.12):feat(proxy) supports websockets by subnetmarco · Pull Request #1827 · Kong/kong
APISIX(2020.1):feature: upstream support websocket enable
支持 OpenTelemetry 开源版、企业版 功能 业务调用链复杂的大中型企业 可观测性 支持 APISIX (2022.1):feat: add opentelemetry plugin
Kong(2022.6):feat(plugins) opentelemetry plugin
性能改进 开源版、企业版 性能 厂商,快速增长的 SaaS 厂商 降低服务器成本 支持 Apache APISIX 从 2019 年开源以来,一直在性能上优于其他的 API 网关
新的路由引擎 开源版、企业版 性能 云厂商,快速增长的 SaaS 厂商 大量 API 场景下的性能问题,降低服务器成本 支持 APISIX(2019.8):feature: supported to use router lua-resty-radixtree
Kong(2022.7):feat(router) new DSL based router support and tests fix
Apache APISIX 3.0 亮点
亮点 类别 目标用户 解决的问题 Kong 是否支持
全面支持 ARM64 架构 生态 大规模上云的公司 降低成本 部分支持
新增 gRPC 客户端 性能 APISIX 自身优化需求 APISIX 自身优化需求 不支持
更完善的服务发现支持 生态、功能 微服务化的企业需要 不支持
新增 xRPC 框架 生态、功能 互联网公司 降低服务器成本 不支持
支持更多四层可观测性 功能 业务调用链复杂的大中型企业 可观测性 不支持
全面支持 Gateway API 生态 互联网公司 企业用户更好的管理 API 支持
集成更多生态(如 OpenFunction, ClickHouse, Elasticsearch, CAS) 生态、功能 互联网公司 OSS、AWS Secrets Manager 和 Hashi Corp Vault(商业版)的环境变量 不支持
新增 AI 平面 智能 互联网公司 大量 API 下的性能问题,并且降低服务器成本 不支持

亮点与趋势解析

Kong Gateway

在上文汇总的 Kong Gateway 3.0 亮点中(结合 APISIX 的一些功能支持),主要体现了以下几个趋势。

首先是 Kong 在金融领域的安全和合规性上的投入比较大。这点可以从其对 FIPS 140-2 的支持和密钥管理两个方面看出来。

符合 FIPS 140-2:FIPS 140-2 是北美金融企业和政府用于批准加密模块的计算机安全标准。Kong Gateway 3.0 企业版基于 BoringSSL 进行构建,后续 Kong 的插件还会基于此标准进行兼容,从而使Kong 的核心能基本满足 FIPS 140-2 的要求。Kong 对 FIPS 140-2 的支持,体现了公司战略层面的发展阶段:历经七年的变化更迭,Kong 逐渐放眼于付费型企业,倾向于满足金融企业和政府的需求。

密钥管理:该功能目标群体同样是金融企业,Kong Gateway 3.0 允许用户将敏感信息安全地存储在 AWS Secrets Manager 和 HarshiCorp Vault 中,同时 Kong 在运行时能访问这些外部机密管理器,这样一来,针对一些有高要求的安全需求群体,实现了更高级别的安全保护。

其次 Kong Gateway 3.0 开始进行更针对性能层面的提升,这主要得益于以下两点。

在路由层面增加了一层哈希缓存,这在性能评测的场景下,会得到较大的提升。但当 UR 地址每次都变换时,这个缓存就失效了。详情可参考相关代码链接 atc.lua。

用 Rust 实现了一个全新的路由引擎,使用 DSL 来增加路由层面的表达力。在接收和发送 HTTP 请求时,可以编写如下表达式 net.protocol == "https" && (http.method == "GET" || http.method == "POST")。而在请求路由与特定主机匹配的场景下,可以通过编写如下表达式进行(http.host == "example.com" && http.headers.x_example_version == "v2" ) || (http.host == "store.example.com" && http.headers.x_store_version == "v1") 。

作为对比,Apache APISIX 在 2019 年 8 月使用Lua-resty-radixtree也实现了类似的路由表达式功能。APISIX 的表达式功能支持任意 NGINX 变量,同时运算符更加丰富。除了常见的数值、字符串比较,还支持正则、数组、IP 地址匹配等。

从这里也可以看到,APISIX 对于一些功能的规划会更有前瞻性。从各亮点的 PR 链接中可以看出,除 Kong Manager 3.0 以外,大部分是 Apache APISIX 先实现的。

Apache APISIX

在 Kong Gateway 3.0 发布的前一周,开源项目 Apache APISIX 发布了 3.0 预览版,其中涉及多项功能亮点,在上文中仅选取了最主要的八个要点进行列举(这八大亮点在开源版本中均有所呈现,主要侧重于生态和功能方面的改进)。

从汇总的亮点可以看到,Apache APISIX 3.0 版本主要针对生态和功能层面进行了优化。从 Apache APISIX 本身的演进规划来看,主要涉及以下两个重点:

增加 AI 平面。在数据平面和控制平面之外,Apache APISIX 新增了 AI 平面,通过对于 API 流量和配置的学习与分析,减轻开发者和维护者的使用和运维压力。比如以下两个场景就可以通过 AI 平面进行自动优化:

发现没有身份认证的 API,并给出风险提示;

对于只配置了身份认证等 Access 阶段插件的 API,自动跳过 log 等不必要的阶段,加快处理速度。

AI 平面给流量处理带来了新的可能性,在后续使用过程中,类似上游服务自动热身、安全威胁发现等都可以通过 AI 平面来进行处理。

全面支持 ARM64:ARM64 已经成为云厂商非常主流的服务器架构选择。从 AWS Graviton 到 GCP Tau T2A,各个云厂商已经开始推出基于 Arm 架构的服务器。Apache APISIX 对 ARM64 做了全面的 CI 回归测试,确保用户在 Arm 架构下运行 Apache APISIX 仍能流畅运行各种功能。对此,用户非常关注,关于 ARM 架构与 GCP、AWS 性能对比的文章在 Hacker

News 上收到了近百条评论。

可以看到,APISIX 在保证性能的同时,也在积极扩展周边生态,利用自身开源项目的优势去拥抱更多优秀的产品与项目。

总结

fcda4a70-546b-11ed-a3b6-dac502259ad0.png

从以上两个产品大版本的更新细节汇总与分析中,我们可以看到:

Kong Gateway 3.0 版本的更新功能开始逐渐倾向于企业版,侧重政府、金融业以及对安全合规更关注的大型企业。整体涉及在合规、易用性、功能与性能等方面进行了拓展。

Apache APISIX 3.0 版本推出的所有功能都是开源的,在架构层面进行创新与迭代的同时,也在积极关注生态和新技术的探索,致力让所有用户都能利用 APISIX 发挥更优秀的价值。

作为 API 网关产品的佼佼者,未来 Kong 和 Apache APISIX 会如何迭代和发展,让我们拭目以待。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1530

    浏览量

    62760
  • Apache
    +关注

    关注

    0

    文章

    64

    浏览量

    12545
  • 云原生
    +关注

    关注

    0

    文章

    254

    浏览量

    8047

原文标题:庖丁解牛:Apache APISIX 3.0与Kong 3.0功能背后的趋势

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    通用串行总线3.0规范

    USB3.0规范
    发表于 02-25 17:43 0次下载

    CH634USB3.0HUB控制芯片USB3.0国产控制芯片

    Delivery)功能,为用户提供超高速、灵活且可靠的USB连接解决方案。 一、核心特性 高速数据传输: CH634的上行端口支持USB3.0超高速5Gbps数据传输速率,同时兼容USB2.0高速
    的头像 发表于 02-07 16:07 486次阅读
    CH634USB<b class='flag-5'>3.0</b>HUB控制芯片USB<b class='flag-5'>3.0</b>国产控制芯片

    PCIe 4.0与PCIe 3.0的性能对比

    4.0相较于PCIe 3.0,最直观的提升就是带宽的增加。PCIe 3.0的单通道带宽为8 GT/s(Giga Transfers per second),而PCIe 4.0的单通道带宽提升至16 GT
    的头像 发表于 11-06 09:22 8295次阅读

    USB3.0的识别问题

    做了一个USB3.0集线器,现在遇到这个问题,USB3.0无法识别,插拔几次后可以识别,接上其他设备也能正常工作,求高手帮忙啊,怎么处理USB3.0识别问题
    发表于 10-29 11:36

    pd3.0快充协议最高多少w

    PD3.0快充协议最高支持100W的功率输出 。以下是对PD3.0快充协议的介绍: 一、PD3.0快充协议概述 PD3.0,全称“USB Power Delivery
    的头像 发表于 10-18 10:45 1w次阅读

    Zigbee 3.0的新功能

    电子发烧友网站提供《Zigbee 3.0的新功能.pdf》资料免费下载
    发表于 09-26 10:45 3次下载
    Zigbee <b class='flag-5'>3.0</b>的新<b class='flag-5'>功能</b>

    CYUSB3014 USB 3.0可作为2.0工作,但不能作为3.0工作,为什么?

    时,它显示为 USB 2.0 设备。 这是否正常? 如何在代码中确定设备的运行速度是 USB 3.0 还是 USB 2.0,以及如何管理连接状态? 从哪个功能可以知道所连接的 USB 是 3.0 还是 2.0?
    发表于 07-22 06:02

    如果在不清楚适配器的是否支持QC3.0的情况下,尝试切换至QC3.0协议,该如何判断是否成功切换至QC3.0协议?

    如果在不清楚适配器的是否支持QC3.0的情况下,尝试切换至QC3.0协议,该如何判断是否成功切换至QC3.0协议? 因为QC2.0协议的class B支持的20V的切换方式和QC3.0
    发表于 07-20 11:56

    HD3SS6126 USB 3.0和USB 2.0差分开关2:1/1:2多路复用/复用器数据表

    电子发烧友网站提供《HD3SS6126 USB 3.0和USB 2.0差分开关2:1/1:2多路复用/复用器数据表.pdf》资料免费下载
    发表于 07-11 10:11 0次下载
    HD3SS6126 USB <b class='flag-5'>3.0</b>和USB 2.0差分开关2:1/1:2多路复用/<b class='flag-5'>解</b>复用器数据表

    pcie4.0和pcie3.0接口兼容吗

    PCIe 4.0和PCIe 3.0接口在多个方面实现了兼容性,PCIe 4.0和PCIe 3.0接口兼容性问题是一个广泛讨论的话题。 PCIe 4.0和PCIe 3.0的定义 PCIe
    的头像 发表于 07-10 10:12 9604次阅读

    微软发布智能办公工具OfficePLUS V 3.0版本

    近日,微软发布了智能办公工具 OfficePLUS V 3.0 版本。全新升级的 OfficePLUS V 3.0 新增了 Excel 插件,继已发布的 PPT/Word 插件之后, 完成了对 Office 核心使用场景的全方位覆盖,让用户拥有更加轻松的创作体验。
    的头像 发表于 06-27 09:26 928次阅读

    比亚迪e平台3.0 EVO:揭示连接器三大新趋势

    行业标杆再度升级,如何借势完成升级,抓住宝贵的替代窗口期?比亚迪e平台3.0 EVO揭示了产业链的三大趋势,不容错过。 最高23000 rpm转速,支持225 km/h高速,12合一智能电驱,比亚迪
    的头像 发表于 05-27 14:59 541次阅读
    比亚迪e平台<b class='flag-5'>3.0</b> EVO:揭示连接器三大新<b class='flag-5'>趋势</b>

    USB2.0型号模拟转换USB3.0输出

    通过模拟信号转换,将原本输入进来的USB2.0变成USB3.0,使其插到USB3.0的HUB上不会出现2.0降速的问题
    发表于 05-14 08:47

    芯片后仿之SDF 3.0解析(三)

    本文接着解析SDF3.0的Timing Checks Entries、Timing Environment Entries两个部分。
    的头像 发表于 04-16 11:08 2260次阅读
    芯片后仿之SDF <b class='flag-5'>3.0</b>解析(三)

    usb3.0和2.0的!!!

    USB 3.0和USB 2.0是USB接口的不同版本,它们之间有以下主要区别: 1. **传输速度**:USB 3.0的最大传输速度为5Gbps,是USB 2.0传输速度(480Mbps)的约10倍
    的头像 发表于 04-07 00:23 881次阅读