0.1 架构之旅
任何长途旅行的人都不可避免地会问自己一个问题(可能是一再地):“我们到了吗?”最开始询问时,你会查看GPS或路线规划工具,并给出一个估计值,希望途中不会遇到任何延误。同样,构建基于API的架构对开发人员和架构师来说可能是一个复杂的旅程,即使有一个架构导航系统,但你的目的地是哪里呢?
架构是一段没有终点的旅程,你无法预测技术和架构方法会如何变化。例如,你可能无法预测到服务网格技术的使用会变得如此广泛,而一旦你了解了它的能力,就可能会考虑用其来演进现有的架构。影响架构变化的不仅是技术,新的业务需求和约束也推动着架构方向的变化。
增量价值交付并结合新兴技术的最终效果导致了演进架构的概念。演进架构是一种逐步改变架构的方法,重点是具备快速变化的能力,并降低负面影响的风险。在这个过程中,我们要求你记住以下关于API架构的建议:
尽管架构师希望能够对未来进行战略规划,但不断变化的软件开发生态系统使这一点变得困难。既然无法避免变化,我们就需要利用它。
——Building Evolutionary Architectures(由Neal Ford、Rebecca Parsons和Patrick Kua合著,O'Reilly出版)
在许多项目中,API是会随着更多系统和服务的集成而演进的。大多数开发人员构建的服务都专注于单一功能,而没有从消费者的角度考虑更广泛的API重用。
API优先设计是一种开发人员和架构师以消费者为中心考虑其服务的功能的方法,并据此设计出API。API的消费者可以是移动应用程序、另一个服务,甚至是外部客户。在第1章中,我们将探究支持API优先方法的设计技术,并了解如何构建能经受住各种变化的API,为更多的消费者群体提供价值。
好消息是,你可以从任何时间点开启基于API的架构之旅。如果你负责现有的技术仓库,我们将向你展示如何演进你的架构,以促使你在平台中使用API技术。另外,如果你很幸运,开始工作于一个新的项目,我们将根据多年的经验分享采用基于API的架构的好处,同时强调决策中的关键因素。