平台工程最近很热门。为了帮助您区分事实和夸张,这里总结了各方对平台工程是什么和不是什么的观点。
译自 Platform Engineering: What’s Hype and What’s Not? 。
软件开发世界正在经历深刻的变革。将开发人员和运营人员融合在一起的 DevOps 可能进入了一个新篇章。在这个新世界中,新兴的平台工程学科正在迅速流行起来。
平台工程是设计和构建自助功能的实践,以减少开发人员的认知负荷,并促进快速软件交付。许多大型组织在获得 DevOps 好处方面仍然艰难,部分原因是将更多运维和安全问题“左移”到软件开发人员的领域中为开发团队制造了瓶颈。与此同时,面对越来越多重复性的耗费时间的任务,打断了开发人员高效编码的流程状态,许多开发人员越来越不想涉及运维和“你构建,你运行”的范式。
平台工程正在成为解决这些挑战的解决方案。但是在所有关于它的讨论中,很难知道什么是真实的,什么不是。为了帮助您区分事实和夸张,这里总结了各方对平台工程是什么和不是什么的观点。
有人认为平台工程是新来的。但大规模交付软件的数字平台构建没有什么新鲜的。它甚至早于 2000 年代中期 DevOps 运动的诞生。根据 Puppet 的 2023 年 DevOps 报告,大型软件公司几十年来一直采用平台方法,以便开发团队能够更快速和更高质量地构建、交付和操作应用程序。
特别是在企业空间,平台工程作为一种使大公司改进大规模软件交付的方法,正在迅速增长。Gartner 将平台工程(它可交换地称为“平台运维”)确定为 2023 年顶级战略技术趋势之一。Gartner 分析师预测,到 2026 年,80% 的软件工程组织将建立平台团队,其中 75% 将包括开发人员自助服务门户。
那些声称 DevOps 已经死亡并且平台工程已经取代它的人在夸大其词。软件工程师和 DevOps 评论员 Sid Palas 在 2022 年发推文说:“DevOps 已死,祝贺平台工程诞生!”“1. 开发人员不喜欢处理基础设施,2. 公司需要随着增长控制基础设施。平台工程使这两个事实能够共存。”
平台工程没有对 DevOps 造成致命一击,更准确的说法是平台工程是 DevOps 和 SRE(网站可靠性工程) 的下一阶段演进。特别是,它有利于那些在等待内部批准或履行期间遇到代码生产瓶颈的开发人员。它还可以帮助开发人员按照自己的时间表交付,而不是按照他们的 IT 团队的时间表。它还可以帮助操作类型(例如 SRE 或 DevOps 工程师)的人,他们感受到了重复的请求履行和运营故障排除的痛苦 - 这种繁忙的工作阻碍他们为未来建立愿景。
作为 DevOps 文化核心的敏捷开发实践(例如协作、沟通和持续改进)还没有扩展到运维领域。这削弱了敏捷开发团队快速交付产品的能力。为了不永久地延续这种动态,DevOps 团队文化应该发展来支持平台工程,平台团队应该接受 DevOps 团队文化。
有些人,比如独立技术顾问 Sam Newman,认为平台工程只是另一个供应商生成的标签,可以贴在旧实践上,以掩盖我们积累的恐怖复杂的技术生态系统。Newman 担心的是,“单一”平台团队有风险成为他们本应该缓解的瓶颈,并且可能如此专注于管理工具,以至于忘记了结果。Newman 建议使用诸如“交付支持”或更好的“交付启用”之类的面向结果的标签,而不是使用“平台团队”之类的名称。
平台工程通过专门的团队为应用程序开发人员提供共享的自助服务平台,来解决扩展和加速 DevOps 采用的挑战。它最适合那些需要扩展和快速移动的更成熟的 DevOps 实践的企业。它通常不适用于小公司、单个开发团队或需要支持多个不同平台的情况,其中规模不是成功的驱动因素。
平台工程的一个定义是创建一组可重用的标准化工具、组件和自动化流程的实践,通常称为内部开发者平台(IDP)。IDP及其构建团队提供了开发人员完成日常任务的最低阻力路径。这些“黄金路径”内置了推荐的工具和最佳安全实践,使开发人员能够自助服务和自我管理他们的代码。
Gartner 和其他人建议通过将使用它的开发者视为客户来处理平台,以便他们反过来可以为组织的客户提供服务。与任何其他产品一样,在没有开发者的输入的情况下将平台强加于开发者不太可能产生积极的结果。因此,与内部消费者沟通以解决他们的需求至关重要。许多传统的基础设施团队不这样做,通常甚至不了解在他们的平台上运行的工作负载。
成功的 IDP 在允许开发人员保持高生产力编码的流程状态和通过自动化的全栈环境消除重复任务之间取得了平衡。开发人员可以更快地交付应用程序,因为平台工程师为他们平整了道路,使他们能够在每次签入时创建自己的环境。这使得开发人员可以在不等待或担心代码冲突的情况下查看、共享和测试应用程序。做得好的平台工程提供一流的开发人员体验; 在整个软件开发生命周期中为领先的工具、平台和云提供选择; 并为每个开发人员提供自助服务访问全栈环境。