微服务网关 Kong 1.0 正式发布!提供 100+ 项功能

阅读数:3942 2018 年 12 月 21 日 13:54

微服务网关Kong 1.0正式发布!提供100+项功能

今天,我们很高兴地发布 Kong 1.0 GA——一个可扩展、快速、开源的微服务 API 网关,用于管理、保护和连接混合和云原生架构。Kong 位于服务之前,并可通过插件进行扩展,包括身份验证、流量控制、可观察性等。

经过多年的开发,成千上万的用户在生产环境中使用了 Kong,我们增加了众多重要的功能,并进行了大量的修复,让 Kong 变得更快、更灵活、更具弹性。

服务网格

用户现在不仅可以将 Kong 作为 API 网关部署,还可以作为独立的 service-mesh 代理。Kong 插件提供了与服务网格相关的关键功能,可以与其他云原生技术集成,包括 Prometheus、Zipkin、健康检查、金丝雀部署、蓝绿部署,等等。

借助边车代理提供的跟高的可见性、安全性和弹性,服务网络有助于解决微服务所面临的一些挑战。除了这些好处之外,与其他供应商相比,Kong 的服务网络提供了一些关键优势,所有这些优势都源于我们注入了与边缘边车代理相同的运行时。

微服务网关Kong 1.0正式发布!提供100+项功能

Mutual TLS 和 TCP

在 1.0 版本中,Kong 集群创建了一个 Certificate Authority,Kong 节点可以用它来建立 Mutual TLS 身份验证。此外,Kong 现在可以路由原始 TCP 流量,这意味着 Kong 现在可以平衡来自邮件服务器和其他基于 TCP 的应用程序的流量,一直从 L7 到 L4。

gRPC

除了 REST 之外,Kong 1.0 现在还支持 gRPC 协议。gRPC 基于 HTTP/2,为希望以低开销和低延迟连接东西向流量的 Kong 用户提供了另一种选择,有助于用户在混合环境中进行更多网格部署。

新的迁移框架

Kong 1.0 引入了一个新的数据库抽象对象(Database Abstraction Object,DAO),它可以简化从一个数据库模式到另一个数据库模式的迁移,并且停机时间几乎为零。新的 DAO 允许用户一次性升级他们的 Kong 集群,无需手动升级每一个节点。

插件开发套件(PDK)

PDK 是一组 Lua 函数和变量,自定义插件可用它们实现自己的逻辑。尽管它早在 0.14.0 中就已发布,不过 1.0 版本的变更可以保证使用 PDK 构建的插件与 1.0 及更高版本兼容。与从头开始编写插件相比,它提供了很多优势,其中包括:

标准化

所有 Kong 插件都需要一系列标准功能,而 PDK 提供了这些开箱即用的功能,既节省了插件开发人员的时间,又保证了使用 PDK 开发的插件具有相似的行为(相同的解析规则、相同的错误等),使它们更易于使用。

可用性

PDK 的接口比 ngx_lua API 更容易使用。PDK 允许用户将某些插件操作(例如日志记录或缓存)与其他插件隔离开。

兼容性

PDK 的语义版本化可以保持向后兼容。在未来,插件将能够锁定它们所依赖的 PDK 版本。

自由移动服务

借助 Kong,你可以立即将在边缘使用的功能扩展到网格中。将 Kong 部署在与容器相同的主机上,就可以轻松地将容器中的服务移到网格中。

无缝连接

将网格中的服务与所有环境、平台和供应商的服务相连接。在不修改服务代码的情况下,使用 Kong 来弥合云原生设计与传统架构模式之间的差距。

健壮的插件库

我们的插件架构为用户提供了无与伦比的灵活性。Kong 插件提供了开箱即用的关键功能,并支持与其他云原生技术的无缝集成,包括 Prometheus、Zipkin 和其他很多技术。插件在本地与每个服务运行在一起,不需要额外的网络跳转到另一个组件。

低延迟

Kong 及其插件针对性能进行了优化。其他平台可能会在容器或网格的服务之间引入延迟,而我们引入的延迟不到一毫秒。

数据平面与控制平面的分离

Kong 1.0 允许用户在配置中指定单独的控制平面和数据平面。以前,你需要单独配置每个集群的数据平面和控制平面,现在你可以在同一个地方配置,然后反映在多个 Kong 集群中。独立的数据平面和控制平面配置让 Kong 用户可以更好地控制大型部署。这种配置分离让部署变得更加安全,因为你可以将 Kong 的配置放在防火墙后面,仅暴露出数据平面。

微服务网关Kong 1.0正式发布!提供100+项功能

Runloop 性能改进

为了确保数据平面的性能能够满足服务网格和其他去中心化架构的需求,我们对插件 Runloop 进行了一些改进。

预读取执行

插件现在可以在预读取阶段执行代码。Kong 用户可以在建立初始 TCP 连接时初始化插件来提高性能。

网关与网格配置

所有插件都有一个新字段 run_on,用于在服务网格和“常规 API 网关”模式下控制插件的激活。这样可以更精细地控制插件的活动,避免冗余并进一步提高性能。

AWS Lambda 和 Azure FaaS

Kong 1.0 还改进了与 AWS Lambda 和 Azure FaaS 的交互,包括 Lambda Proxy Integration 和 Azure Functions 插件的改进,用以过滤掉在将 HTTP/1.1 响应代理到 HTTP/2 客户端时不被 HTTP/2 允许的标头。

100 多项功能和修复

你可以在 Changelog 中找到所有 Kong 版本的变更列表。1.0 版本包含了很多重大变更,因此在升级时请务必阅读 1.0 版本的升级路径

Kong 的未来

虽然我们现在承诺 Kong 会保持稳定和向后兼容,但我们仍然有很长的路要走。我们很高兴继续与你一起构建 Kong 项目和社区!我们非常感谢社区为实现这一里程碑提供的所有支持,我们期待着继续共同构建和成长。

微服务网关Kong 1.0正式发布!提供100+项功能

自从四年前开源 Kong 以来,来自世界各地的数百名贡献者对 Kong 代码库进行了无数次的改进,这些改进让我们迎来了 1.0 版本。我们十分感谢 Kong 的用户和贡献者。我们最初在开源 Kong 时,并没有想到它的社区会有如此惊人的增长,并且一直在持续!

Kong CTO Marco Palladino 说,“在开发 Kong 时,我们怀揣着一个混合世界的愿景,而 Kong 1.0 代表了实现这一愿景的关键一步。我们与社区一起对平台架构进行了重大变更,包括支持服务网格的能力,这将使我们的用户能够处理任何跨供应商、环境和生态系统的部署。在未来,我们将会更加深入支持更多新兴的生态系统”。

英文原文: https://konghq.com/blog/kong-1-0-ga/

评论

发布