DevOps、SRE和平台工程的概念在不同时期出现,并由不同的个人和组织开发。

  • DevOps作为一个概念是由Patrick Debois和Andrew Shafer在2009年的敏捷会议上提出的。他们试图通过促进协作文化和在整个软件开发生命周期中共享责任来弥合软件开发和操作之间的差距。
  • SRE,即站点可靠性工程,是谷歌在21世纪初首创的,用于解决管理大型复杂系统的操作挑战。谷歌开发了SRE实践和工具,如Borg集群管理系统和Monarch监控系统,以提高其服务的可靠性和效率。
  • 平台工程是一个较新的概念,建立在SRE工程的基础上。平台工程的确切起源不太清楚,但它通常被理解为DevOps和SRE实践的扩展,重点是为支持整个业务视角的产品开发交付一个全面的平台。

值得注意的是,虽然这些概念出现在不同的时期。它们都与软件开发和操作中改进协作、自动化和效率的更广泛趋势有关。

在过去的十年中,工程和技术组织已经将构建和部署云原生应用程序的最佳实践集合在一起。这些最佳实践包括持续交付、容器化和构建可观察系统。

与此同时,云原生组织已经从根本上改变了他们的组织方式,从大型部门(开发、QA、运营、发布)转移到较小的独立开发团队。这些应用程序开发团队得到两个新功能的支持:站点可靠性工程和平台工程。SRE和平台工程是传统运维团队的精神继承者,将软件工程的学科带入运维的不同方面。

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

  • 平台工程团队应用软件工程原则来加速软件交付。平台工程师确保应用程序开发团队在软件交付生命周期的所有方面都是高效的。
  • 站点可靠性工程团队应用软件工程原则来提高可靠性。站点可靠性工程师将影响云应用整体可靠性的故障频率和影响降到最低。

这两个团队经常混淆,这两个术语有时可以互换使用。事实上,一些组织将SRE和平台工程合并到相同的功能中。之所以会出现这种情况,是因为这两个角色都适用一套共同的原则。

  • 平台即产品。这些团队应该花时间了解他们的内部客户,制定路线图,制定发布节奏计划,编写文档,以及完成软件产品中的所有事情。
  • 自助服务平台。这些团队构建自己的平台供内部使用。在这些平台中,对最佳实践进行了编码,因此这些平台的用户无需担心——他们只需按下按钮即可。在Puppet Labs的《2020年DevOps现状报告》中,Puppet Labs发现,高功能DevOps组织比低功能DevOps组织拥有更多的自助服务基础设施。
  • 消除辛劳的持续关注。正如谷歌SRE书中定义的那样,辛劳是手动的、重复的、自动化的、战术的工作。最好的SRE和平台团队能够识别并消除辛劳。

平台工程

平台工程师不断地检查从源代码到生产的整个软件开发生命周期。通过这个内省的过程,他们构建了一个工作流,使应用程序开发人员能够快速编写和发布软件。基本的工作流通常包括与持续集成系统相连接的源代码控制系统,以及将工件部署到生产环境中的方法。

随着使用工作流的应用程序开发人员数量的增长,平台的需求也在变化。不同的应用程序开发团队需要类似但不同的工作流,因此自助服务基础设施变得很重要。自助服务的常见平台工程目标包括CI/CD、警报和部署工作流。

除了自助服务,教育和协作也成为挑战。平台工程师发现,他们花越来越多的时间培训应用程序开发人员,让他们了解最佳实践和如何最好地使用平台。应用程序开发人员还发现他们依赖于其他应用程序开发人员团队,并期望平台工程团队为他们提供与不同团队高效协作的工具。

站点可靠性工程

站点可靠性工程师创建和改进系统,以自动可靠地运行应用程序。站点可靠性工程的概念起源于谷歌,详细记录在谷歌SRE手册中。谷歌公司负责技术运维的高级副总裁Ben Treynor Sloss将SRE描述为“当你要求软件工程师设计运维团队时发生的事情”。

