内部开发者平台集成了由专门的平台团队构建和维护的一系列精选技术和工具。此堆栈通常包括容器编排解决方案、基础设施即代码 (IaC) 工具,以及由开源项目提供支持的 CI/CD 流水线。
内部开发者平台 (IDP) 应被视为一种产品,开发者是其用户。关键在于覆盖他们的使用场景、收集反馈,并通过迭代持续打磨平台。IDP 是连接这些工具的层,它将这些工具的复杂性抽象化,让开发者可以通过简单的自助服务模型执行任务。目标是让正确之道更易达成,使开发者能够自信且自主地构建并发布。
认知负荷指个体在工作记忆中被占用的心智资源总量。可将其视为开发者的心智带宽。当带宽被非编码任务占用时,他们专注于解决复杂问题的能力就会下降。
开发者经常需要在数十种不同的工具、信息中心和配置文件之间切换,才能部署简单的更改。每次切换情境都会迫使大脑加载一组新信息,这会消耗大量脑力。不断地在工具和流程之间切换会增加认知负担,导致倦怠、错误增多和创新速度减缓。
平台工程是一门设计、构建与维护内部开发者平台的学科。可以这样理解:如果 IDP 是产品,那么平台工程团队就是负责其生命周期的产品团队。他们的客户是组织内的开发者。
这种方法意味着应将平台像其他软件产品一样对待。平台工程团队负责了解开发者的需求、定义路线图,并提供一套可靠、安全且易于使用的工具。
经常有人询问平台与门户之间的区别。虽然这两个术语有时可以互换使用,但它们代表了开发者体验的不同层面。内部开发者平台 (IDP) 就像整个引擎,包含为开发生命周期提供支持的所有工具、工作流和基础设施。
而内部开发者门户则是该引擎的信息中心。它是图形用户界面 (GUI),为开发者提供一个单一、集中的入口以访问平台功能。开发者门户可以帮助开发者发现和使用工具、查看文档、搭建新服务,以及检查其构建的状态,而无需了解底层运行的复杂机制。虽然完整的 IDP 往往包含开发者门户,以提升易用性与可发现性,但平台本身是由底层技术与自动化流程构成的完整集合体。
虽然每家公司的需求各不相同,但大多数 IDP 都是由几个协同工作的核心组件构建而成。这些组件专注于创建从开发到生产的精简、安全和高效路径。
开发者体验是核心界面,可抽象出基础架构的底层复杂性。它通常是开发者门户或命令行界面 (CLI),让开发者能够自助访问所需的工具、文档和资源。例如,IDE 插件(如 Cloud Code)可帮助开发者在熟悉的工具内直接编写与调试代码,而基于 Backstage on Google Cloud 等方案构建的门户则提供其整个软件生态的统一视图。
此组件可将安全性直接集成到开发工作流中。它可自动执行安全政策,例如 Identity and Access Management (IAM)、基于角色的访问控制 (RBAC)、网络政策、漏洞扫描以及基础设施加固。通过将安全功能嵌入到平台的基础架构中,团队可以“将安全控制措施提前”,在开发生命周期的早期解决潜在问题。这样可以防止安全问题在生产之前成为瓶颈。
以应用为中心的基础架构可在底层基础设施之上创建标准化的抽象层。它为关键运营问题提供了一个统一的模型,提供了一种适用于所有环境的网络、安全和可观测性方法。这种一致性简化了管理,并减轻了开发者的认知负担,开发者无需担心每个部署目标的独特细节,例如特定的 Google Kubernetes Engine (GKE) 集群配置。
云应用平台是一整套集成的云服务,是整个 IDP 的骨干。它将计算、存储、网络、Cloud API、CI/CD 工具与可观测性整合为一个统一的系统。在 Google Cloud 这样完善的基础上构建 IDP,可借助强大的托管式服务加速开发、提升可靠性,并确保平台可按需扩缩容以满足需求。
采用内部开发者平台可以为工程组织带来显著优势。
提升开发者体验
通过减轻认知负担并提供简单的自助服务工作流,IDP 可以帮助提升开发者体验。
加快产品上市速度
自动化和标准化有助于加快构建和部署软件的流程,使团队能够更快地为客户创造价值。
提高可靠性和一致性
IDP 可通过黄金路径落实最佳实践,从而带来更一致、更可靠的应用部署。
增强安全性和合规性
安全政策可直接内置到平台模板和自动化工作流中,确保所有新服务自一开始即满足合规要求。
更大的开发者自主权
将平台管理集中化有助于让开发者腾出精力专注于功能开发,并赋予其自主管理应用生命周期的权力。
为了了解 IDP 在实践中的运作方式,我们来看一个使用 Google Cloud 的常见内部开发者平台示例。假设开发者需要快速启动一个新的微服务,该微服务需要自己的数据库和 CI/CD 流水线。
开发者需要手动创建 Cloud Source Repository,编写 Terraform 模块来预配 Cloud SQL 数据库,创建并配置 Google Kubernetes Engine (GKE) 部署文件(YAML),在 Cloud Build 中设置新触发器,并为所有组件管理 IAM 权限。这可能需要几天时间,并且涉及多个团队。
整个过程要简单得多。
从门户发起请求:开发者登录开发者门户,找到一个预构建的“Python 微服务(含 Cloud SQL 数据库)”模板。
输入简单:他们填写一个简短的表单,其中包含服务名称和团队名称。
编排开始:开发者点击“创建”,平台编排器接管。
自动操作:在幕后,编排器使用 Google Cloud API 执行一系列自动化任务:
完成:该流程在几分钟内即可完成。开发者会收到一条通知,其中包含指向新代码库、GKE 预演环境中运行中的应用,以及数据库凭证的链接,且无需编写任何一行配置。
如需详细了解构成内部开发者平台的概念和技术,请查看以下其他资源: