什么是黄金路径?
黄金路径是指企业组织内部一套预先设定、拥有完善文档和技术支持的软件构建和部署方法。有了明确的支持路径,开发团队可以更高效地按照企业组织的标准进行构建。黄金路径为平台工程师提供了一种清晰的方法,用以指导 DevOps 团队、AI/MLOps 团队、安全团队、网络团队或任何其他 IT 部门,从而确保项目的一致性与可靠性,并提升时间和资源的利用率。
根据开发团队的规模和成熟度,黄金路径的数量可能会有所不同。例如,刚起步的平台工程团队通常会优先定义少数几个关键流程的黄金路径,比如微服务开发、CI/CD 管道、基础架构置备和可观测性设置。相比之下,更为成熟的团队可能会创建数百个精细化的黄金路径来处理各种流程,例如前端应用开发、用于分析或机器学习(ML)工作负载的数据管道、无服务器应用开发,以及安全性和合规性工作流。然而,无论团队的规模或成熟度如何,黄金路径都包含以下几个常见的组成部分:
- 软件模版:预先配置的微服务样板,例如包含 Docker 和 CI/CD 管道设置的 Python FastAPI 模板。
- 基础架构置备:为云资源预先构建的 Terraform 或 Pulumi 模块。
- 构建和部署管道:预先配置的 GitHub Actions 或 Jenkins 脚本。
- 可观测性工具:集成式日志记录和监控解决方案。
- 安全准则:已嵌入工作流的预先应用的策略和扫描。
黄金路径的概念
“黄金路径”一词由作家富兰克林·赫伯特在其科幻小说《沙丘之子》中首次使用。1994 年,受赫伯特的“黄金路径”的启发,Spotify 提出了软件模板的概念,旨在帮助工程团队在工具和流程上保持一致。这种方法后来也在其他企业组织中得到推广,包括 Google 和 Netflix,一些企业组织还会专门给它起个名字。Netflix 称之为“Paved Road”(铺平的道路)。
可以将黄金路径想象成烘焙蛋糕的过程。烘焙蛋糕的步骤包括将烤箱预热至特定温度、准备正确的烘焙工具以及备好所需的食材。这不仅仅是按照食谱进行制作,还要确保使用合适的工具和技巧。想要让更多人烘焙出相同的蛋糕,就需要不断优化流程,提高一致性和效率。黄金路径的概念与此类似。在软件开发中,越是遵循特定的模板,开发流程和最终产品就会越发成熟完善。烘焙蛋糕的过程,正是“黄金路径”的体现,只是后者没有那么多“甜蜜的负担”。
黄金路径具有哪些特质?
软件架构师们,其中也包括红帽® 的软件架构师,提出了黄金路径应该具备 4 个特质,那就是:可选、透明、可扩展和可自定义。
可选
黄金路径应该是一种可选的构建和部署方式。为了支持和促进创新,应该保留一定程度的灵活性,允许对标准工作流进行适当的调整和突破。工程团队能够发现黄金路径未被采纳的情形,并以此为依据,判断是否有必要构建新的黄金路径。
透明
黄金路径涉及的流程和工具应该是透明的。黄金路径创建了各种模板,让相关人员无需掌握底层技术也能使用各种方法。有了透明的黄金路径,开发团队就有机会更好地了解后台正在发生的事情。
可扩展
黄金路径的设计应具有可扩展性,以便能够集成新的特性和功能。由于黄金路径是基于模板构建的,可以根据实际情况进行调整,因此它们本身就是可自定义的。但是,如果某个特定的用例需要额外的功能,黄金路径就需要具备足够的灵活性,以便能够进行扩展。
可自定义
黄金路径的设计应充分考虑开发团队(包括内部和第三方团队)的实际需求,并借鉴组织在手动操作方面积累的经验,实现高度的可自定义。这样一来,就有机会将安全标准融入到黄金路径的构建中,从而在实施过程中提升安全性。
黄金路径可能会因要部署的内容而有所不同。不过,它们应该具备 4 个特质:可选、透明、可扩展和可自定义。
红帽技术助力提高开发人员工作效率
哪些人负责创建和使用黄金路径?
一般来说,平台工程师负责创建并维护黄金路径,以便向开发团队提供最佳实践、定义的工具、服务、资源和流程,从而提高开发人员的工作效率。平台工程的目标是提升团队的工作效率和协作水平,其实现方式是促进开发过程的一致性和高效化。平台工程团队致力于找出开发过程中遇到的问题,并通过内部开发人员平台(IDP)提供可重复使用的标准工具和功能来解决这些问题。IDP 由一系列标准化的自助服务工具和技术组成,供开发人员来创建和部署代码。
黄金路径可以支持以下用例:
应用开发
应用开发人员的目标是以标准化且安全的方式构建、测试和交付应用。黄金路径通过提供更便捷的入门和构建方式来支持他们。通过采用黄金路径,应用团队可以建立一个统一的基础,促进信息共享,鼓励开发共享工具,并增强整个企业组织的敏捷性和灵活性。
数据科学
数据科学家会收集、分析和解读数据,从而得出可用于指导行动的见解。他们可能还专门负责开发和部署人工智能(AI)与 ML 系统。黄金路径能够帮助 ML 运维(MLOps) 团队将 ML 模型集成到软件开发中。通过黄金路径,数据科学家可以更便捷地开发 AI 模型,而开发人员则可以更轻松地实施这些模型。
站点可靠性工程(SRE)
SRE 团队负责部署、配置和监控代码,以及生产环境中服务的可用性、延迟、变更管理、应急响应和容量管理。黄金路径为 SRE 团队提供所需的一致性,帮助他们创建可扩展且高度可靠的软件系统。
系统管理员(sysadmin)
系统管理员负责部署、配置和维护企业组织的计算机系统。由于他们需要管理数以千计的计算机,因此必须采用可扩展且可持续的管理方法。通过简化或自动化日常任务,黄金路径为常见的任务和流程提供了一个清晰的框架。这不仅降低了管理的复杂性,还有效地减少了潜在的错误风险。
黄金路径的优势
作为一种自助服务模板,黄金路径具备诸多优势,这些优势有助于提升开发人员工作效率,具体包括:
降低认知负荷:标准化流程可以帮助开发人员降低认知负荷,让他们将更多精力用在创新上。
加快开发速度:有了明确的任务定义,开发团队无需花费时间寻找合适的工具或自行制定流程,而是可以直接利用企业组织内部已有的、成熟的最佳实践,从而顺利地完成工作。
建立一致性:可共享的模板和更完善的内部流程有助于确保项目之间的一致性,从而带来更优异的成果并提升质量,无论开发团队是内部团队还是第三方团队。
提升自动化水平:通过自动化诸如部署或代码测试等重复性任务,可以更轻松地应用 CI/CD 管道、基础架构即代码(IaC)以及应用编程接口(API)管理等实践。
简化入门流程:借助易于查找的文档和工具,新加入的团队成员能够更快地掌握工作流,而不必为每项任务都摸索最佳实践。
提高安全性:模板中内置的安全实践能够确保满足各项安全标准,从而简化后续的审计工作。
设计黄金路径
设计(也称为铺设)黄金路径是指创建一个路线图,旨在提供简洁且高效的体验。虽然黄金路径的具体内容可能会因目标而异,但以下最佳实践对于提升开发人员工作效率具有普遍意义。
- 确定用户。黄金路径的主要用户通常是开发团队。由于模板的创建和维护需要多个团队或成员的参与,因此用户对象会是拥有不同技能组合的特定群体,包括精通编码、性能分析以及安全防护等领域的人员。
- 明确目标。黄金路径的主要目标是通过自动化现有的实践,从而提升开发人员工作效率。
- 逐步规划路径。通过制定清晰的步骤和准则,确保用户拥有一个流畅且成功的框架,顺利完成各项任务。
- 提供工具和资源。提供详尽的文档和执行工具,帮助用户更好地理解黄金路径的上下文信息。
- 与 IDP 集成。黄金路径应当部署在 IDP 中,方便开发人员轻松访问。将黄金路径集成到 IDP 中,不仅保证了它的可访问性,还赋予了开发人员自助完成任务的能力。
- 衡量成效并进行迭代:为了评估黄金路径的成功与否,应使用指标来衡量其成效。这些指标可以包括 DevOps 研究与评估(DORA)指标、SPACE 框架或 Flow 框架。此外,还应持续收集用户反馈,并通过不断迭代来优化黄金路径,从而实现效率的提升。
黄金路径示例
微服务开发
黄金路径的一个应用示例是,利用运维团队预先创建的模板来创建新的微服务。
微服务指的是一种应用架构,其中的一系列独立服务通过轻量级 API 进行通信。微服务架构提供了一种更高效的应用开发方法,使得应用中的每个核心功能都能独立存在。得益于应用元素的分离,DevOps 团队能够协同工作,互不干扰。这样一来,更多开发人员能够并行处理同一应用,显著缩短开发时间。
通过建立一套高效的微服务构建、部署和管理流程,黄金路径还可以进一步提升开发人员工作效率。对于微服务而言,成功的黄金路径需要整合结构清晰的管道,并高度重视自动化、最佳实践和可观测性。
MLOps 交付
黄金路径有助于实现高效的 MLOps 交付。MLOps 借鉴 DevOps 和 GitOps 的原则,旨在构建一套持续演进的机制,将 ML 模型集成到软件开发流程中。通过简化不同团队之间的协作,MLOps 实践促进了企业组织内的敏捷开发和数据驱动决策。通过实施 MLOps,可以最大限度地减少 ML 模型运维过程中的人工干预,同时确保其性能和可靠性持续稳定。
采用黄金路径作为 ML 交付的准则,能够协助团队高效地开发、部署和管理 ML 模型。黄金路径通过在 MLOps 中建立诸如自动化管道等工作流和实践,保障模型交付的可靠性与一致性。
MLOps 团队可以利用黄金路径提供的模板,快速满足 MLOps 标准的各项要求,更重要的是,还能根据不同的用例进行灵活调整。
代理式 AI
代理式 AI 是一种软件系统,旨在以尽可能少的人工干预实现与数据和工具的交互。它能够自主地创建并执行一系列步骤,从而完成既定任务。与传统的自动化技术不同,代理式 AI 能够利用实时数据、ML 模型以及反馈循环,从而根据具体情境做出明智的决策。
为了实施代理式 AI,关键在于创建一个能够让大语言模型(LLM)访问外部工具和算法的系统,并明确指示 AI 代理应如何使用这些工具。与黄金路径一样,代理式 AI 包含一套优化的、自主执行的流程,旨在高效完成任务或达成目标,并在此过程中进行必要的学习和调整。
为什么选择红帽进行软件开发?
红帽的产品和服务可以协同运作,共同助力软件开发,并赋予企业灵活度,从而提高团队工作效率,增强自助服务能力,加快新员工上手速度,并减轻跨团队重复性任务的负担。
红帽开发人员中心是一个自助服务门户,企业组织中的每个开发团队都可以通过该门户使用所有黄金路径,还能集中查看关于特定项目的所有知识和相关技术文档。借助红帽开发人员中心,企业组织既可以使用现有的软件模板快速构建新的应用或微服务,也可以根据自身环境的特殊需求,创建并使用自定义模板。
通过搭配使用红帽开发人员中心和红帽 OpenShift®,开发团队可以使用他们信赖的应用工具,包括云原生应用、传统应用和现代化应用。红帽 OpenShift Pipelines、红帽 OpenShift GitOps、红帽 OpenShift 服务网格、红帽 OpenShift Serverless 以及许多其他技术均已包含并集成到红帽 OpenShift 中,不仅有助于简化开发人员的工作流,还支持与众多其他开源工具的集成。
鉴于安全防护始终是重中之重,红帽可信软件供应链可帮助企业组织从一开始就在软件开发的组件、流程和实践中内置安全防护措施。开发人员能够安全可靠地进行编码、构建、部署和监控,确保软件交付符合企业组织的安全实践。