SRE vs 平台工程师

举报
kaliarch 发表于 2022/10/05 20:04:57 2022/10/05
【摘要】 DevOps、GitOps和云原生工程组织的兴起在过去的十年里,工程和技术组织已经集中在构建和部署云原生应用程序的一组常见的最佳实践上。这些最佳实践包括连续交付、集装箱化和构建可观察的系统。同时,云原生组织已经从根本上改变了它们的组织方式,从大型部门(开发、QA、运营、发布)转移到更小的独立开发团队。这些应用程序开发团队得到了两个新功能的支持:站点可靠性工程和平台工程。SRE和平台工程是传统...

DevOps、GitOps和云原生工程组织的兴起

在过去的十年里,工程和技术组织已经集中在构建和部署云原生应用程序的一组常见的最佳实践上。这些最佳实践包括连续交付、集装箱化和构建可观察的系统。
同时,云原生组织已经从根本上改变了它们的组织方式,从大型部门(开发、QA、运营、发布)转移到更小的独立开发团队。这些应用程序开发团队得到了两个新功能的支持:站点可靠性工程和平台工程。SRE和平台工程是传统运营团队的精神继承者,并将软件工程的学科带到运营的不同方面。

站点可靠性工程与平台工程

平台工程团队应用软件工程原理来加速软件交付。平台工程师确保应用程序开发团队在软件交付生命周期的各个方面都是富有成效的。
现场可靠性工程团队应用软件工程原理来提高可靠性。站点可靠性工程师最大限度地减少可能影响云应用程序整体可靠性的故障频率和影响。
这两个团队经常被混淆,术语有时被互换使用。事实上,一些组织将SRE和平台工程合并到相同的功能中。这是因为两个角色都应用了一组共同的原则:

  • 平台作为产品。这些团队应该花时间了解他们的内部客户,构建路线图,有一个计划的发布节奏,编写文档,并做所有涉及软件产品的事情。
  • 自助服务平台。这些团队构建他们的平台供内部使用。在这些平台中,对最佳实践进行了编码,因此这些平台的用户不需要为此担心–他们只需按下按钮。在《2020年Puppet Labs DevOps State of DevOps报告》中,Puppet Labs发现,高功能DevOps组织比低功能DevOps进化组织拥有更多的自助服务基础设施。
  • 对消除辛劳的持续关注。正如Google SRE书中所定义的,辛苦是人工的、重复的、可自动化的、战术性的工作。最好的SRE和平台团队识别辛苦,并努力消除它。

平台工程师

平台工程师不断地检查从源代码到生产的整个软件开发生命周期。从这个自省过程中,他们构建了一个工作流,使应用程序开发人员能够快速编写和发布软件。基本工作流通常包括与持续集成系统连接的源代码管理系统,以及将工件部署到生产中的方法。
随着使用工作流的应用程序开发人员数量的增加,平台的需求也随之发展。不同的应用程序开发团队需要相似但不同的工作流,因此自助服务基础结构变得重要。自助服务的通用平台工程目标包括CI/CD、警报和部署工作流。
除了自助服务,教育和协作也成为挑战。平台工程师发现,他们越来越多地花时间教育应用程序开发人员最佳实践以及如何最好地使用平台。应用程序开发人员还发现,他们依赖于应用程序开发人员的其他团队,并指望平台工程团队为他们提供工具,以便与不同的团队进行富有成效的协作。

站点可靠工程师

站点可靠性工程师创建和发展系统,以自动可靠地运行应用程序。站点可靠性工程的概念起源于谷歌,并在谷歌SRE书中有详细的记录。谷歌负责技术运营的高级副总裁Ben Treynor Sloss将SRE描述为“当你要求软件工程师设计一个运营团队时会发生什么”。
SRE定义服务级别目标,并构建系统来帮助服务实现这些目标。这些系统演变成一个平台和工作流,包括监视、事件管理、消除单点故障、故障缓解等。
SRE文化的一个关键部分是将每一次故障都视为可靠性系统中的一次故障。严格的事后检查对于确定故障的根本原因至关重要,并在自动系统中引入纠正措施,以继续提高可靠性。

我们中的一个(Bjorn Freeman-Benson)在2015年之前一直管理着New Relic的工程组织,因为它从几个客户发展到数万个客户,每秒向云发送数百万个请求。New Relic有独立的SRE和平台工程团队,他们遵循上面概述的一般原则。
这些团队分别建立的原因之一是,在这些角色中茁壮成长的人不同。虽然SRE和平台工程师除了传统的编程技能之外,还需要很强的系统工程技能,但这些角色决定了非常不同的个性类型。SRE倾向于享受危机管理,并从故障排除中获得肾上腺素。SRE经理在巨大的压力下茁壮成长,并擅长招募和管理类似想法的人。另一方面,平台工程师是更典型的软件工程师,他们喜欢不间断地处理大的、复杂的问题。平台工程管理人员更喜欢以一致的节奏进行操作。

DevOps 和 GitOps

在过去的十年里,DevOps已经成为描述其中许多实践的流行术语。最近,GitOps也成为一个流行的术语。DevOps和GitOps如何与平台和SRE团队相关?
DevOps和GitOps都是关于如何管理基础设施的不同方面的一组松散的原则。这两种哲学的核心原则–自动化、作为代码的基础设施、软件工程的应用–非常相似。
DevOps是一个广泛的运动,它开始于消除开发和运营之间的传统孤岛。随着时间的推移,诸如基础设施自动化和考虑操作的工程应用程序等策略作为更好地构建高可靠性应用程序的方法获得了广泛的接受。
GitOps是应用程序交付的一种方法。在GitOps中,声明性配置用于在任何时刻对应用程序的期望状态进行编码。此配置在版本化的源代码管理系统中作为真理的单一来源进行管理。这确保了配置的可审计性、可重复性和一致性。

简而言之:DevOps是一套SRE的指导原则,而GitOps是一套平台工程的指导原则。

解锁应用程序开发生产力

站点可靠性工程和平台工程是优化构建云原生应用程序的工程组织的两个关键功能。SRE团队致力于为高度可靠的应用程序提供基础设施,而平台工程团队致力于为快速的应用程序开发提供基础设施。这两个团队一起解锁了应用程序开发团队的生产力。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。