Skip to main content

Command Palette

Search for a command to run...

构建企业 Idp 最小可行性产品的黄金路径

Updated
1 min read

原文Here’s One Golden Path to Build an MVP Enterprise IDP

作者Charles Humble

借助 Humanitec 最近发布的开源参考架构实施方案,企业平台团队可以快速创建内部开发人员平台。

最近不管参加什么技术会议,八成会看到一张看起来无所不能的云原生全景图,这张大图说明,现代软件开发的复杂度,已经让人略有不适了。

当然这张大图也显示了 Kubernetes 的成功,以及云原生领域的创新,但是工具的无序扩张,受影响的可不只是应用程序开发团队。

平台工程公司 Syntasso 的联合创始人兼首席运营官 Paula Kennedy 告诉 The New Stack:“我认为,平台团队和应用团队一样,都很难弄清楚自己的工具集应该是什么。”“因为平台工程作为是一种对实践的定义,因此其确定性更差,构成也更不清晰,所以在这方面,平台工程的问题也更大。”

除此之外,至少根据我个人的经验,起初,平台可能会自发形成。一个开发人员为自己构建一个工具,因为事实证明这个工具很有用,就分享给团队中的其他人。这种方法在初期是很有效的。但随着开发人员数量的增加,这种方法就会出现问题,因为正如 Kennedy 所说,“如果没有系统化思维的思维和主动的架构设计,那么就只能野蛮生长”。

到了一定程度,企业可能会发现这种方式不再适合自己,于是可能会寻求分拆出一个集中式的平台团队,试图以更完善的方式,让开发人员能够更快地入职,更快地交付。但是,应该如何开始组件平台团队呢?

显然,你需要与应用程序开发人员沟通,了解他们的需求和痛点,然后构建一个能解决这些问题的解决方案——可是解决方案如何选择合适的工具和组件呢?

Kennedy 说:“在CNCF的环境下,无处不在的 Kubernetes 结构是让一切变得更容易的原因之一;CNCF 上的所有东西都是以云原生模式为基础构建的。而如果你所在的平台团队正在处理一些传统大型机,再加上一些云原生和其他一些东西,你的工具集可能是任何东西,并有一大堆不同的原则作为其核心。”

为了改善这种情况,Humanitec 发布了一系列白皮书和内部开发人员平台 (IDP) 参考架构的开源实现。这些内容结合在一起,为企业平台团队提供了一种方法,使其能够快速启动并运行新平台的最小可行产品(MVP)版本。参考架构本身基于麦肯锡的研究成果。

内部开发人员平台模式

在 6 月份的 PlatformCon 上,麦肯锡数字专家合伙人 Stephan Schneider 和该公司的高级 DevOps 工程师 Mike Gatto 发表了演讲,介绍了他们如何根据对多个组织的分析,确定了一套内部开发者平台的通用模式。

麦肯锡就是麦肯锡,该报告的重点是面向企业而不是小型组织。在平台的背景下,这是说得通的,因为对平台的一种定义就是在企业规模上使 DevOps 实践发挥作用的一种尝试。

如下图所示,麦肯锡建议的架构使用了许多现成的组件,包括开发人员门户构建工具 Backstage、GitHub、Terraform 和 Humanitec平台编排器,以及云提供商(本例中为 AWS)提供的组件。

