通过防护措施通过自助服务为开发人员提供支持

使用护栏的自助服务是授权开发团队在一组明确定义的参数或护栏内做出自己的决策的原则。 护栏由主要利益干系人建立并同意。 利益干系人可以包括整个组织的安全、运营、体系结构团队。

借助具有护栏的自助服务,开发团队可以保持自主性,独立做出开发决策。 自动化和策略可帮助利益干系人确保正确管理安全性、合规性、运营、标准和成本。 启用此自动化需要跨团队行进行协作,以便开发人员、操作员和专家可以执行更多操作,而无需牺牲所需的治理。 然后,开发人员可以专注于尽快交付业务价值。

[我们告诉开发人员,]不要担心一切工作原理,只需将其打开或关闭,将其填入,在需要执行的任何操作中放入一个字符串,这基本上是自助服务,因为它们有自述文件,并且他们有输入、输出,他们可以放入喜欢的任何内容。 - 丹尼尔,云工程师,财富 500 媒体公司

为铺路路径提供自助服务体验的目标是减少开发人员的辛苦工作,同时为开发团队、运营和管理提供可见性。 其理念是,你为具有最小学习曲线的给定任务创建体验,这部分要归功于其基础自动化和数据聚合功能。 除了基础结构预配等活动之外,这些体验还可以访问可观测性、策略、事件管理等关键功能。 该想法扩展到发现和共享内部 API、SDK 以及共享工具和服务。 这些体验减少了开销,使开发团队能够专注于完成工作。

内部开发人员平台使开发人员能够像数字店面客户一样行事

内部开发人员平台提供与企业到企业数字店面类似的功能。 数字商店本质上旨在帮助客户自助。 它们可以处理比传统存储前端更多的吞吐量,因为它们提供了发现和满足有趣项的方法,而无需与任何人交谈。 使用此类比,开发人员是客户,内部开发人员平台提供类似的自助服务体验。 与零售商、运营商、平台工程师和其他角色类似,然后设置开发人员可以请求的项目目录,这些项目旨在适应组织防护措施。

例如,你可以考虑一位要求访问新工具的开发人员,就像他们发出数字店面订单一样。 与订单一样,提交请求后,开发人员希望能够跟踪进度并知道何时完成。 在后台,请求应自动路由到正确的履行提供商以满足需求。 可以将持续集成和交付(CI/CD)系统之一视为一个履行提供程序、 GitOps 工具或规范性应用程序平台作为第二个,将手动流程的工作流自动化工具视为第三个。 在所有情况下,开发人员都可以以相同的方式从定义完善的目录自助服务项目。

使用所有内容作为代码模式

通过持续交付(CD)管道和 GitOps 工具使用 基础结构即代码(IaC) 是实现自助服务的重要组成部分。 使用 CD 的 IaC,可以使用 Bicep、Terraform、Helm 图表和其他工具按需创建和销毁云资源。 由于云基础结构的配置就像源代码存储库中的代码一样进行管理,因此可以应用 Git 存储库的所有优势,例如安全性和可审核性。

预配通用基础结构和工具并不是 IaC 方法的唯一优势。 可以针对其他方案调整代码模式,包括作为代码的安全性和策略作为代码(通过 Azure Policy开放策略代理等工具)。 遵循此技术后,配置文件(通常为 YAML 或 JSON)将推送到存储库中,此时会触发处理该文件的工作流。 这些文件可能是dependabot.ymlCODEOWNERS 等应用存储库,也可能在单独的中央存储库中维护这些文件。 你甚至可以将此扩展到自己的方案中,以真正使一切作为代码(EaC)成为现实。

开发人员可以使用中心目录引用其中每个 EaC 模板,该目录为自助服务体验提供支持,并默认鼓励最佳做法。

创建开始正确的模板并建立正确的治理

在软件开发中,我们的目标是在设计应用程序时封装、模块化和可组合性。 应通过模板化将此相同的思路应用于平台工程。 例如,可以创建和使用一组集中保护的可重用 IaC 模板作为基础结构的构建基块。

我们将为 [开发人员] 构建模块... 因此,无需自行编写或担心任何后端,只需担心应用程序代码。 - 丹尼尔,云工程师,财富 500 媒体公司

将 IaC、EaC 和应用程序模板合并为一个定制的所有内容(即代码(EaC)解决方案,该解决方案扩展到其他活动,例如创建源代码存储库、种子设定示例代码,或提供配置和示例代码来推荐可观测性工具。 然后,可以从中央、安全位置(例如存储库、Azure 部署环境(ADE)中的目录或云本机Azure 容器注册表(ACR)存储或引用这些 IaC、EaC 和应用程序模板。

当开始正确的模板与自动化治理、扫描和策略配置相结合时,开发人员从第一天起保持正确状态。

平台工程图从正确开始,并保持正确的模板概述。

使用自动化、安全的做法简化开发模板

使用应用程序模板启动定义的铺路路径,以便开发人员在项目过程中执行多个关键决策和操作。 开始正确的模板建立安全、受治理的开发做法,并通过启用自动化来快速开始,该自动化提供对所需工具的访问权限、配置 CI/CD 管道、预配基础结构和应用程序堆栈,以及配置包含所需 SDK 或 API 引用的锅炉板源代码的存储库。

通过让这些应用程序模板引用其他集中式模板(例如 IaC 模板),每个单独的构建基块都会成为自己的正确模板。 这些模板是启用自助服务体验的核心,因为它们不仅定义了输出,而且是开发人员选择的可用选项。

模板可确保治理、安全性和成本优化

但是,模板不仅仅是启动开发工作。 他们还应通过策略和安全扫描建立控制和治理,以在项目生命周期过程中保持正确状态。 作为另一个示例,模板可以设置分支保护规则,防止未经授权的合并到生产环境。 由于模板捕获最佳做法和常见配置,因此它们是跨工具、供应商和团队优化成本的关键技术之一。

运行正确的市场活动以建立双向通信

最后,随着对铺路路径的信心增加,可以使用组装到应用程序模板中的基础单个构建基块将现有应用程序移到铺面路径上。 由于内部客户已经看到试点铺路的价值,因此你可以运行内部获取正确的市场活动,以便与其他应用程序团队建立双向对话。 开发人员可以了解如何迁移其应用程序,而平台工程团队同时了解有关如何为应用程序改进平台的详细信息。

绘制自己的旅程图表

鉴于自助服务功能可以涵盖的广度体验,它是投资工作和计划的重要焦点, 并优先 安排,以便内部开发人员平台以增量方式提供价值。 每个组织创建内部开发人员平台的过程都不同,遵循产品思维模式可帮助你确定需要自助服务体验的最关键位置。