工作中的软件开发人员

什么是内部开发者平台 (IDP)?

内部开发者平台,已定义

内部开发者平台 (IDP) 是组织构建的一组集中式内部工具、服务和工作流程,旨在使开发人员能够更轻松地构建、部署和操作软件,而无需自行管理所有底层基础架构。

与其让每个开发团队自行摸索配置服务器、网络、安全协议和软件部署的方法,不如让团队使用已经遵循公司规则和最佳实践的现成“黄金路径”。开发人员只需按照路径操作(例如“启动一个新的微服务”或“配置预览环境”),平台就会通过后台自动化处理其余部分。

IDP 是一种将不同流程整合在一起的方法,以便组织内的所有开发团队都遵循大致相同的规则。它还负责底层基础设施决策,因此开发人员无需深厚的基础设施专业知识即可发布代码。

IDP 通常由专门的 DevOps、运营或平台工程团队设计和维护,但其主要用户是应用程序开发人员。该平台将几种不同的工具链和科技,例如容器编排基础设施即代码 (IaC)持续集成/持续交付 (CI/CD)可观测性工具,整合到一个内聚的生态系统中。

IDP 的益处

IDP 可为组织原本分散的软件工程、交付和开发能力带来秩序和一致性。它使组织能够管理其软件开发环境和实践的复杂性,简化和精简它们,从而带来许多益处。

最大限度减少上下文切换

工程师进入并维持“心流状态”的能力,即在有价值的编码工作中深度专注的状态,对于计划在软件领域开展创新的组织而言价值极高。处于该状态时,注意力不会分散,工作推进也会流畅连贯。工程师拥有不受打断的完整时间处理问题,能够拆解复杂度更高的业务难题。

然而,流动状态是脆弱的。有时,开发人员必须将上下文从一种问题切换到另一种问题,这种思维转变可能会破坏他们在第一个问题上的进展,迫使他们在最终回到第一个问题时必须从零开始。例如,想象一名程序员试图排查错误报告中发现的问题:为什么一家酒店预订工具没有显示正确的用户时区的时间和日期。这是一个棘手的问题,它涉及到 JavaScript 如何处理时间的基本原理。这不是简单的格式问题。他们正在跟踪时间戳如何通过后端和前端并进入用户界面。他们正在考虑本地浏览器设置以及日期对象在不同条件下的行为。这些信息量很大,让人难以全部记在脑子里,但他们已经接近取得突破了。

而后他们需要退出编辑器、打开 CI/CD 工具,为对应服务查找适配管道,回忆该项目的部署流程,修改配置文件,等待管道执行,再打开独立监控工具校验运行状态……

他们必须从对问题的推理转向不同的模式,浏览基础架构、工具和流程。而当他们回头研究漏洞时,他们此前建立的对该问题的精细认知便已荡然无存。现在他们必须从零开始。这对组织来说是浪费时间,对工程师来说则是一种挫败感。IDP 通过处理三级问题来减少这种浪费,从而加快产品上市速度,提高开发人员的工作效率,改善开发人员的体验

标准化工作流

随着组织规模扩大,开发环境的复杂度持续提升。部分团队选用某一款工具,另一部分团队则会选择竞品工具完成同类工作。各团队会搭建差异化工作流,针对基础设施、部署、安全制定适配自身用例的方案,但各类方案整合后会产生冲突、拉低整体效率。环境标准不统一,各类瓶颈问题层出不穷。这类差异会随时间持续累积,导致系统扩容难度上升。与之相反,IDP 能够将零散、标准不一的操作规范,整合为统一、可复用的开发人员工作流与软件交付流程。

命名约定、安全实践、CI/CD 管道等考量因素——IDP 通过提供模板和基于可重用脚手架确立一致的工作流来减少变异性。这样,开发者无需从零开始,可以选择一个模板,实现自动配置存储库、配置构建和部署管道,并集成监控和安全。

强制执行安全和合规性

IDP 将安全和合规功能直接嵌入到其工作流程中。例如,它可以确保所有服务都包含适当的身份验证机制,并遵守已批准的网络配置。这样一来,开发人员就不必浪费时间去思考某种特定方法是否能满足要求。之所以能够遵循正确的流程,是因为各项控制措施都得到了始终如一的执行——这些措施已经内置到了平台中。

加强合作

当所有团队都遵循相同的模式时,开发人员就更容易理解不熟悉的代码库并为其做出贡献。共有约定减少了在项目之间切换所需的认知负担,新开发人员可以更快地融入项目。

