什么是API生命周期管理?
API生命周期是团队必须采取的一系列步骤,以便成功设计、开发、部署和使用API。遵循明确定义的API生命周期的团队效率更高,并能更好地提供高质量的API。
稳定的API生命周期是有效API治理战略的重要组成部分,因为它为特定阶段的政策和流程奠定了基础,这些政策和流程支持协作,并使组织能够最大限度地提高其API战略的价值。
API生产商和消费者遵循单独但相关的API生命周期。在本文中,重点介绍生产者生命周期,我们将讨论定义明确的API生命周期如何帮助团队成功实施API优先策略。然后,我们将详细探索生产者API生命周期的八个阶段,并回顾API生命周期管理的一些最佳实践。
API生命周期管理有什么好处?
除了使团队更容易采用API优先的方法外,API生命周期管理还可以导致:
- 提高生产力:API生命周期管理是关于建立久经考验的流程来设计、开发和部署API。这些流程通过减少混乱和不必要的工作来改善协作,这可以带来实质性和可持续的生产力收益。
- 更高的可见性:API生命周期管理为每个API相关项目创建了清晰的路线图,使领导者能够更好地了解API的轨迹。它还为有效的API监控策略奠定了基础,该策略可用于跟踪每个API的运行状况、性能和使用情况。
- 组织对齐:API生命周期管理为组织内的所有API相关工作建立了通用词汇。这不仅有助于团队更有效地沟通,还通过确保每个人都朝着共同的目标努力来提高士气。
API生命周期的8个阶段是什么?
每个API都是不同的,因此随着团队将其带入生活,将遵循一个独特的生命周期。尽管如此,以下八个阶段提供了一个有效的蓝图,可以帮助组织标准化其流程、政策和工作流程。
阶段1:定义
在API生命周期的第一阶段,产品经理和其他利益相关者必须定义单个API或API组的运营、业务和安全要求。这要求他们同意API的预期用例,并确定将在生命周期的每个后续阶段进行移动的团队成员。他们还应该创建和配置一个团队成员可以协作的专用工作区,以及一个连接到CI管道的GitHub存储库。这些步骤有助于稳定API生命周期的其余部分,并为特定阶段的工作建立位置和工具。
第2阶段:设计
API设计涉及就API如何向消费者公开数据做出有意的决定。然后,这些决策被捕获在API定义中,该定义是API预期功能的人类和机器可读表示。API定义符合API规范,如OpenAPI和AsyncAPI,它们为API定义提供了标准化的格式和词汇,并为API合同、文档、模拟和测试奠定了基础。
领导者可能希望通过定义组织模式和实践来塑造API的表面积和行为来标准化设计阶段。例如,他们可能要求所有团队遵循OpenAPI规范,他们还可以定义可以通过自动检查强制执行的大写、命名和标点符号的样式规则。
第3阶段:发展
设计完API后,开发人员负责编写实现其预期功能的代码。大多数开发团队使用Git进行版本控制,这使他们能够安全地管理更改,并在必要时恢复到以前的迭代。他们通常还使用GitHub或GitLab存储库来存储他们的源代码,跟踪与代码相关的问题,并进行代码审查。开发工作流程差异很大,因此领导者必须明确定义这些流程,以标准化其团队的方法。
第4阶段:测试
API测试发生在API生命周期的“开发”、“安全”和“部署”阶段,使开发人员和QA团队能够确认API是否按预期工作。API测试可以手动执行,也可以从多个地理区域或在CI/CD管道中自动运行。早期测试,通常有助于团队在问题根深蒂固或进入生产之前浮出水面并进行补救。
有许多不同类型的API测试,每个测试都有其独特的目的。例如,合同测试用于确保任何更改不会导致API偏离设计阶段的承诺。相比之下,性能测试可以帮助确认API能够在适当的时间内提供响应。
第5阶段:安全
API生命周期的“安全”阶段涉及检查API的常见安全漏洞,这些漏洞可能会损害应用程序的整体安全态势。例如,重要的是要确认API的身份验证逻辑只允许合法用户与API交互并访问其数据。这些API安全检查可以在CI/CD管道中手动或自动运行,它们有助于确保组织投资组合中的每个API都遵循相同的安全标准。
第6阶段:部署
API生命周期的“部署”阶段是指将API发布到开发、分期和生产环境的过程。许多团队利用CI/CD管道和API网关来标准化部署流程,并确保每批更改在到达消费者之前都经过适当的测试和安全。一致的流程使部署更具可预测性,这对每周多次发布新代码的敏捷团队尤为重要。
第7阶段:观察
API生命周期的“观察”阶段涉及在生产中收集、可视化和提醒API遥测数据。在此阶段,SRE和DevOps工程师将配置监视器,以自动通知他们API性能和安全问题,并利用将API性能数据置于上下文中的APM工具。在错误、延迟和安全漏洞对依赖服务、合作伙伴和客户产生负面影响之前,API可观察性在浮现错误、延迟和安全漏洞方面发挥着至关重要的作用。
第8阶段:分发
在“分发”阶段,团队将专注于提高其API的可发现性。API目录在这个阶段起着至关重要的作用。公共API目录帮助API生产者接触和支持第三方消费者,而私有API目录使内部团队更容易协作和使用彼此的API。每个API还应包括详细的描述和相关标签,这将有助于确保目录的搜索引擎可以显示它。
分发可能是API生命周期的最后阶段,但这还不是结束。API工作具有高度迭代性,团队在处理消费者反馈和开发新功能时,将不断返回到最早的生命周期阶段。