持续交付2.0

Platform Engineering 平台工程 15 问

早在 2017 年,我就做出一个关于 DevOps 的预言(比Gartner 早了五年):
在大型IT组织中会出现名为“ Infrastructure Product Team ”的一个组织,
它将内部协作工作的基础设施做了一个有生命且有收益的产品来对待,通过产品标准化的方式,以更少的人支持更大的IT组织运作。
而且,当年8月份,我在上海召开的 DevOpsDays 大会做了相关的主题分享。
但当时因为时间关系,并没有充分展开讲解。下图为其中的一页PPT内容,将IT组织分成了直接面向业务产品的应用产品团队和基础设施产品团队。

Image

时隔五年,Gartner 在2022年也提出了类似的趋势概念,只不过,它将其命名为“平台工程(Platform Engineering)”。Gartner 还连续在 2023 年和 2024 年的战略技术趋势报告中提到了它。那么,
1. 什么是平台工程?
2. 它为什么会在此时产生?
3. 它与DevOps是什么关系?
4. 它以什么形式落地?
~~~~~~~~~~~~~~~~~~~~

1

什么是平台工程
平台工程(platform engineering,简称为PE)一词于 2022 年正式进入Gartner 新兴技术成熟度曲线。平台工程(PE)通过提供自动化基础设施操作的自助服务功能,减少底层基础支撑工具的复杂性和不确定性,减化工作流程,减少最终用户在使用过程中的认知成本,从而改善了最终用户的体验,和提高生产效率。

2

平台工程的最终用户是谁
平台工程的客户是平台工程团队自身成员,业务产品开发团队的各类角色,如产品设计,开发工程师,测试工程师,业务运维工程师,数据科学家等。

Image

3

平台工程负责什么

Image

为组织内部的所有业务产品研发组织提供端到端工作过程服务的内部IT基础设施建设,这一工作过程包括从需求收集到最后业务产品在生产环境上的平衡运行,覆盖图中的 5C。

4

平台工程由哪个团队负责
事实上,当前各大型IT组织内部也有相应的团队负责相关的基础设施与工具平台,它们的名字可能是工程生产力部门,研发效能部门,研发运营部门、系统工具以及基础设施工程部门等。但大多并未形成统一的产品体系。

5

平台工程由哪个团队负责
已有专人负责工具开发,为什么平台工程还会被提出来呢?
它要解决的是进行大规模DevOps转型时,组织所面临的一些艰难挑战,这些挑战包括:因强制执行最佳实践带来的负担,以及在业务应用程序开发与运行的整个生命周期中,因管理和配置那些复杂工具和基础设施所带来的负担。

6

平台工程的发展趋势

Image

Gartner预计到2026年,80%的软件工程组织将建立平台团队作为可重复使用的服务、组件和工具的内部提供者,用于应用程序交付。

7

平台工程的核心目标是什么
提升一致性和效率。提升工具和配置的可重用性是任何平台工程团队的核心目标。可重用性使应用程序交付过程更高效,减少了在工具上花费的资源,并提高了代码的一致性。
这样,开发人员可以最大限度地琐事和重复造轮子的时间,转而专注于创新。业务领导者也可以放心,IT研发团队必定遵循经过批准的安全、合规和具有成本效益的流程。
平台工程使团队能够扩展现有的DevOps流程,以满足任何级别的需求,而不会增加不必要的开销。

8

平台工程在企业内部怎么落地执行

Image

平台工程最终以是产品与服务的形式得到具象和执行的,即工程平台。
它包含了一个内部开发者平台(IDP)自助接口,以及底层一套标准化的安全、合规和高性能工具。这些底层工具通过IDP向最终客户提供自助化服务。
平台团队将内部平台视为他们自己的产品,他们努力优化平台以满足最终用户的需求,同时满足安全性、法规合规性和成本控制等业务要求。
平台构建工作通常始于内部开发者门户(IDP),因为这些门户最为成熟。IDP提供了精选的工具、能力和流程。它们由专业人员进行选择,并打包成易于开发团队消费的形式。平台团队必须与他们支持的开发人员密切协商,确定哪种方法最适合他们独特的情况。

9

