本文翻译自:https://www.flagship.io/glossary/site-reliability-engineer/,意译~

众所周知,开发和 IT 运营之间因为屁股决定脑袋,存在巨大的鸿沟,而网站可靠性工程师(SRE)在开发和 IT 运营之间建立了一座桥梁,SRE 会承担原本属于 IT 运营的一部分工作,不过 SRE 的工作方式和传统的 IT 运营很不相同,SRE 有很强的研发能力,他们通过创建可扩展和可靠的软件系统来解决问题。

标准化和自动化是 SRE 工作的核心,特别是当系统迁移到云端时。因此,他们通常有软件或系统工程或系统管理的背景,有 IT 运营经验。

什么是网站可靠性工程?

在探讨网站可靠性工程师的角色和职责之前,我们先来定义一下什么叫网站可靠性工程。网站可靠性工程是一个由谷歌首次提出的术语,核心是 “把 IT 运营当作一个软件问题来对待”。

SRE 主要是为 IT 运营开发软件系统和自动化解决方案。SRE 做的是传统上由 IT 运营完成的工作,所不同的是,SRE 有软件专业知识,他们会利用这些知识来解决复杂的 IT 运营问题。

因此,网站可靠性工程可以被认为是一套实践,将软件工程的各个方面纳入 IT 运营,从而提高软件系统(IT 运营的运营对象)的效率和可靠性,改善工作流程。

SRE 与 DevOps

网站可靠性工程与 DevOps 密切相关,DevOps 是另一个将软件开发和运营联系起来的概念,可以被看作是 SRE 核心原则的概括。因此,SRE 在成功实施 DevOps 实践中发挥了很大作用。

此外,DevOps 和 SRE 都试图在运营和开发团队之间架起桥梁,以便更快地交付软件。

然而,谷歌的一篇文章对这两个术语进行了区分,指出 SRE “恰好体现了 DevOps 的理念,但对可靠性的度量和实现有更多的规范性,这些规范要在软件工程和 IT 运营工作中落地。换句话说,SRE 规定了如何在各种 DevOps 领域取得成功,尤其是在可靠性方面”。

网站可靠性工程师是做什么的?

网站可靠性工程师(SRE)在开发和运营之间工作。SRE 是一个具有 IT 运营经验和知识的软件开发人员。

这个角色的很多工作内容都是通过写代码来完成的,比如分析日志、测试生产环境,以及应对其他任何问题,所以 SRE 工程师将是一个编写代码的专家。

自动化做好了,业务研发人员就可以更专注在功能开发,就可以更快的把一些新的产品特性带入生产,让终端用户受益。

运营团队则会发现他们的工作量在减少,因为 SRE 会对任何反复出现的问题进行自动化解决。

SRE 工程师将在开发和 IT 运营工作之间进行转换,并保持两者之间的平衡。因为 SRE 工程师的主要工作是自动化,这意味着此类工程师会增强软件开发过程的性能、效率和监控。

所需的技能组合

SRE 致力于创建软件,以提高业务系统的可靠性,修复问题,并对事件和问题作出回应。因此,他们将需要各种技术技能。

他们将需要拥有各种自动化工具的知识,因为他们通常负责建立和整合软件工具,以提高组织系统的可靠性和可扩展性。

如上所述,SRE 将需要编码知识和大多数常见的编程语言,比如 Ruby, Javascript 和 PHP。

另外 SRE 还需要具备主要云供应商的专业知识,如 AWS 和谷歌云。

SRE 的日常角色和职责

自动化

如前所述,SRE 工程师建立自动化的工具来管理 IT 运营。因此,他们的目的不是手动执行这些功能,而是将它们自动化。这些功能包括

  • 持续集成和持续交付

  • 监测

  • 事件响应

  • 警报

监控

SRE 工程师负责确保底层基础设施的顺利运行,确保系统和工具按预期工作。他们还监测关键的应用程序和服务,以尽量减少停机时间并确保其可用性。

问题解决

这些工程师与开发人员紧密合作,特别是当问题出现时,他们将与开发人员合作,帮助排除故障,并在发出警报时提供咨询。

在开发人员遇到问题时,SRE 将进行调查,然后解决该问题。在事件解决后,SRE 将重新审视该问题并确定原因,以确保它不会再次发生。

跨团队协作

如上,SRE 需要跨团队协同,主要是 IT 运营人员和开发人员。通过建立可靠的系统为这些团队提供支持,这将使这些团队有更多的时间将注意力转移到建立新的功能上,从而更快地将这些功能推出给客户。

SRE 使用的常见工具

  • 监控:此类工具包括 AWS CloudWatch 和 NewRelic

  • 事件管理/待命:如 PagerDuty 和 VictorOps

  • 项目管理和问题跟踪:如 Jira 和 Trello

  • 基础设施协调:包括 Terraform 和 SaltStack

工多工具请参考《SRE工具列表

SRE 的收入是多少?

根据 payscale,这种类型的工程师在美国的年薪在 76,000 美元到 158,000 美元之间,平均年薪为 117,768 美元。

小结

SRE 工程师正在成为组织内一个越来越重要的角色。这是一个具有挑战性的角色,需要对编码和自动化有很高的热情。

在你的组织中拥有这样的工程师将有助于降低你的运营成本,同时提高系统的可靠性。

关于译者

本文译者秦晓辉Flashcat合伙人,文章内容是 Flashcat 技术团队共同沉淀的结晶,作者做了编辑整理,我们会持续输出监控、稳定性保障相关的技术文章,文章可转载,转载请注明出处,尊重技术人员的成果。

如果对 Nightingale、Categraf、Prometheus 等技术感兴趣,欢迎加入我们的微信群组,联系我(picobyte)拉入部落,和社区同仁一起探讨监控技术。

