API网关概述

本文翻译自云原生新锐创业公司 solo.io的官方文档(网红posta大叔所在的公司),文中对于api gateway这个概念以及发展演变过程做了详细的论述,觉得写的很好,对于想了解api网关的人都应该阅读一下。

什么是API网关?

API网关是位于外部世界(客户端或最终用户)与数据中心或云中的后端服务之间的基础架构。 API(应用程序编程接口)是一组协议和功能,用于定义应用程序服务如何通信而不必知道如何实现。 此接口可用于彼此集成应用程序服务,并可以简化开发周期。 API网关用于接受传入的请求(流量),根据组织定义的一组规则和策略将它们路由到适当的后端服务,然后将适当的结果返回给最终用户或客户端。

API网关与API管理

API网关是整个API管理系统的一部分,尽管它不是新的概念,但随着我们采用自动化的自助服务平台(如Kubernetes和公有云),API网关的角色正经历身份认同危机。 API管理被定义为更广泛的学科,包括创建、发布、管理、报告和货币化API的过程。

传统的API网关解决方案并非为Kubernetes等高度动态的环境而设计,而是需要其他基础设施来保持运行、高可用性以及生产就绪等工作。 另外,与现代应用程序常用的分布式部署方式不同,这些解决方案通常以集中方式进行部署。

根据组织的需求以及您构建和维护的应用程序组合,可能需要API网关和管理工具。 当今的应用程序团队需要考虑其现有的API网关是否可以满足现有服务之外的新应用程序和基础架构的需求。

API网关可以做什么?

API网关位于外部环境和基础设施之间,以拦截所有传入流量,并按照管理员实施的规则和策略将其路由到适当的后端服务。

从架构上来说,API网关由数据平面和控制平面组成。 数据平面是流量从外部客户端和用户通过代理流向后端服务的地方。 这通常称为南北流量。 控制平面是定义和维护配置和策略的地方。 这些配置被推送到代理以调整流量或添加安全性检查(如身份验证)。 随着向云原生架构的发展,诸如 Envoy Proxy 之类的技术应运而生,以实现分布式系统所需的高性能应用程序通信。 Envoy由Lyft开发并于2016年开源,已成为边缘侧代理以及 servic mesh 架构中sidecar实现的首选。

随着组织采用微服务和Kubernetes应用程序模式,若想在访问由潜在的数百种不同后端服务组成的应用程序时确保良好的最终用户体验,API网关的作用至关重要。 API网关不仅限于微服务,还可以支持各种应用程序工作负载,包括单体应用和serverless functions。 API是应用程序服务通过其进行通信的接口,而网关是路由、整形和保护该流量的控制点。 当API网关拦截传入的请求时,可以应用安全规则来检查请求,对客户端或最终用户进行身份验证以及对请求进行速率限制,以保护后端服务免受攻击或失败。 此外,API网关可以路由和调整流量,以支持诸如金丝雀部署和影子流量之类的用例,以确保更安全的应用程序部署并维持最终用户体验。

挑战

对遗留的整体应用程序进行现代化改造既耗时又昂贵。 现有的解决方案不够灵活,这使IT团队面临着艰难的任务,即在支持现有业务和为客户提供新价值之间寻求平衡。

  • 完全重写遗留应用既昂贵又耗时
  • 为开发全新的应用程序而放弃遗留应用是不现实的

解决

通过现代的API网关Gloo可以重新控制IT转型,从而扩展您现有IT投资的价值,同时使您能够以业务步伐集成新技术而不会受到干扰。

  • 将遗留的单体、微服务和无服务器函数连接到一个混合应用程序中
  • 向现有应用程序添加微服务和无服务器函数新功能

原文地址:https://www.solo.io/solutions/api-gateway/

你可能感兴趣的:(API网关概述)