采用 DevOps 后,组织已经认识到,通过在开发生命周期的早期阶段落实决策和任务,可以发现并降低开发项目的风险。此过程通常称为“左移”。因此,现代开发者需要做更多事情才能向客户提供功能。他们需要设计可伸缩的软件架构、开发安全、高性能的代码、设置基础设施、执行测试、部署和监控其应用,等等。虽然这种方法有很多好处,但它也让开发者花在编写代码上的时间更少,这可能会对软件质量产生不良影响,或者导致新功能发布的延迟。
同理,DevOps 工程师专注于优化对外部客户的软件交付,而作为平台工程师,您的重点在于构建一个平台,为您的内部客户(也就是开发者)提供一致的无缝体验。构建内部平台的过程是怎样的?您的日常任务应该包括为开发者打造能够实现自主权的标准化体验。这样做可以减轻内部客户在开发和部署新服务时的认知负担。内部开发者平台嵌入了特定的决策、标准和流程,可为开发者打造黄金路线。这样一来,您的开发者就可以专注于编码,从而为客户打造更好的软件体验。换言之,除了左移外,组织还应该“下移”,并将更多的责任推到平台中:
为了让开发者能够充分利用您的平台,在开发 API 时,您应该:
出色的应用在交付商品和服务方面需要考虑周全且始终如一。它隐藏了复杂性,使其操作流畅且令人愉悦。最终目标应始终是为用户提供出色的体验,而打造成功产品的组织始终从“由外而内”着手,主要以用户为中心。开发者要能够打造具有启发性的应用,才能提供出色的体验。要实现这一目标,为开发者提供出色的 API 至关重要。出色的 API 可以消除组织的复杂性,让开发者能够专注于打造用户体验。不过,出色的 API 并非凭空想象。这些组织还将其 API 视为数字产品,将整个团队委托给他们进行创建和管理,这是其平台的一项重要功能。
开发者用来构建数字产品的平台也需要被视为产品,因此平台工程团队也应对用户(开发者)采取由外而内的方法,以了解他们的需求并为他们打造愉悦的体验。作为平台工程师,您负责创建、构建和统一内部模板和工具,以供开发者在构建软件时使用,无论他们是开发前端应用、后端服务,还是生产和使用 API。团队的职责是确定如何测试、保护、部署和管理贵组织开发的软件。打破孤岛有助于更好地创建 API。
与软件开发的其他方面一样,您的团队应阻止开发者单独重新创建存在交叉问题的 API 架构元素。相反,您应该为他们提供一套开箱即用的简单工具和配置选项。在 API 管理方面,您的平台最适合处理以下方面的问题(但不限于这些问题):
Apigee 是一个 API 管理平台,可为平台团队及其内部客户提供一系列功能,用于更高效地构建、治理和运营 API:
Apigee 可为开发者提供额外的安全、发现和可观测性层,帮助 API 生产者构建和管理用于公开其业务逻辑的 API。产品团队可以将其 API 捆绑并发布为灵活的“产品”集(具有不同的消费行为)。Apigee 还有助于 API 使用者轻松了解提供哪些 API 产品、浏览文档,并快速上手开始开发应用,最大限度地减少障碍。现在,借助生成式 AI,Apigee 还在重新构想 API 的开发方式,让经验丰富的开发者和新开发者都能更轻松地无缝管理其系统之间的通信。
在 Apigee 中管理 API 的过程始于构建 API 代理。API 代理公开了开发者用于访问后端服务的接口。它们访问生产者创建的 Apigee API 代理,而不是直接使用这些服务。借助代理,您可以将后端与实际 API 分离开来,为客户提供更可靠的体验。这样,您就可以在不影响客户的情况下更新和更改后端。API 团队可以利用该代理提供的功能来保护和控制其 API 的行为。为了让 API 项目能够随着生产和消费团队数量的增长而成功扩展,平台必须通过无缝的自动化流水线和可重复使用的功能实现黄金路径。
假设您的公司想要打造新的 API,以便通过这些 API 来创造额外收入。您的团队与开发者会面,针对应如何创建这些新 API 制定全面的策略。现在,您团队的任务是满足这些要求,并以包含通用政策、流量路由控制和错误处理惯例的专业 API 模板的形式对它们进行标准化。根据具体用例,可能会有多组模板来涵盖每个用例。一个常见的用例是为本地环境中运行的旧版后端提供缓存或转换政策。apigee-samples 代码库是一个很好的切入点,我们的 DevRel 代码库也包含示例代理模板,供参考之用。除了政策模板之外,您的平台团队还可以对开发者在构建和部署代理时所使用的流水线进行标准化。Apigee 提供了多个管理 API 和工具,您可以利用它们来创建支持这些黄金路线的 CI/CD 流水线。我们发布了多个参考实现供您参考。
源代码中的 MVP API 代理流水线可能如下所示:
进一步来说,流水线可能会在内部目录中注册 API,例如 Apigee 的 API Hub。API Hub 是一款可帮助组织记录、查找和发布 API 相关信息的工具。该中心内置的注册数据库包含每个 API 版本在其整个生命周期内的详细信息,包括相关规范、当前部署、所有权和联系信息、依赖项等。除了内置属性之外,客户还可以定义自己的类目,供用户搜索和过滤。为了进一步帮助提高质量和一致性,API Hub 还提供了统计信息摘要,使开发者能够更好地了解其 API 设计是否符合预期标准。API Hub 的注册表可以同步到内部开发者门户,例如 Backstage 或其他内部开发者平台工具。
最后,对于外部使用者,该流水线可将 API 产品连同其他文档和用户指南发布到面向公众的 API 门户,并进行自定义样式设置和品牌推广。
在大规模构建 API 时,最佳实践是重复使用通用政策,以提高开发速度并缩短交付时间。在 Apigee 中,共享流使您能够在 API 之间强制执行标准化和一致性。借助共享流,您可以合并政策和资源,并使用 FlowCallout 政策或流钩子在多个 API 代理之间共享政策和资源。共享流通常与 API 代理分开开发,通常由负责特定领域的平台团队或主题专家开发。例如,您可以开发一个共享流来捕获一组标准请求和响应字段,并将它们写入 Cloud Logging。另一种可能是输出标准化错误消息和代码的错误处理流,也可能是与第三方身份提供方集成的身份验证流。可以使用与 API 代理相同的工具和概念来自动执行、测试和部署共享流开发。您可以在此处找到常见的共享流的其他一些示例。
在 DevOps 兴起期间,GitOps 越来越受欢迎。此框架利用了一些最佳实践,例如通过 Git 使用版本控制、拉取请求、CI/CD 流水线、自动化以及合规性政策。查看此博客,其中详细介绍了 API 提交的最佳做法。可以将这些做法融入开发者的黄金路线。例如,开发者可以使用 Duet AI 设计 API,以创建 OpenAPI 规范,然后再将其推送到功能分支,这样会触发拉取请求。拉取请求获批并合并后,系统会自动启动 CI/CD 流水线,并针对每个环境重复此流程。在 Apigee 中,您的平台团队可以创建单独的组织和环境,以便在开发生命周期中的各个阶段部署和测试代理。使用 GitOps 策略,Git 代码库的每个分支都可以映射到 Apigee 环境。
使用 Apigee 的随用随付模式的客户可以选择具有不同功能的不同环境类型,并且客户可以针对不同的用例创建一系列环境类型。
通过在源代码库中托管代理和共享流代码并使用 GitOps,您可以为 API 开发者创建专属的黄金路径,使他们能够专注于设计出色的 API 和实现底层业务逻辑。为方便起见,开发者还可以使用适用于 VS Code 的 Cloud Code 插件在本地进行开发和测试。
开发者和平台团队之间的协作更加紧密,开发者不必再费心于所有工作。通过降低复杂性,开发者可以专注于自己最擅长的事情,从而为客户带来更好的体验。将您的 API 和平台视为您组织的产品,可以提高自主性、速度、质量和创新能力。通过使用上述策略,您可以降低开发者的负担并帮助他们构建更好的 API。准备好开始了吗?您可以免费注册并开始在自己的免费沙盒中构建。想要详细了解价格?请查看 Apigee 的新价格并使用我们的资源来帮助您开始在开发者平台中嵌入 API 管理功能。