本文翻译自: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. nginx配置文件讲解及示例(可复制)

    详细的配置说明参考:https://www.cnblogs.com/ghl1024/p/9013805.html [示例一] #运行用户user www-data;   #启动进程,通常设置成和cpu ...

  2. 【实时数仓】Day02-DWD、DIM层数据准备:各层职能、行为日志DWD层、业务日志DWD层及分流(Phoenix和HBASE)

    一.需求分析及实现思路 1.分层需求 建立数仓目的:增加数据计算的复用性 可以从半成品继续加工而成 从kafka的ODS层(数据一开始就读到了kafka)读用户行为数据和业务数据,并写回到kafka的 ...

  3. 上传文件到阿里云 oss,前端 browser.js 笔记

    Web端常见的上传方法是用户在浏览器或App端上传文件到应用服务器,应用服务器再把文件上传到OSS. 和数据直传到OSS相比,有以下缺点 上传慢:用户数据需先上传到应用服务器,之后再上传到OSS 费用 ...

  4. js修改数组中的属性名

    将数组 [{id:"1",name:"AAA"}] 修改为 ===> [{id:"1",text:"AAA",va ...

  5. CLI框架:klish安装与使用

    在通信设备领域,思科的路由器设备可以用CLI进行操作.这里介绍的开源项目klish是思科CLI风格(CISCO-like CLI)的框架.命令配置文件为xml格式. 源码:pkun/klish: Th ...

  6. WPF 自定义附加事件

    我们都知道路由事件,而附加事件用的比较少. 但如果是通用的场景,类似附加属性,附加事件就很有必要的. 举个例子,输入设备有很多种,WPF中输入事件主要分为鼠标.触摸.触笔:WPF 屏幕点击的设备类型 ...

  7. 2020强网杯青少赛Pursuing_The_Wind战队WRITEUP

    在线文档:https://docs.qq.com/doc/DZkN0RFFaR1ZDdHhD    旧事拾荒,偶遇该文档,既发. 战队信息 战队名称:Pursuing_The_Wind 战队排名:12 ...

  8. 搭建一个Hexo个人博客系统

    0x01 前言 虽然说前两天折腾了一下博客园(自己之前也有做过自己的博客,奈何维护费用太贵了,真的消耗不起,钱要花在刀刃上.) 网上有些教程有些参差不齐,今天给自己的真实搭建过程呈现给大家. 0x02 ...

  9. group by 语句怎么优化?

    一.一个简单使用示例 我这里创建一张订单表 CREATE TABLE `order_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', `or ...

  10. WPF开发经验-实现一种三轴机械手控件

    一 引入 考虑实现一种三轴机器人控件. 三轴机器人用来将某种工件从一个位置运送到另一个位置. 其X轴为手臂轴,可以正向和反向运动,它处于末端,直接接触工件: 其T轴为旋转轴,可以对手臂进行旋转: 其Z ...