概述
API 是跨企业和云连接应用和数据的工具,而 API 管理就是指分发、控制、分析的这些 API 的过程。API 管理的目标,是让创建 API 或使用他人 API 的机构能够监控其 API 活动,确保满足使用 API 的开发人员和应用的需求。
许多企业都实施了各种 API 管理策略,力争及时响应快速变化的客户需求。在大多数情况下,企业会采用微服务架构,想要通过加速软件开发来满足需求。基于 HTTP 的 API 已成为微服务架构之间同步交互的首选方法。这些 API 是将所有微服务连接在一起的粘合剂。管理好这些 API,企业就能确保 API 的使用符合公司策略,并根据实际情况,以相应的安全级别进行监管(某些服务可能需要不同的安全策略)。
API 管理对您有什么用?
API 管理主要是集中控制 API 项目,包括分析、访问控制、实现盈利、开发人员工作流程等。借助 API 管理解决方案(如红帽 3scale API 管理),您就能更可靠、灵活、高质量和迅速地完成这一系列工作。要实现这些目标,并确保公共和内部 API 都可用且安全,API 管理解决方案应至少提供访问控制、速率限制和使用策略。大多数 API 管理解决方案通常还包括以下功能:
- 开发人员门户。开发人员门户是 API 管理中常见的典型工具。开发人员门户通常提供 API 文档以及开发人员入职流程,如注册和帐户管理。
- API 网关。API 网关是所有客户端的单一入口点。该网关还通过使用策略确定客户端与 API 的交互方式。
- API 生命周期管理。从设计、实施一直到停用,API 的整个生命周期都应得到充分管理。红帽 3scale API 管理是业内领先的 API 生命周期管理工具。
- 分析。用户需要实时了解 API 的状况,清楚知晓哪个消费者或应用正在调用哪个 API 以及调用频率。还需知道有多少个 API 出现故障,以及故障的原因。
- 支持 API 货币化。通过使用合同,让访问 API 背后的微服务这一行为产生效益。API 管理可让您根据指标定义使用合同,例如 API 调用的数量。消费者可以采用分段和差异化方式访问分层,并且不同段可以享受相应的服务质量。
在 API 的设计过程中充分考虑这些功能,可让 API 使用自我管理组件或云组件,进行流量控制、安全防护和访问权限政策执行。通过这个旨在提升性能、加强访问控制、为未来发展最好准备的基础架构平台,您就能够轻松地共享、保护、分发、控制这些精心设计的 API,实现盈利。
API 管理和微服务
微服务和 API 是云原生应用开发的基础,这种方法旨在通过快速开发创新应用组件来满足新的业务需求。但这种方法并不是完全之策。
将较大的系统拆分为小的组件,是创造微服务的关键技术挑战。正如我们所说,API 可让这些较小的组件相互连接并与数据源连接。
而如何协调许多频繁变化的微服务,是微服务架构带来的另一个挑战。借助服务发现,这一过程就变得简单许多。API 管理可提供必要的发现机制,确保找到可用的微服务,并通过开发人员门户共享有关如何使用这些微服务的文档。
微服务需要一种综合的安全防护方法。安全机制根据 API 的类型而不同:面向外部的服务所需的安全机制与面向内部的服务不同。对于不太关键的 API,使用 API 密钥进行简单保护通常就足够了。而对于外部或关键 API,就需要更安全的方法,如 OAuth。
准备为微服务设计 API?
动手前,先考虑以下的重要问题:
- 如何控制对 API 的访问?
- 如何获取指标和处理警报?
- 如何管理使用高峰?
- 谁负责 API 的正常运行时间?
- 我们如何看待不受欢迎的 API 使用情况?
如何衡量 API 管理工作的成功与否?
如果不衡量我们努力的效果,就无法评估我们的管理是否成功。通过分析,我们可以掌握有关 API 活动的数据,但我们仍必须定义到底什么是成功。在您企业内定义成功时,请考虑以下 5 个 API 的关键性能目标:
- 可靠性。可靠性是指 API 对开发人员是否方便可用。停机时间是衡量可靠性的有用指标。API 是否随时可用?另一个指标是配额,它定义了开发人员在特定时间范围内可以调用多少次 API。配额可以保护 API 不被滥用,使管理更具可预测性。有些 API 提供商都是根据配额来制定业务模式和定价。
- 灵活性。灵活性是指开发人员在采用 API 时是否拥有多种选项。API 的灵活性更大,则企业管理 API 需要投入的精力(和成本)更多。
- 质量。质量是指 API 行为是否符合开发人员的期望。这是一种衡量开发人员对 API 满意度的方法。
- 速度。速度可以通过访问延迟和吞吐量来衡量。限流或缓存等技术都可能会影响速度。
- 成本。衡量成本的目的是为开发人员提供最具性价比的支持。所有其他 4 个目标都多少有助于实现成本目标。