麦肯锡的蓝图将开发者平台分为五个平面,每个平面都有一套相关的能力,如上图白色方框所示的可观察性和网络化。

  • 开发人员控制平面:是开发人员发布代码并通过自己选择的界面访问平台的地方。它包括版本控制、集成开发人员环境、基础架构即代码和开发人员门户(如 Backstage)。除代码外,开发者还提供一个 Score 工作负载规范文件。这是一个 YAML 配置文件,指定了以与环境无关的方式运行应用程序所需的资源。

  • 集成和交付平台获取应用程序代码,将其打包到一个或多个容器中,然后将其发布到亚马逊 ECR 等注册表中。一旦完成,CI 管道就会将注册表中的新工件通知平台协调器(麦肯锡使用 Humanitec 进行此操作),并启动构建。协调器会在部署前生成新的应用程序和基础架构配置文件和清单。

  • 资源平面包括运行应用程序所需的资源。这可能包括计算(例如 Amazon EKS);如果还没有 Kubernetes 集群,则构建 Kubernetes 集群;数据(例如 Amazon RDS、MySQL 等);网络(例如 Amazon Route 53);以及服务(例如 Amazon SQS)。

  • 监控和日志记录交给云提供商,在我们的 AWS 示例中使用的是 Amazon Cloud Watch。

  • 最后,安全管理机密和身份,以保护敏感信息(参考架构中使用了 HashiCorp Vault)。

由于平台编排器在蓝图中起着核心作用,因此值得对其进行更详细的了解。下图描述了其核心功能

每一次 Git 推送,平台编排器就会解读工作负载运行所需的资源和配置,根据平台团队定义的规则创建应用程序和基础架构配置,并执行这些配置。Humanitec 用“读取、匹配、创建、部署”的执行模式来进行平台编排:

  1. 读取:解释工作负载规格(也就是 Score 文件和上下文)。

  2. 匹配:识别正确的配置基线以创建应用程序配置,并根据匹配的上下文识别需要解决或创建的资源。

  3. 创建:创建应用程序配置;必要时创建(基础架构)资源;并获取证书,将用 Secret 的形式注入给应用程序。

  4. 部署:将工作负载部署到与其依赖关系相连的目标环境中。

IDP 的开源蓝图

麦肯锡的参考架构在 PlatformCon 上引起了很大反响,因此,受其启发,Humanitec 编写了几份白皮书,为构建内部开发人员平台提供参考架构蓝图,不仅有 AWS 版本,还有 Google Cloud Platform 和 Microsoft Azure 的版本。

麦肯锡的参考架构引起了很大反响,因此,受其启发,Humanitec 发布了参考架构开源实施系列的第一个版本,由一组 Terraform 配置组成,能够在 AWS 和 GCP 上部署蓝图示例。AWS 版本包括 Backstage(如上图所示),并计划逐步增加 Azure 和多云实施的示例。

这为平台团队提供了一种方法,可以快速为内部开发人员平台开发出企业级最小可行产品(MVP),同时也为 Humanitec 平台编排器的试运行提供了便利。

Humanitec 产品经理 Luca Galante告诉 The New Stack:“社区对参考架构的反响令人难以置信。”我们在前几周就有了 1 万次下载,这充分说明了业界对清晰蓝图和设计模式的需求。

当然,您也可以随意更换组件,包括 Humanitec 本身。回想一下图中的平面和功能,“平面很重要,因为它们提供了方向并奠定了基础,而功能也很重要”Humanitec 的平台架构师 Clemens Jütte 告诉 The New Stack。“你肯定希望拥有图上的所有功能,我们从未见过没有这些功能的平台。但方框内的标识并不重要。你可以挑挑拣拣,开始迭代,建立你想要的 IDP。

黄金之路,不是黄金囚笼

企业面临的另一个挑战是,他们很可能已经有了一些不愿放弃的流程和工具,而且不同的团队有不同的需求。因此,灵活性也是很重要的

同样,强迫开发人员使用某个特定的平台也是不明智的--某个特定的团队或小组可能有充分的理由,在既定路线之外做事情。如果强制性的工具阻碍了开发人员完成他们的工作,也会出现影子 IT 实践。更好的做法是,尽可能让平台对应用程序开发人员具有吸引力,这样他们在任何情况下都会优先选择适合自己的平台。

加拿大金融公司 Nesto 的 DevOps 总监 Mathieu Frenette说,“我们谈论的是黄金路径,而不是黄金牢笼” 而 Kennedy 说:“我非常喜欢这种说法,因为这有助于我思考这样一个事实,即开发人员需要有一条简单的道路;他们需要有一个模板,帮助他们快速上手,但他们也还保有打破他的权利。”

