API管理与架构实践:从基础概念到最佳实践
立即解锁
发布时间: 2025-08-20 02:30:45 阅读量: 2 订阅数: 7 


现代数据管理与架构:从理论到实践
# API 管理与架构实践:从基础概念到最佳实践
## 1. Serverless 与函数即服务(FaaS)
### 1.1 Serverless 概念
Serverless 并非意味着没有服务器,而是一种云计算执行模型。在 Serverless 模式下,所有基础设施细节对用户隐藏。
### 1.2 函数即服务(FaaS)
函数即服务(FaaS)是微服务架构设计的一种新模式,属于较新的云计算服务类别。通过 FaaS,单个函数(即业务逻辑片段)可进行部署和执行。工程师借助 FaaS 能开发、运行和管理应用功能,而无需构建和维护相关基础设施,函数按需启动,并采用按使用付费的许可模式,这种隐藏基础设施的模式也称为 Serverless。
每个函数通常有对应的 API,用于调用和唤醒函数,其设计原则与其他 API 相同。在域边界内,函数可直接使用;跨越域边界时,Serverless API 需进行拥有、签约和在 API 仓库注册等操作。
Serverless 函数通常异步运行,因其运行速度可能较慢。云计算中,大部分快速资源分配给昂贵或计算密集型应用,Serverless 函数使用剩余的“廉价”计算资源,因此响应时间难以预测。异步函数可使用消息队列存储结果,等待其他进程(函数)获取。
## 2. 服务网格(Service Mesh)
### 2.1 服务网格与 API 网关对比
服务网格与 API 网关在功能上有相似之处,都处理解耦、监控、发现、路由、认证和限流等任务,但主要区别在于内部服务间通信。服务网格内的通信不进行外部路由,而是在微服务运行的内部服务边界内进行。
### 2.2 服务网格的实现
服务网格通过控制平面和数据平面两个服务实现。控制平面用于定义路由、策略、安全等;数据平面进行路由操作,并执行策略和安全措施。
### 2.3 API 架构中的微服务模式
| API 模式 | 描述 |
| --- | --- |
| 现代应用 | 可通过 API 网关直接暴露,使用 REST/JSON 等现代通信协议 |
| 遗留应用 | 需要通过 ESB 进行额外解耦,ESB 服务可封装在 API 网关中 |
| 微服务 | 内部通过服务网格通信,需对外暴露的 API 通过 API 网关解耦 |
### 2.4 服务网格与 API 网关的使用建议
目前最佳实践是同时使用服务网格和 API 网关。服务网格是专门用于管理微服务架构内服务间通信的基础设施层,通常以微服务形式实现。对于企业解耦,不建议仅使用服务网格,因为并非所有域都采用微服务架构。将基于微服务的域与非微服务域解耦的实用方案是部署独立的 API 网关。
## 3. 微服务域边界
### 3.1 域边界的重要性
管理微服务时,为服务提供者和消费者的微服务设置逻辑边界很重要。在同一平台运行多个微服务时,划分逻辑边界有助于各域管理复杂性和与其他域的依赖关系。采用领域驱动设计模型设置服务边界,当边界上下文变化时,边界也需相应改变,服务需进行解耦。
### 3.2 微服务的两次解耦
- **域内解耦**:在域边界内,一个微服务与同一域内的其他微服务解耦,此时微服务 API 设计可更具技术性,不直接与其他域共享,也不在服务目录中发布。
- **域间解耦**:不同域的微服务通信时再次解耦,此时 API 需针对消费者进行优化,遵循面向读取的设计原则。
设置域边界时,会发现与数据产品管理以及不同域间数据共享有显著重叠。内部业务逻辑和数据应保持内部性,不向其他域暴露。跨越域边界时,API 设计和注册需遵循多种原则。
## 4. 生态系统通信
### 4.1 内部与外部服务通信分离的原因
许多组织探索基于 API 和 Web 的新业务模式,这促使架构明确区分内部和外部服务通信,原因如下:
- **设计规范差异**:组织内部使用的语言受公司控制,外部 API 设计格式和结构常由其他方或法规决定,如欧洲银行业的 PSD2 指令要求银行严格按账户、交易对手、交易等组织 API,复用现有内部服务时可能需额外转换。
- **安全要求不同**:暴露在公共 Web 的 API 需额外关注,因外部方不可信或未知,需进行监控、限流,并使用身份服务提供商确保安全访问。
- **商业协议需求**:可根据商业协议对 API 调用进行限流,商业提供的外部 API 通常有消费计划,并按 API 调用次数计费,API 监控需区分不同用户。
### 4.2 额外 API 层的作用
外部和公共 Web 服务通信可能需要在内部服务和外部消费者之间添加额外的 API 层,用于进行外部服务提供者与内部企业环境之间以及企业环境内部的调解。
虽然技术上可使用单个 API 路由内部和外部流量,但考虑 API 业务策略,额外的抽象层可促进更快创新,减少与内部环境的耦合。此外,外部环境的不同安全控制(如额外日志记录、DDoS 保护、不同身份提供者等)也是分离内部和外部通信的原因。
### 4.3 生态系统通信对 API 策略的影响
外部 API 和生态系统通信对 API 策略有重大影响,要求
0
0
复制全文
相关推荐