SRE定义服务水平目标,并构建系统来帮助服务实现这些目标。这些系统发展成为一个平台和工作流程,包括监控、事件管理、消除单点故障、故障缓解等。

SRE文化的一个关键部分是将每一个故障视为可靠性系统中的一个故障。严格的事后分析对于识别故障的根本原因至关重要,并将纠正措施引入自动化系统以继续提高可靠性。

New Relic的SRE和平台工程

我们中的一个人(Bjorn Freeman-Benson)一直管理着New Relic的工程组织,直到2015年,它从少数客户发展到成千上万的客户,所有客户每秒都向云端发送数百万个请求。New Relic有独立的SRE和平台工程团队,他们遵循上述一般原则。

这些团队被分开建立的原因之一是,在这些角色中取得成功的人是不同的。虽然sre和平台工程师除了需要经典的编程技能外,还需要强大的系统工程技能,但这些角色决定了非常不同的性格类型。sre倾向于享受危机管理,并在排除故障时获得肾上腺素飙升。SRE经理能在巨大的压力下茁壮成长,擅长招募和管理想法相似的人。另一方面,平台工程师是更典型的软件工程师,他们更喜欢不间断地工作在大而复杂的问题上。平台工程经理更喜欢按照一致的节奏进行操作。

DevOps和GitOps

在过去的十年中,DevOps已经成为描述这些实践的一个流行术语。最近,GitOps也成为了一个流行术语。DevOps和GitOps与平台和SRE团队有什么关系?
DevOps和GitOps都是一套关于如何管理基础设施不同方面的松散编码原则。这两种哲学的核心原则——自动化、基础设施作为代码、软件工程的应用——非常相似。
DevOps是一场广泛的运动,它专注于消除开发和运维之间的传统竖井。随着时间的推移,基础设施自动化和考虑运维的工程应用等策略已经被广泛接受,成为更好地构建高可靠性应用程序的方法。
GitOps是一种应用程序交付方法。在GitOps中,声明性配置用于在任何时刻编码应用程序的所需状态。这个配置在版本化的源代码控制系统中作为唯一的真实数据源进行管理。这确保了可审计性、可再现性和配置的一致性。
简而言之:DevOps是SRE的一套指导原则,而GitOps是平台工程的一套指导原则。

解锁应用程序开发效率

站点可靠性工程和平台工程是优化构建云原生应用的工程组织的两个关键功能。SRE团队致力于为高可靠的应用程序交付基础架构,而平台工程团队致力于为快速的应用程序开发交付基础架构。这两个团队共同提高了应用程序开发团队的生产力。

参考:

