在微服务架构中是否可以通过服务网格替换API网关?

时间:2020-04-13 06:56:00

标签: docker kubernetes google-cloud-platform istio

但是,我知道API网关处理流量north-south和服务网格east-west

API网关使服务易于使用,而服务网格则管理和控制网络内部的服务。

是否仍然可以通过服务网格Istio替换API网关?

请建议我是否缺少任何内容,或者与服务网格一起使用API​​网关会更好?

1 个答案:

答案 0 :(得分:2)

是的,API网关在功能方面与服务网格重叠。它们在使用的技术(例如Envoy)方面也可能有重叠。他们的角色有很大不同。

在微服务/云原生架构的边界,API网关提供了三种主要功能,服务网格无法以相同的程度解决这些问题:

  1. 边界去耦

API网关的核心功能是为边界之外的客户端提供稳定的API接口。从克里斯·理查森(Chris Richardson)的《微服务模式手册》中,我们可以将“ API网关模式”解释为:

显着简化了一组API /微服务的调用

为一组特定的用户,客户端或使用者模拟“应用程序”的内聚API。

此处的关键是API网关,在实现后将成为客户端的API,成为应用程序体系结构的单个入口点

  1. 允许对数据进行严格控制

API网关的另一个重要功能是“管理”允许哪些数据/请求进入应用程序体系结构以及允许哪些数据/响应。这意味着,网关将需要深入了解进入架构的请求或那些发出的请求。例如,常见的场景是Web应用程序防火墙以防止SQL注入攻击。另一种是“防止数据丢失”技术,可以防止在请求PCI-DSS / HIPPA / GDPR时返回SSN或PII。边缘是帮助实施这些政策的自然之所

  1. 桥接安全信任域:

API网关提供的最后一个主要功能是边缘安全性。这涉及对应用程序体系结构之外的用户和服务提出挑战,以提供身份和范围策略,从而可以限制对特定服务和业务功能的访问。这与上一节有关。

一个常见的示例是能够绑定到包括Open ID Connect在内的OAuth / SSO流。这些“标准”所面临的挑战是它们可能没有完全实施或实施不正确。 API网关需要一种灵活地适应这些环境并提供自定义的方法

https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/