可扩展性

如果没有统一的框架,组织的发展可能会导致混乱,因为每项新服务都会引入更多的变化和复杂性。IDP 可提供稳定的企业级基础,支持扩展并帮助优化资源分配。最佳实践可以自动在系统中传播,即使是小型平台工程团队也可以影响大型组织的开发实践。

应用程序开发

开启旅程:云端企业应用程序开发

在本视频中,Peter Haumer 博士通过演示不同的组件和实践(包括 IBM Z Open Editor、IBM Wazi 和 Zowe),探讨了混合云环境中现代企业应用程序的开发现状。

IDP 的组件

IDP 不仅仅是一种单一的工具,它是一套功能系统,这些功能可以协同工作,以满足特定的开发人员需求,并打造更加无缝的开发体验。实现方式各不相同,但以下是最常见的组件。

开发人员门户:常被称作内部开发人员门户,是开发人员日常操作的核心界面。一般基于 Backstage 等开源工具搭建,提供统一仪表板、服务目录、文档、模板、插件与工作流能力。它是该平台面向开发人员的自助操作面板。

服务目录:服务目录是所有服务、系统、资源的结构化清单。目录会明确归属、依赖关系,并附带各类元数据,让所有人员清晰知晓资源归属与服务间交互逻辑。

脚手架和模板:这些是用于创建新服务的预定义蓝图,使用户能够快速创建 GitHub 存储库、设置 CI/CD 管道、应用标准配置、集成日志记录并监控等。管道是预配置且可重复使用的,内置了最佳实践,开发者无需从零设计。

基础设施配置:该层处理来自不同云供应商的混合或多云架构中的环境、资源和应用程序工作负载的创建和管理,通常利用 GitOps 原理实现自动化

环境管理:在许多组织中,由于配置差异、依赖项不匹配和数据不一致,开发、预发布和生产环境会随着时间的推移而不再能顺畅对接。IDP 通过鼓励环境均等、消除歧义和提高环境的可预测性来解决这一问题。

可观测性:可见性默认内置于系统行为中,提供实时洞察分析,包括日志、指标和跟踪。

机密与配置管理API 密钥、凭据和环境变量被安全管理,有助于确保机密永远不会被硬编码,访问也受到控制和可审计。

治理:安全与合规政策自动执行,记分卡和基于角色的访问控制 (RBAC) 等治理措施定义了谁可以部署、谁可以访问哪些内容以及如何批准工作流程。

文档:它不是分散的文档,而是与服务并存,并且可通过门户来发现。

AI 与 IDP

虽然智能体编程助手不会自行组装生产级 IDP,但它可以主动计划、生成并跨多个步骤迭代,加速整个流程 - 从引导平台到创建黄金路径并集成工具。架构仍然需要人类的判断,因为它既关乎技术,也关乎组织和团队结构。

一旦构建好,智能体编程助手可以在 IDP 中运行,帮助将其从静态门户转变为更具动态性、任务导向的环境。例如,IBM® Bob 可以与平台组件集成,并协助完成以下任务:

  • 阅读服务模板和标准
  • 与 CI/CD 配置和工作流程进行交互
  • 跨存储库生成和修改代码
  • 协助触发构建、测试和部署(在获得相应批准的情况下)
  • 通过连接工具解读日志和可观测性数据

它不只是聊天机器人,更是对接平台的智能交互入口。开发人员无需手动操作表单与工作流,只需下达“创建新服务”这类指令,助手即可自动编排全部必要步骤,全程遵循标准、安全防护机制与标准流程。在规范完善的环境中,工具可依托服务目录元数据与场景信息执行操作,同时在关键节点保留人工复核环节。

作者

Cole Stryker

Staff Editor, AI Models

IBM Think

相关解决方案
IBM Enterprise Application Service for Java

完全托管的单租户服务,用于开发和交付 Java 应用程序。

深入了解 Java 应用程序
DevOps 解决方案

使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。

深入了解开发运维解决方案
企业应用程序开发服务

云应用程序开发意味着一次构建、快速迭代和随处部署。

应用程序开发服务
采取后续步骤

借助 IBM 云应用程序开发咨询服务,您可以获得提供专家指导和创新解决方案,使您的云策略更为精简高效。与 IBM 的云专家合作,实现应用程序的现代化改造、扩展和加速,为企业带来变革性的成果。

  1. 深入了解应用程序开发服务
  2. 开始免费使用 IBM Cloud 进行构建