今天,我们很高兴地发布Kong 1.0 GA——一个可扩展、快速、开源的微服务API网关,用于管理、保护和连接混合和云原生架构。Kong位于服务之前,并可通过插件进行扩展,包括身份验证、流量控制、可观察性等。
\n经过多年的开发,成千上万的用户在生产环境中使用了Kong,我们增加了众多重要的功能,并进行了大量的修复,让Kong变得更快、更灵活、更具弹性。
\n用户现在不仅可以将Kong作为API网关部署,还可以作为独立的service-mesh代理。Kong插件提供了与服务网格相关的关键功能,可以与其他云原生技术集成,包括Prometheus、Zipkin、健康检查、金丝雀部署、蓝绿部署,等等。
\n借助边车代理提供的跟高的可见性、安全性和弹性,服务网络有助于解决微服务所面临的一些挑战。除了这些好处之外,与其他供应商相比,Kong的服务网络提供了一些关键优势,所有这些优势都源于我们注入了与边缘边车代理相同的运行时。
\n \n在1.0版本中,Kong集群创建了一个Certificate Authority,Kong节点可以用它来建立Mutual TLS身份验证。此外,Kong现在可以路由原始TCP流量,这意味着Kong现在可以平衡来自邮件服务器和其他基于TCP的应用程序的流量,一直从L7到L4。
\n除了REST之外,Kong 1.0现在还支持gRPC协议。gRPC基于HTTP/2,为希望以低开销和低延迟连接东西向流量的Kong用户提供了另一种选择,有助于用户在混合环境中进行更多网格部署。
\nKong 1.0引入了一个新的数据库抽象对象(Database Abstraction Object,DAO),它可以简化从一个数据库模式到另一个数据库模式的迁移,并且停机时间几乎为零。新的DAO允许用户一次性升级他们的Kong集群,无需手动升级每一个节点。
\nPDK是一组Lua函数和变量,自定义插件可用它们实现自己的逻辑。尽管它早在0.14.0中就已发布,不过1.0版本的变更可以保证使用PDK构建的插件与1.0及更高版本兼容。与从头开始编写插件相比,它提供了很多优势,其中包括:
\n所有Kong插件都需要一系列标准功能,而PDK提供了这些开箱即用的功能,既节省了插件开发人员的时间,又保证了使用PDK开发的插件具有相似的行为(相同的解析规则、相同的错误等),使它们更易于使用。
\nPDK的接口比ngx_lua API更容易使用。PDK允许用户将某些插件操作(例如日志记录或缓存)与其他插件隔离开。
\nPDK的语义版本化可以保持向后兼容。在未来,插件将能够锁定它们所依赖的PDK版本。
\n借助Kong,你可以立即将在边缘使用的功能扩展到网格中。将Kong部署在与容器相同的主机上,就可以轻松地将容器中的服务移到网格中。
\n将网格中的服务与所有环境、平台和供应商的服务相连接。在不修改服务代码的情况下,使用Kong来弥合云原生设计与传统架构模式之间的差距。
\n我们的插件架构为用户提供了无与伦比的灵活性。Kong插件提供了开箱即用的关键功能,并支持与其他云原生技术的无缝集成,包括Prometheus、Zipkin和其他很多技术。插件在本地与每个服务运行在一起,不需要额外的网络跳转到另一个组件。
\nKong及其插件针对性能进行了优化。其他平台可能会在容器或网格的服务之间引入延迟,而我们引入的延迟不到一毫秒。
\nKong 1.0允许用户在配置中指定单独的控制平面和数据平面。以前,你需要单独配置每个集群的数据平面和控制平面,现在你可以在同一个地方配置,然后反映在多个Kong集群中。独立的数据平面和控制平面配置让Kong用户可以更好地控制大型部署。这种配置分离让部署变得更加安全,因为你可以将Kong的配置放在防火墙后面,仅暴露出数据平面。
\n \n为了确保数据平面的性能能够满足服务网格和其他去中心化架构的需求,我们对插件Runloop进行了一些改进。
\n插件现在可以在预读取阶段执行代码。Kong用户可以在建立初始TCP连接时初始化插件来提高性能。
\n所有插件都有一个新字段run_on,用于在服务网格和“常规API网关”模式下控制插件的激活。这样可以更精细地控制插件的活动,避免冗余并进一步提高性能。
\nKong 1.0还改进了与AWS Lambda和Azure FaaS的交互,包括Lambda Proxy Integration和Azure Functions插件的改进,用以过滤掉在将HTTP/1.1响应代理到HTTP/2客户端时不被HTTP/2允许的标头。
\n你可以在Changelog中找到所有Kong版本的变更列表。1.0版本包含了很多重大变更,因此在升级时请务必阅读1.0版本的升级路径。
\n虽然我们现在承诺Kong会保持稳定和向后兼容,但我们仍然有很长的路要走。我们很高兴继续与你一起构建Kong项目和社区!我们非常感谢社区为实现这一里程碑提供的所有支持,我们期待着继续共同构建和成长。
\n \n自从四年前开源Kong以来,来自世界各地的数百名贡献者对Kong代码库进行了无数次的改进,这些改进让我们迎来了1.0版本。我们十分感谢Kong的用户和贡献者。我们最初在开源Kong时,并没有想到它的社区会有如此惊人的增长,并且一直在持续!
\nKong CTO Marco Palladino说,“在开发Kong时,我们怀揣着一个混合世界的愿景,而Kong 1.0代表了实现这一愿景的关键一步。我们与社区一起对平台架构进行了重大变更,包括支持服务网格的能力,这将使我们的用户能够处理任何跨供应商、环境和生态系统的部署。在未来,我们将会更加深入支持更多新兴的生态系统”。
\n英文原文:https://konghq.com/blog/kong-1-0-ga/
\n