DevOps、SRE、平台工程的区别的更多相关文章

  1. 研发效能|DevOps 已死平台工程永存带来的焦虑

    最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...

  2. 从工具、工具箱到数字化软件工厂——DevOps 设计理念与工程实践专场 | CIF 精彩看点

    西方经典管理理论认为,组织效率可以归为劳动效率.组织效率和人的效率.美国管理学家泰勒所著的<科学管理原理>被德鲁克誉为"20 世纪最伟大的发明",劳动效率说认为分工提升 ...

  3. 平台工程101:Dev、Sec和Ops的自动化黏合剂

    国际权威知名调研机构 Gartner 在<2023年最重要的10个技术趋势>报告中将平台工程(Platform Engineering)列为高速发展的技术趋势之一,并预测到2026年80% ...

  4. DevOps之平台架构

    唠叨话 关于德语噢屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. DevOps平台架构(Platform Architecture) <虚拟化平台(Platfor ...

  5. 传统式与自助式BI分析平台有什么区别

    如今自助式BI分析平台已经成为众多企业进行数据分析工作时的首选,究竟自助式BI分析平台在数据分析中有哪些优势,可以受到企业如此的青睐与追捧呢?小编将在本文中,跟大家一起来了解自助式BI分析平台的概念. ...

  6. DevOps和SRE的区别

    目录 一.误区 二.DevOps 和 SRE 定义 三.两者产生背景和历史 四.两者的职能不同 五.工作内容不同 六.DevOps 和 SRE 关系 七.附录:技能点 DevOps SRE 一.误区 ...

  7. 云原生时代的DevOps平台设计之道

    开发人员与运维人员是 IT 领域很重要的两大人群,他们都会参与到各种业务系统的建设过程中去.DevOps 是近年间火爆起来的一种新理念,这种理念被很多人错误的解读为"由开发人员(Dev)学习 ...

  8. 中国DevOps平台市场,华为云再次位居领导者位置

    摘要:华为云软件开发生产线DevCloud在市场份额和发展战略两大维度均排名第一,再次位居领导者位置. 9月21日 ,国际权威分析师机构IDC发布<IDC MarketScape: 中国 Dev ...

  9. 蓝鲸DevOps深度解析系列(1):蓝盾平台总览

    ​​关注嘉为科技,获取运维新知 2018年10月,嘉为科技与腾讯云.蓝鲸智云携手,在北京.上海.广州.深圳举办 “研运一体,数据驱动,让运维走向运营”为主题的分享会,来自金融.电力.能源.制造等行业的 ...

  10. scrum vs devops vs sre

    DevOps&SRE 超越传统运维之道[北京站] IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/eventlist/detail/908

随机推荐

  1. HTML和xml

    [html和xml的相同点] html和xml 都是标记语言,都是基于文本编辑和修改的. 都是用于操作系统或数据结构,结构上大致相同. 都可以通过DOM  变成方式来访问. 都可以通过CSS来改变外观 ...

  2. MMDetection中模型的Checkpoints下载

    mmdetection中的模型checkpoints是需要自己手动下载的,下载步骤如下: 打开mmdetection, 进入configs目录,可以看到这里面有很多以目标检测模型命名的文件夹,选择你想 ...

  3. Android 自定义View (三)

    一.前言 上节 讲解了旋转圆环基本的实现方法.本文将在此基础上进一步改进,在属性文件中自定义控件属性,避免代码中显式调用setXXX() 方法. 二.流程 首先,在资源文件 values 中新建一个 ...

  4. Postman设置Cookie参数为全局变量-环境变量设置IP参数

    前提:在遇到多接口测试时,容易出现限制登录的情况 可以使用两种情况: 1.在调用其他接口前,先调用登录接口:这个方法在一般情况下可以,但是对于有些环境,比如像小程序登录时token(或cookie)是 ...

  5. vs2022和wsl2开发和调试c++代码(转载)

    看见一个不错的帖子(知乎) https://zhuanlan.zhihu.com/p/390757559 里面最主要就是要保证wsl里面安装的东西够了,第二就是vs2022已经安装了linux的相关模 ...

  6. 安装单机版k8s

    1.配置yum源,博主使用华为的镜像源 选择不同的系统版本下载使用: 2.安装etcd,kubernetes yum -y install etcd kubernetes 3.修改kubernetes ...

  7. elementui中对样式的修改标签

    /deep/ .el-drawer.rtl { -webkit-animation: rtl-drawer-out .3s; animation: rtl-drawer-out .3s; backgr ...

  8. egret 根接受分发

    egret.MainContext.instance.addEventListener("firstEnter",this.torunGame,this); egret.MainC ...

  9. JAVA重试机制多种方式深入浅出

    重试机制在分布式系统中,或者调用外部接口中,都是十分重要的. 重试机制可以保护系统减少因网络波动.依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制. 为了方便说明,先假设我们想要进行 ...

  10. [网鼎杯 2018]Fakebook

    1.解题过程 1.sql注入 访问web页面有一个login和join ![1](https://raw.githubusercontent.com/lanchuangdexingjian/Blog- ...