国外的SRE都是干啥工作的?薪资如何?的更多相关文章

  1. commit后数据库干的工作

    用户提交commit后,数据库干的工作有: 1,oracle为用户的transaction生成一个SCN号. 2,LGWR把redo buffer中的数据写入到redo log file,同时把SCN ...

  2. python python中那些双下划线开头的那些函数都是干啥用用的

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  3. windows 8,关闭随意窗体都提示“已停止工作”的解决的方法

           电脑用的好好的,突然出现了关闭随意窗体都提示"已停止工作",每次都是这样.想想也就是偶尔优化一下,近期也没有改动过什么系统设置呀,突然想到昨晚JLink_V8固件丢失 ...

  4. WEB服务器都在做哪些工作?

    作为WEB开发人员,我们肯定应该要知道WEB服务器都在做哪些工作,这里简单列举一下,有时间然后详细说明. (1)建立连接——接受一个客户端连接. (2)接收请求——从网络中读取一条 HTTP 请求报文 ...

  5. 讲一下java,c语言,c+和c++都是干嘛的,他们运行的软件都是哪些

    讲一下java,c语言,c+和c++都是干嘛的,他们运行的软件都是哪些 都是用于开发软件的,用于不同的方面.比如,淘宝的后台,是java做的.而腾讯的qq的后台服务器,是c和c++的.暴雪游戏的后台服 ...

  6. JS中new都是干了些什么事情

    var Person = function(name){ this.name = name; this.say = function(){ return "I am " + thi ...

  7. Python爬虫入门教程 60-100 python识别验证码,阿里、腾讯、百度、聚合数据等大公司都这么干

    常见验证码 之前的博客中已经解决了一些常见验证码的问题,但是验证码是层出不穷的,目前解决验证码除了通过常规手段解决以外,还可以通过人工智能领域的深度学习去解决 深度学习?! 无疑对爬虫coder提高了 ...

  8. 国外的教授都说,用这个方式21天就能学会python,这是中国速度

    你尝试过吗?按照这个方式,用21天就能学会python编程.     在今年的疫情期间,在家的时间何止21天,有这样一位做财务的朋友,为了提高自己的数据分析能力,在家通过这个方式,跟着21天的规划,坚 ...

  9. java 输入输出IO流 IO异常处理try(IO流定义){IO流使用}catch(异常){处理异常}finally{死了都要干}

    IO异常处理 之前我们写代码的时候都是直接抛出异常,但是我们试想一下,如果我们打开了一个流,在关闭之前程序抛出了异常,那我们还怎么关闭呢?这个时候我们就要用到异常处理了. try-with-resou ...

  10. 说说MySQL中的Redo log Undo log都在干啥

        在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQL中的日志文件, ...

随机推荐

  1. MAUI Blazor (Windows) App 动态设置窗口标题

    接着上一篇"如何为面向 Windows 的 MAUI Blazor 应用程序设置窗口标题?" Tips: 总所周知,MAUI 除了 Windows App 其他平台窗口是没有 Ti ...

  2. 【Hadoop学习】上:组成介绍、生态体系、环境准备、不同运行模式测试

    目录: 入门(上) HDFS(中) MapReduce&Yarn(下) 优化(补充) 一.大数据概述 概念 特点:VVVV 应用场景 二.Hadoop到大数据生态 1.Hadoop生态圈.发展 ...

  3. .net core 中 WebApiClientCore的使用

    WebApiClient 接口注册与选项 1 配置文件中配置HttpApiOptions选项 配置示例 "IUserApi": { "HttpHost": &q ...

  4. 像go 一样 打造.NET 单文件应用程序的编译器项目bflat 发布 7.0版本

    现代.NET和C#在低级/系统程序以及与C/C++/Rust等互操作方面的能力完全令各位刮目相看了,有人用C#开发的64位操作系统: GitHub - nifanfa/MOOS: C# x64 ope ...

  5. 记录Typescript的学习调试笔记(比 javascript更具面向对象,强类型检查,静态字段,适合现代的大团队分工与管理风格).

    1.)先来一段Typescript的环境安装. 安装nodejs ,下载地址:https://nodejs.org/en/download/                 //(node-v12.1 ...

  6. Kali Pi 安装 RTL8812AU驱动

    今天,我们来实操安装一下昨天的RTL8812​的无线网卡驱动. 说明 我们今天使用的网卡是磊科的NW392无线网卡,其主要核心为NW392. 一张32G内存卡 树莓派为树莓派4B 4G-RAM 系统为 ...

  7. 【kubernetes入门到精通】Kubernetes的健康监测机制以及常见ExitCode问题分析「探索篇」

    kubernetes进行Killed我们服务的问题背景 无论是在微服务体系还是云原生体系的开发迭代过程中,通常都会以Kubernetes进行容器化部署,但是这也往往带来了很多意外的场景和情况.例如,虽 ...

  8. 基于Linux下的Ubuntu操作系统常用命令

    一 .linux操作系统的特点 1.linux下一切皆文件 2.linux系统就像一个倒置数 3.linux系统支持多用户.多任务 二. Ubuntu --"乌班图"操作系统 Ub ...

  9. python数据分析与可视化【思维导图】

    python数据分析与可视化常用库 numpy+matplotlib+pandas 思维导图 图中难免有错误,后期随着学习与应用的深入,会不断修改更新. 当前版本号:1.0 numpy介绍 NumPy ...

  10. 避免用Apache Beanutils进行属性的copy。why?让我们一起一探究竟

    在实际的项目开发中,对象间赋值普遍存在,随着双十一.秒杀等电商过程愈加复杂,数据量也在不断攀升,效率问题,浮出水面. 问:如果是你来写对象间赋值的代码,你会怎么做? 答:想都不用想,直接代码走起来,g ...