去年 10 月在 NGINX 大会上发布的NGINX API管理模块现已普遍可用。 NGINX 产品管理总监 Liam Crilly 将新模块与 NGINX Plus 和 NGINX Controller 一起描述为下一代 API 管理解决方案,并且指出,它针对外部和内部 API 进行了优化,特别是在内部 API 数量很重要、内部流量很大的微服务环境中。
Crilly 强调,在新的解决方案中,消费者与实现了 API 的应用程序或服务(API 运行时流量,也称为数据平面)之间的流量与控制 API 的流量(API 管理流量,也称为 API 控制平面)是相互隔离的。通过最小化经过控制平面的路由流量可以提高性能,并缩短 API 调用的平均响应时间。
另一个特性是网关的资源占用非常小,从而带来了更高的灵活性,比如可以使用一个处理所有流量的大型集中式网关,也可以在基于微服务的应用程序中使用多个网关。对于这两种情况,启用相同的功能都能提供相同的性能。它可以被部署在各种环境中,例如公共云和私有云、虚拟机和容器,或直接部署在物理服务器上。
所有的配置和策略(包括所有 API 密钥和微服务路由规则)被放入原生 NGINX 配置中,从而不需要再使用本地数据库。因此,在处理调用时不再需要数据库连接,在与新的 API 管理解决方案一起使用时,可以保持 NGINX 的核心性能。Crilly 还指出,得益于配置方式的改变,它们现在没有任何运行时依赖,即使其他组件发生崩溃,NGINX 实例仍然会继续处理流量。
新 API 管理解决方案的其他功能包括:
API 定义和发布。用于定义基路径和 URI,并发布到不同的环境;
速率限定,同时使用了请求和带宽限定,也可用于缓解 DDoS 攻击;
身份验证和授权,使用了 API 密钥和 JSON Web Token(JWT);
实时监控和警报,包括指标的图形和警报,以及用于可视化指标和故障的仪表板。
Crilly 最后指出,超过 30%的开源社区和 40%的商业客户使用 NGINX 作为 API 网关,而很多其他 API 网关解决方案也使用 NGINX 作为核心代理引擎。管理多个 API 配置可能会非常复杂,但凭借从客户那里获得的经验并将其融入到新的 API 管理解决方案中,他相信他们现在拥有了一个可以更好地为他们的客户提供支持的技术栈。
在去年的一次采访中,来自 InfoQ 的 Daniel Bryant 与 NGINX 代表讨论了他们对未来网络和数据中心通信的看法。
查看英文原文:https://www.infoq.com/news/2019/01/nginx-api-management
评论