平台工程开篇

在 KubeCon Europ 2023大会上,最热门的话题是“平台工程 Platform Enineering” ,本文介绍了组织采用Kubernetes存在的挑战、什么是平台工程、平台工程如何消除这些挑战。

Kubernetes已成为IT基础设施

Kubernetes已成为IT基础设施,将支持数字时代的新应用程序和新开发。 Kubernetes正在成为云的操作系统。 Kubernetes正在成为下一个数据中心。 Kubernetes是下一个平台。这些都是Futurum分析师Camberley Bates的观点。这个观点与最近的CNCF年度调查结果相匹配。

采用Kubernetes面临的挑战

复杂性安全性技能缺口是组织在采用Kubernetes时面临的最大挑战。

KubeCon Europe 2023的主题演讲确定了需要缓解的三个“复杂性”:

  • 全球平台规模下的配置复杂性
  • 痛苦的Kubernetes升级
  • 多集群管理。

平台工程是关键

为了简化Kubernetes管理,出现了许多技术和技巧,这一运动已经使平台工程成为热门趋势。自从2022年11月在KubeCon North America上作为热门话题出现以来,平台工程的势头一直在加速。Intellyx分析师Jason Bloomberg在接受The Cube采访时指出,平台工程是KubeCon Europe 2023的关键主题之一。

D2iQ的首席技术官Deepak Goel在接受The Cube采访时谈到了他对平台工程的看法。

Deepak解释说,当不是Kubernetes专家的DevOps团队被指派部署和维护Kubernetes环境时,就会出现效率低下的情况。平台工程不仅消除了处理Kubernetes复杂性的负担,而且还减轻了云和集群扩散对许多组织造成的影响。通过提供一种一致和标准化的方式来部署和管理Kubernetes,平台工程消除了开发人员处理Kubernetes配置的负担,使他们可以专注于开发应用程序,从而使他们的生活更轻松。

什么是“平台工程”

平台工程是一种新兴的技术方法,可以加速应用程序的交付和它们产生业务价值的速度。

平台工程通过提供自助服务功能和自动化基础设施运营来提高开发人员的体验和生产力。

平台工程因其优化开发人员体验并加速产品团队交付客户价值的承诺而成为趋势。

保罗·德洛里(Paul Delory)是Gartner的副总裁分析师,他说:

  • “平台工程是对现代软件架构日益复杂的回应。今天,非专家终端用户经常被要求操作一系列复杂的神秘服务。”
  • “为了帮助终端用户并减少他们所做有价值工作的摩擦,有远见的公司已经开始构建操作平台,这些平台位于终端用户和他们依赖的后备服务之间。”

平台工程 vs DevOps

平台工程团队的职责不应与站点可靠性工程(SRE)团队或DevOps团队混淆。

虽然这三种角色之间存在相似之处,但了解它们之间的区别可以帮助解释为什么平台工程已成为一个重要的新兴趋势。

在20世纪90年代末和21世纪初期,大多数设置都有一个单一的系统管理员(sysadmin)或操作员,开发人员必须通过他们才能完成任何工作。 然而,云计算的兴起创造了加速软件开发和交付到生产环境的需求。传统的“扔过墙”的工作流开始为开发人员和运营人员创建了很多瓶颈。这一切在2006年亚马逊的开发人员开始部署和运行他们的服务和应用程序端到端时发生了变化。这就是DevOps成为敏捷软件开发的黄金标准的原因。

虽然DevOps导致了更快、更好的软件交付、可扩展性和稳定性,但对于大多数其他组织来说,采用情况不佳,并导致了一系列组织反模式。 为了应对这种变化,高级开发人员负责这个设置,要么自己做这项工作,要么协助他们的初级同事。 这种方法会导致“影子运营”反模式,其中一个组织错误地分配了他们最昂贵、最有才华的资源(开发人员),仍然无法像以前那样快速、高效地将代码运送到生产环境中。 这种反模式在其他几项研究中也出现了,比如Humanitec的DevOps设置基准报告,该报告显示44%的低绩效组织存在影子运营,一些开发人员自己做DevOps并帮助经验较少的同事。 这与表现最佳的组织形成鲜明对比,在这些组织中,所有开发人员中有100%完全自我服务,并采用“你构建它,你运行它”的方法。

平台工程 vs SRE

云原生的兴起使得工程师需要在生产和运营中工作。Google在2003年创立并推广的站点可靠性工程是一种应用软件工程原则来解决基础设施和运营问题的概念。站点可靠性工程师(SRE)负责确保系统具有可扩展性、稳定性和高度可靠性。虽然站点可靠性工程作为一个概念没有什么问题,但是当它被错误地采用时,尤其是在那些没有像Google这样的人才库和资源的组织中,就会出现问题。当组织雇用没有足够经验来满足他们的设置需求的SRE时,运营工程师就会承担SRE的职责,从而导致“假SRE”成为一种限制性角色。

平台工程解决方案

DevOps Topologies 研究证明,为开发人员提供IDP作为产品的专用平台团队是克服DevOps和虚假SRE反模式的最佳方法。

当开发人员的认知负荷过大时,平台工程通过将复杂的工作流程绑定到黄金路径和铺路上来减轻它。 当虚假SRE为开发人员创建瓶颈时,平台工程通过提供一致且灵活的开发人员体验来优先考虑开发人员自助服务和自动化。

根据Puppet 2021年的DevOps报告,所有“擅长DevOps”的组织的共同点是,它们采用了平台团队模型,在那里他们发现“DevOps演进和内部平台使用之间存在高度相关性”。 正如报告所指出的那样,“并非每个平台团队都会自动成功,但成功的团队会将其平台视为产品。他们努力为应用程序团队创造一个引人注目的价值主张,这个价值主张比构建自己的解决方案更容易且更具成本效益。”

Gartner将平台工程确定为2023年最重要的战略技术趋势之一,并预测到2026年,80%的软件工程组织将建立平台团队;其中75%包括开发人员自助服务门户网站。

随着云、Kubernetes和基础设施即代码(IaC)的普及和可扩展性,组织必须在没有必要的技术知识和技能的情况下管理复杂的系统网络。 为了减少开发人员的摩擦和心理负担,许多有远见的公司成立了专门的团队,构建和维护内部平台,并建立最佳实践,以加速企业软件生产。

每个开发团队都有不同的需求和生产路径,但平台工程的总体目标仍然是相同的:以尽可能少的开销加速软件交付

构建一个平台工程,就是创建一个自动化平台来提供“黄金状态”给DevOps团队,平台内置的典型功能包含:日志记录、监视、网络、安全、可观察性、成本监控、策略服务等。 这些功能都通过单个中央管理面板进行部署和管理。 平台工程师可以将所有内容绑定到一个黄金路径和铺路上,以尽可能少的开销加速和简化软件交付。 通过云原生GitOps进行应用程序和基础设施管理时,平台工程师可以通过提供一致且灵活的开发人员体验来启用开发人员自助服务和自动化。

Reference

KubeCon Europe 2023 highlights Kubernetes explosion and need for instant platform engineering

Simplifying Kubernetes Management with Instant Platform Engineering

What Is Platform Engineering?

KubeCon Europe 2023 highlights Kubernetes explosion and need for instant platform engineering