但是,我知道API网关处理流量north-south
和服务网格east-west
。
API网关使服务易于使用,而服务网格则管理和控制网络内部的服务。
是否仍然可以通过服务网格Istio替换API网关?
请建议我是否缺少任何内容,或者与服务网格一起使用API网关会更好?
答案 0 :(得分:2)
是的,API网关在功能方面与服务网格重叠。它们在使用的技术(例如Envoy)方面也可能有重叠。他们的角色有很大不同。
在微服务/云原生架构的边界,API网关提供了三种主要功能,服务网格无法以相同的程度解决这些问题:
API网关的核心功能是为边界之外的客户端提供稳定的API接口。从克里斯·理查森(Chris Richardson)的《微服务模式手册》中,我们可以将“ API网关模式”解释为:
显着简化了一组API /微服务的调用
为一组特定的用户,客户端或使用者模拟“应用程序”的内聚API。
此处的关键是API网关,在实现后将成为客户端的API,成为应用程序体系结构的单个入口点
API网关的另一个重要功能是“管理”允许哪些数据/请求进入应用程序体系结构以及允许哪些数据/响应。这意味着,网关将需要深入了解进入架构的请求或那些发出的请求。例如,常见的场景是Web应用程序防火墙以防止SQL注入攻击。另一种是“防止数据丢失”技术,可以防止在请求PCI-DSS / HIPPA / GDPR时返回SSN或PII。边缘是帮助实施这些政策的自然之所
API网关提供的最后一个主要功能是边缘安全性。这涉及对应用程序体系结构之外的用户和服务提出挑战,以提供身份和范围策略,从而可以限制对特定服务和业务功能的访问。这与上一节有关。
一个常见的示例是能够绑定到包括Open ID Connect在内的OAuth / SSO流。这些“标准”所面临的挑战是它们可能没有完全实施或实施不正确。 API网关需要一种灵活地适应这些环境并提供自定义的方法
https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/