云原生中为什么需要API网关
云原生中需要API网关,是因为API网关对于克服安全和访问、可靠性和性能以及可见性和治理等API挑战至关重要。从本质上讲,API网关是大规模管理API访问的主要控制点,负责生产环境中API的配置、发布、版本回滚、安全、负载均衡等。
1.什么是API网关
在最基本的形式中,API网关接收API请求并返回答案,充当API使用者和一个或多个API服务之间的中间人或“中间件”。API网关跨API 服务系统处理常见任务,例如用户身份验证、速率限制、实时指标等。
API网关的目的是提供一个面向消费者的外观,用于隐藏内部网络中的许多后端应用程序,这些应用程序通常可能是应用程序代码和平台的混合:虚拟机上的遗留单体应用程序,或者容器化或无服务器微服务。
2.为什么需要API网关
API网关对于克服安全和访问、可靠性和性能以及可见性和治理等API挑战至关重要。它是API全生命周期管理的关键基础组件,负责生产环境中API的配置、发布、版本回滚、安全、负载均衡等。
API网关是所有终端流量的入口,负责把终端的API请求路由到正确的上游服务进行处理,然后再把返回的数据返回给原始请求方,同时保证整个过程的安全、可靠和低延迟。
在云原生整个微服务架构中,API网关充当着非常重要的一环,它不仅要负责外部所有的流量接入,同时还要在网关入口处根据不同类型请求提供流量控制、日志收集、性能分析、速率限制、熔断、重试等细粒度的控制行为。API网关一方面将外部访问与微服务进行了隔离,保障了后台微服务的安全,另一方面也节省了后端服务的开发成本,有益于进行应用层面的扩展。与此同时,API网关也应具备解决外界访问带来的安全问题,例如TLS加密、数据丢失、跨域访问、认证授权、访问控制等。
延伸阅读
云原生中的四大核心要素是什么
云原生的四大核心要素是微服务技术、DevOps、持续交付、容器化。在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等,云原生应用也就是面向“云”而设计的应用。
1.微服务技术
微服务是一个独立发布的应用服务,可以作为独立组件升级、灰度或复用等,每个服务可以由专门的组织来单独完成,依赖方只要定好输入和输出口即可完全开发,甚至整个团队的组织架构更精简,沟通成本低、效率高。
2.DevOps
DevOps字面上是组合词——Dev、Ops,即开发人员、运维人员。实际上,DevOps是一组过程、方法与系统的统称,DevOps强调高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的声明周期管理,从而更快、更频繁地交付更稳定的软件。
3.持续交付
敏捷开发要求持续交付,因为敏捷开发要求随时有一个版本可以上到大群环境,所以要持续交付。持续交付目的的快速应对客户的需求变化,要求发布非常频繁,所以会存在多个版本同时提供服务的情况,因此需要支持灰度发布/金丝雀发布等。
4.容器化
Docker是软件行业较受欢迎的软件容器项目,Docker起到应用隔离作用,为微服务及其所需的所有配置、依赖关系和环境变量移动到全新、无差别的运行环境,移植性强。但是docker对于分布式应用的部署和编排没有考虑,在网络和存储方式都没有提出比较好的方式,包括docker-compose。

