平台工程和DevOps并不矛盾
平台工程的增长是 2023 年 IT 运营和管理的新兴大趋势之一。
平台工程不完全是 DevOps,也不是 SRE(站点可靠性工程)。相反,它是一种重叠这两个学科的方法。
分析公司 Gartner 预测,到 2026 年,80% 的软件工程组织将拥有平台工程团队,以提供内部服务、组件和应用程序交付工具作为可重用资源。根据 Puppet 的《State of DevOps 2023 Report: Engineering edition》,大多数采用它的组织(51%)在过去三年内这样做了,93% 的受访者宣称平台工程采用是朝着正确方向迈出的一步。
那么平台工程到底是什么?根据 Red Hat SRE 高级总监 Narayanan Raghavan 的说法,平台工程的功能是创建和提供一套通用的工具或构件——像持续集成/持续部署(CI/CD)或开发工具链这样的软件组件,开发者可以将其作为产品开发的基础。
Raghavan 表示,平台工程的目标是消除开发人员在编写代码之前对其开发环境或所需系统的思考。
平台工程采用率不断增长的领域之一是CloudOps。
“在过去的一年里,我们看到大型组织采用平台工程方法的趋势越来越明显,” HashiCorp CTO兼联合创始人 Armon Dadgar 告诉 TPro Today。“对于许多采用云计算的传统企业来说,他们通常会认识到在进入更成熟的阶段时需要建立一个平台团队。”
根据 Dadgar 的说法,平台团队有许多驱动因素。他说,许多组织在开始他们的云计算之旅时,都专注于使团队能够在云上构建,但随着时间的推移,他们需要专注于管理成本、实施安全控制、维护合规性等。对于采用分散或临时的云计算方法的企业来说,管理这些问题非常困难。因此,Dadgar 表示,对于许多组织而言,使用平台工程方法来建立一个可以扩展的共享功能,已经迅速成为一种必要。
虽然对平台工程团队有明确的需求,但也有挑战。Dadgar 认为,第一个挑战实际上是创建平台团队。
“这听起来很简单,但往往没有行政支持来创建和资助一个专门的团队,”他说:“首先是领导层要有清晰的视野,了解到平台团队如何通过自动化和标准化来增加价值和提高效率。”
为了使平台团队取得成功,必须与解决客户问题的应用团队或业务线建立伙伴关系,Dadgar 说。
“这有助于推动组织内部的宣传工作,以促进采用。”他说。
准确理解平台工程在 IT 运营和管理领域中的确切位置可能会令人感到困惑。对于某些人来说,这是新事物,而对于其他人来说,这是 DevOps 的延伸。
“我们认为平台工程是 DevOps 的延伸,如果做得好,这是大规模解锁 DevOps 的关键,”Puppet by Perforce 研究总监 Ronan Keenan 告诉 ITPro Today。
Keenan 指出,在其公司的《2023 年 DevOps 状况》报告中,94% 的受访者同意,平台工程的概念正在帮助他们的组织更好地实现 DevOps 的好处。在谈到平台工程的主要好处时,Puppet 的报告发现,超过一半(53%)的受访者认为 “提高标准化” 是一个好处——这与 Puppet 多年来的分析有关,在这些分析中,其中标准化被认为是 DevOps 发展的一个重要部分。
Red Hat 的 Raghavan 将平台工程视为自己的实体。在他看来,SRE 是 DevOps 的一种实现,而平台工程是 DevOps 和 SRE 的结果,但在许多方面具有相似的精神。SRE团队专注于可靠性方面,以及建立可观察性和中央日志等能力,而平台工程是一种实现,即我们可以把系统和工具落实到位,在内部带来一致性,以帮助开发团队更快地行动。
“平台工程既不是 SRE 或 DevOps 的演变,也不是 DevOps 的竞争对手,甚至没有 SRE 的功能。它是不同的,”Raghavan 说。“平台工程师专注于为开发人员构建模块——开发工具,并提高工程团队的效率和生产力。”
在建立和运营平台工程实践方面有多种最佳做法。
要有产品思维。Puppet 的 Keenan 建议平台工程团队要有产品思维,确保他们与用户有反馈循环,并确保他们所构建的系统能够解决用户所面临的问题。
创建一个专门的团队。根据 HashiCorp 的 Dadgar 的说法,如果你想让你的平台工程团队取得成功,就要创建一个具有明确章程的专门团队。
“当人们有其他责任时,很难将构建平台作为兼职工作,”他说。“我们经常看到重塑中央 IT 职能品牌的错误,该职能默认将把关和票据作为一种熟悉的做法。”
了解最终目标。Dadgar 表示,从流程方面来说,了解最终目标是什么很重要。HashiCorp 认为组织希望开发团队能够以完全自动化的方式从开发到生产。这是一个很高的要求,因此将其分解为多个阶段,并尽可能多地将自动化工作流程,当成一个优先事项。Dadgar 建议首先为开发提供一致的预生产工具集,然后为配置提供基础架构即代码(IaC)管道,然后扩展到应用程序服务,例如可观察性、机密管理和服务网络。
选择正确的工具。如果一个平台团队要取得成功,组织的用户就必须愿意采用他们的解决方案。因此,选择开发人员想要使用的工具是减少采用摩擦的关键。
“构建一个平台应该被视为一个包含许多步骤的旅程,而不是一个要交付的单一项目,”Dadgar 说。“与应用程序团队密切合作,以逐步解决他们最大的痛点,是你在组织中建立信任和采用的关键,并且随着时间的推移,随着平台的成熟,你将解决更大的问题。”
链接:https://zhuanlan.zhihu.com/p/615813768
(版权归原作者所有,侵删)
微信扫码关注该文公众号作者