平台工程与DevOps的区别与联系
DevOps 本身是一种理念,强调通过开发团队与技术运营团队之间的紧密协作,提升IT组织运作效率。尽管它强调了自动化与工具的重要性,但它并没有对“具体如何做”上提出明确的方向与要求。
随着几年DevOps运动的扩大与深入,伴随着产生了一系列具体的问题。例如,随着企业在DevOps方面的投入不断扩大,对这些投入的产出越来越模糊,同时,IT组织内部致疑的声音也越来越多。
正是因为看到了这些现实存在的问题,「平台工程」的提法才应运而生。它明确的提出了「工程平台产品化」的概念,以及衡量其价值产出的方式,即:无摩擦的自助式开发人员体验,为开发人员和其他人提供合适的能力,以尽可能少的开销,生成有价值的软件。

10

平台工程与SRE的区别与联系
SRE是指站点可靠性工程。最早提出 SRE 的组织是谷歌公司。SRE在大型网络公司中更为常见,因为小公司的运营规模通常不需要专门的 SRE。作为一个工作角色,SRE通常负责系统可用性、延迟、性能、效率、变更管理、监控、紧急情况响应和容量规划。
根据 DevOps Institute 2021 年的一份报告,在对 2000 名受访者进行的调查中,22% 的组织采用了 SRE 模型。由些可见,SRE工程师重点关注的是生产环境的系统稳定性。
平台工程则关注的是工作流程的体验与效率。由于工程平台承载了所有IT角色在研发与运营工作过程中的协作流程,所以SRE工程师也会使用工和平台所提供的功能来完成自己的某些工作任务,或与其他角色协作,来提升其工作效率。

11

工程平台会变得很通用吗
对于某个公司来说是一个非常理想的工程平台,但可能对另一个公司毫无用处。
不同公司的业务性质不同,业务发展阶段不同,组织架构不同,工作流程机制不同,所以,将一个工程平台平移到另一个公司使用的挑战是非常大的。可能需要大量的定制化工作。另外,每个公司也都是在不断变化与发展的。

12

工程平台通过何种方式达成目标

Image

对于组织来说,工程平台应该鼓励一致性和效率。在一个大型组织中,如果每个开发团队都制定自己的DevOps策略,结果将是复杂性、瓶颈以及安全漏洞或合规性违规风险的增加。
解决方案是将一些DevOps责任转移给平台工程团队。平台团队评估组织中各个DevOps团队的需求,确定快速交付优质软件所需的工具、服务和工作流程。然后,团队通过可重用的组件和流程使这些工具可用。

13

通过平台工程优化DevOps效率的方式有哪些
  • 构建内部研运一体化平台
  • 建设流畅的体验,减少用户的认知成本。
  • 简化、标准化和扩展流程
  • 建立并监控指标,定义并评估关键绩效指标
  • 优化团队绩效以提供增加的客户价值
  • 组织应该建立成熟的软件交付流程,以便平台团队可以构建支持积极模式并防止低效、风险或昂贵行为的结构。

14

如何组建工程平台组织
不要急于从临时的DevOps过渡到集中的平台团队。

花时间了解您组织的目标、挑战以及所需的变化。任何具有强大文化的组织,可能已经发展了多年甚至几十年,可能对变革持怀疑态度。

平台工程提供了一种新的做事方式——习惯于旧方式的开发人员往往不愿改变。要从平台团队获得最大价值,首先要培养一种重视合作、持续学习以及寻找改进和加速开发过程新方法的文化。

15

如何评估是否需要工程平台团队
一个小组织,只有少数开发人员在一个单体代码库上工作,可能不会对标准化有显著需求,因为团队之间的责任重叠很少。这种规模的团队通常没有资源投资于一个集中的平台团队。
规模较大的组织通常具有更复杂的软件架构和需要大量基础设施支持的专门团队。在这种复杂程度下,平台团队可以是一个有价值的投资,因为它将改善团队之间的协调,并创建一个更一致、安全和可扩展的开发过程
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
小结:
平台工程强调了DevOps的落地形式,对DevOps的绩效评估形式,以及可行的实现方式,即:通过一致性达成共用,以便提高工作流畅度且降低成本。
平台工程并不是新事物,而是DevOps运动经历了百花齐放,发展到一定阶段后的必然结果。
尽管在过去的一段时间里,DevOps运动让企业看到了一定的收益,但由于企业内部不同角色对DevOps的认知差异而产生不同的预期,以及它们与实际结果之间的差异,也为企业管理带来了一定的成本。
Gartner提出的“平台工程”是在了解了组织成员对DevOps的认知程度后,为了进一步巩固或扩大DevOps的收益,同时减少不必要的成本投入,企业所应采取的一种更为具体且实效的实现方式。