“平台团队需要能够通过抽象提供简单性,同时在需要时提供灵活性。”

Galante 认为,“目前还没有一个平台能够保留我的 Terraform 设置,保留我的基础设施和 CI 管道,但我可以以一种更强大的方式将它们粘合在一起,从而获得内部开发者平台所承诺的所有好处。”

虽然各组织实施 IDP 的情况大不相同,但这一参考架构可以作为一个有用的起点。

More from this blog

龙虾恐慌:AIOps 又要改名了?

ChatGPT 开始,把 AI 拉近到普罗大众的面前,让无数人感受到 AI 的亲民魅力。而龙虾,则把大模型驱动的自动化能力,突然间变得水灵灵、活泼泼地走进千家万户。它不只是“风口上的猪”,而是风口本身。热度高到让 Mac mini 一度断货,不知道这在不在库克的预料之内。 每代人都有每代人的鸡蛋,春节期间,我就领了我的鸡蛋。翻出古老的 MacBook Air M1,充值各种大模型。当然了,这个工具

Mar 9, 20261 min read

再见 2025

我猜不少人以为这个号废了吧?并没有,只是今年变化有点大,一直有种抄起键盘,无从说起的感觉,所以一直偷懒到今天,2025 的最后一天。 今年是我的第四个本命年,去年末一期播客里,大内说本命年不是灾年,是变化年,有危也有机。可是讲真啊,只看到危,没看到机。 各种因缘际会,从鹅厂跳槽到前东家,已经接近四年,第一个合同期已经进入尾声。除了前两年还在云原生领域嗷嗷叫,后两年基本都是些鸡零狗碎的东西了,用老东家的术语说是——偏离主航道,可谓是前景暗淡了。 一旦确定要滚蛋,反倒心思轻松起来,每天骑着我的小红车...

Jan 5, 20261 min read

辅助编程?dora 说:我知道你很急可是请你别急

从 OpenGPT 把大模型的火烧旺了之后,这三年来,相信很多组织或摩拳擦掌、或躬身入局,希望借助聪明能干的大模型,或想偿还技术宅,或想降本增效,或想弯道超车。一时间,沉寂许久的 AIxx 又活过来了,LLM Ops、Vibe Coding、中医大模型、GPT 算命等等,全都老树发新芽,焕发了勃勃生机。那么视角拉回从业者最关注的饭碗相关的领域之一——AI 辅助开发,产生了什么触动,应该如何拥抱呢? DORA 的年度报告中给出了很有意思的结论——强者恒强。 执行摘要部分总结了几个有趣的点: 问题...

Oct 6, 20251 min read

[译]dora:ai 辅助软件开发状态报告

执行摘要 在 2025 年,科技领导者面临的核心问题已不再是“是否要采用 AI”,而是“如何实现其价值”。 DORA 的研究基于超过 100 小时的定性访谈和来自全球近 5,000 名技术专业人士的问卷调查。研究揭示了一个关键事实:AI 在软件开发中的主要角色是“放大器”。它会放大高效能组织的优势,也会凸显组织的缺陷。 关键结论:AI 是放大器 AI 投资的最大回报并非来自工具本身,而是来自组织底层系统的战略性建设: 高质量的内部平台 清晰的工作流 团队的协同能力 缺少这些基础,AI ...

Oct 2, 202514 min read

僭越了,有人在用 Rust 写 Kubernetes

一个新语言问世,最爱做的事情之一,就是重写存量软件了。 云原生喝酒 SIG 重点扶持项目——rk8s(https://github.com/rk8s-dev/rk8s) 也可以归在这个范畴里,只不过这个项目重写的东西比较大,是 Kubernetes。 从 2025 年 1 月第一个 Commit 开始,到现在有了 200 多次 Commit,十几万行代码。当然距离 Kubernetes 的几百万行代码还差得远——老马就是喜欢整这种大无畏项目。 另外该项目也是国内第一个脱离 Cargo 转向使用 ...

Sep 27, 20253 min read

【伪】架构师

342 posts