精通API架构:设计、运维与演进
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

10多年前,当我在英国《金融时报》构建第一个API时,并没有那么多API。我们实现的是单体架构,API仅供外部第三方访问我们的内容。

然而现在,API无处不在,它们是成功构建系统的核心。

这是因为,在过去的10年里,有几件事结合在一起改变了软件开发的方式。

首先,我们可用的技术发生了变化。云计算的兴起为我们提供了自助式、按需配置的服务。自动化构建和部署管道使我们能够进行持续集成和部署,容器及其相关技术(如编排)让我们能够在分布式系统中运行大量小型、独立的服务。

为什么我们要那么做?因为研究表明,成功的软件开发组织具有松耦合的架构和独立自主的团队。这里的“成功”是指对企业产生积极影响:增加市场份额、改进生产效率和提升盈利能力。

现在的架构往往更加松耦合、分布式,并且围绕API构建。你希望API易于发现、有较强一致性且不会给消费者带来问题,即使消费者执行了意外操作或彻底离开。任何其他解决方案都会将工作耦合在一起,减缓团队的开发速度。

在这本书中,James、Daniel和Matthew提供了一份全面且实用的指南,教你如何构建高效的API架构。内容涵盖多个领域,从如何构建和测试单个API到如何部署它们的生态系统,以及如何对它们进行有效的发布和运维,最重要的是如何使用API来演进你的架构。我在《金融时报》构建的第一批API已经不存在了,我们从头开始重新构建了那些系统。那样做代价不菲,James、Daniel和Matthew提供了一个模板,教你如何应对不可避免的变化,并使用API作为关键工具来演进你的系统。

软件架构被定义为那些既重要又难以改变的决策。这些决策将决定你项目的成败。

作者的关注点不是抽象的架构,而是如何在你自己的组织中应用架构。决定采用API网关还是服务网格,以及具体选择哪一款产品,都是你应该谨慎对待并仔细评估的难以回退的决策。James、Daniel和Matthew在他们认为适当的地方给出了明确的、有见地的指导,而在不太明确的地方,他们提供了一个框架来帮助你根据自己的情况做出最佳选择。

他们用一个实用的现实案例研究来说明概念,并展示如何在实践中真正运用这些概念。该案例研究在整本书中不断演进,就像真实的系统一样。作者通过这种方式说明你不必一开始就把所有工作都做好,而是可以逐步演进你的架构,逐步提取服务,并在需要时添加API网关和服务网格等工具。

我在构建第一个API时犯了很多错误。我希望当时有这样一本书,能帮助我了解自己可能会在哪里犯错,并引导我做出明智的决策。

我向任何在以API为核心的系统上担任领导工作的人推荐这本书。有了它,你将能够为组织中的每个API构建团队开发一套标准化的工具和规范。

——Sarah Wells,

QCon伦敦会议联席主席,独立顾问,前《金融时报》技术总监,

2022年9月于英国雷丁