Intuit 使用 Istio 和 OpenAPI 3 运行时业务流程
公司概况
Intuit 公司规模庞大,拥有 7000+ 命名空间、900+ 团队、5000+ 开发人员、200+ 集群和约 77,320 个节点。
业务流程 API 挑战
Intuit 的业务流程 API 集成在多个 API 上(如付款 API、银行 APP、前端 API、钱包 API),但面临以下挑战:
- 缺乏文档、治理和可见性
- API 编排进展缓慢
- 开发和交付新编排 API 耗时,技术复杂性高
随着时间推移,前端 API 从简单代理/聚合器演变为整体编排。
低代码/无代码解决方案
Intuit 采用以下方案解决 API 编排问题:
- 声明性描述 API 编排
- API 协议中的运行时语义
- 动态交通路由规则
OpenAPI 3 规范
OpenAPI 3(原名 OpenAPI 规范 3.0)提供标准格式定义 RESTful API,并支持自定义扩展(如 x-amazon-apigateway-authtype)。
运行时业务流程支持的 API 模式
- API 聚合:将多个 API 调用聚合为单个响应(如支付和钱包 API 聚合为银行 API)
- API 转换:转换现有 API 响应
- API 代理:代理现有 API 请求
运行时清单生成
通过 API 合同生成 Kubernetes 资源和 Istio 路由规则:
- API 合同
- Kubernetes 清单
- 部署
- 服务
- 入口
- 业务流程
- CLIIstio 路由规则
- 虚拟服务
交通路由规则
- 南北交通路由:由 Admiral 自动复制 Istio 虚拟服务到其他集群,支持跨 K8s 集群
- 东西向流量路由:服务网格通过 Istio 虚拟服务实现,API 网关作为服务网格上的服务 0,支持 mTLS 和专用网络
生态系统收益
- 加快新编排 API 投放市场速度
- 处理授权/认证
- 边缘处 API 定制化
- 实现 API 治理与审查
- 优化 API 响应时间
Demo 展示
- 基于标准 API 规范调度
- 声明式定义提供更好可见性和治理模型
- 动态路由规则减少维护开销
- 调度隔离支持独立和安全更新
资源/链接
- 一个寻呼机
- 使用 Istio 和 Admiral 的 API 编排
- OpenAPI 3
- Admiral(用于自动多集群配置)
- 服务网格上的 API 网关
- 完全零信任