摘要:随着云业务的发展,今后会有越来越多的工程师深入到SRE领域。

本文分享自华为云社区《浅谈SRE角色认知》,作者: SRE确定性运维。

一、什么是SRE?

SRE(Site Reliability Engineer)从2003年被谷歌公司提出,已经将近20年,它不仅是一个岗位,而是一个体系化的工程。最早谷歌公司提出SRE是为了解决两个核心冲突点:1、开发、运维两个团队在上线速度和现网系统稳定性之间的冲突;2、软件的快速上线,模糊了运维和研发的边界。谷歌SRE通过软件工程技术,持续改进现网可用性和自动化运维能力,SRE作为一个新的技术岗位走上历史舞台。

SRE是站点可用性工程师:强调软件和系统工程能力,SRE需要编写自动化脚本,优化和改进配置。写代码是必须的技能要求,因为代码是支撑工具开发和自动化的手段,但不鼓励写大量代码,希望能通过简单的工具或者配置解决问题。

SRE素质能力模型主要有:软技能(合作、沟通、独立解决问题),实践经验(IT运维、基础设施、安全等),流程和框架(DevOps、敏捷等),新技术(CICD工具、微服务升级与API)。

二、云为什么要走SRE道路

云业务相较传统业务存在两个变化,运维对象和运维模式都发生了本质改变,传统运维模式已不能满足要求,运维专业必定向SRE发展。

面向运维对象的四点变化:

1)传统产品局点规模海量,单局点规模有限。但云业务单系统就支持几十上百万的服务器规模;

2)传统IPD版本周期长达半年,DevOps模式1~4周一个版本;

3)云计算L0~L4堆栈复杂,系统整体可用性依赖全栈可用性;

4)运维对象不是可批量交付的成熟产品,而是微服务架构下的不断演进的服务组件,同时各个行业的特质也会发生变化。

商业模式改变引起运维模式的变化:

1)商业模式转变导致运维的责任边界产生变化,传统模式客户服务运维,厂家做二线保障。现在需要端到端负责可用性设计以及1/2线运维,这种模式下,仅靠后端保障可用性是不够的,需要介入前端顶层架构设计。

2)传统模式只对交付的产品可靠性负责,不需考虑周边可用性制约因素,但是作为服务运营商,需要对服务全栈可用性负责。

3)传统模式,运维人员只是对运维系统的使用者,但是现在除了使用者外,还是运维系统的建设者,由最懂现网业务的SRE主导设计和开发运维工具。

三、SRE角色认知

有别于传统运维工程师,SRE在服务生命周期中扮演以下三个关键角色:

1)现网可用性的守护者。是现网的Owner,守护现网稳定性是SRE的第一职责,围绕现网保障会建立一整套的事前、事中、事后的SLA保障体系和能力。事前:监控告警、变更管理、容量管理、重大保障、应急演练等一系列业务活动。事中:事件管理、warroom、应急恢复能力。事后:故障Postmortem、现网数据分析、通过现网数据持续驱动产品改进。SRE强调全栈、端到端能力,是系统性专家;

2)系统高可用性的设计者。是高可用设计的Owner,联合产品研发围绕SLI/SLO目标设计服务高可用,将高可用软件架构和工程方法应用到产品。SRE作为高可用性设计的专家参与到产品设计和上线活动中,运用系统和软件工程科学解决产品可用性问题;

3)运维软件工程能力的构建者。用软件工程的思维和方法管理现网,通过可信开发构筑系统可用性和自动化能力。打造安全可靠的运维平台,建设自动化运维服务,支撑云服务的高可用落地,提升运维安全和运维效率。持续关注业务和技术发展,引入并采用业界新软件技术,引导系统优化演进,围绕运维业务目标,构筑运维领域技术竞争力。

四、SRE素质能力要求

相对传统运维,SRE需要既懂开发,又懂运维,能端到端参与产品研发生命周期全过程,围绕高可用和自动化建立四大关键能力。

1)编码能力是SRE的基本技能要求,强调软件和系统工程能力;

2)具备“软件工程”思维,要有站点和服务高可用设计能力,同时将高可用架构和软件工程方法应用到产品研发过程;

3)有能力进行自动化研发,用自动化软件完成运维和系统高可用性工作;

4)SRE要有SLI/SLO体系化设计能力,通过SLO将服务可用性显性化度量。

同时,SRE要将现网优秀实践经验固化到流程规范中,形成一套可复制的标准化运维体系。

 

点击关注,第一时间了解华为云新鲜技术~

SRE,了解一下?35+岁程序员新选择的更多相关文章

  1. 转一篇100offer的采访~35岁程序员是一种什么状态

    随着互联网的高速发展变革,大龄恐惧症越来越多地在技术圈被人讨论.很多程序员在工作5-10年以后,都会开始思考5年.10年甚至更久以后的自己,会是怎样一种生活工作状态,以及是否会被时代抛弃. 特别是全民 ...

  2. 30岁程序员的选择,一线OR二线?

    作为一个30刚出头的IT行业从业者,先介绍下我自己的情况.虽然不具有代表性,但是也可以作为一个参考.本人08年本科毕业于一所还算不错的211大学计算机专业(04年去的时候综合排名38,毕业走时排名45 ...

  3. 30岁程序员的焦虑 Anxiety of 30-year-old Programmers

    还有四个月,我就30周岁了.圈里都在传30岁程序员的焦虑,我也焦虑.身边的朋友,除了已经上岸的一部分,说不焦虑的,几乎找不到. 我们不妨认真地来聊一下这个话题:30岁,程序员,焦虑. 首先,什么是焦虑 ...

  4. 老菜鸟致青春,程序员应该选择java 还是 c#-

    致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的, ...

  5. Java程序员如何选择未来的职业路线

    一.程序员的特性 技术出身的职场人特性很明显,与做市场.业务出身的职场人区别尤其明显.IT行业中常见的一些职场角色:老板.项目经理.产品经理.需求分析师.设计师.开发工程师.运维工程师等.开发工程师具 ...

  6. 24岁程序员, 一个人撑起App开发项目

    "疲惫吾心,怎样躲藏! 四处荒芜,怎话忧伤?"临近中秋,看到艾瑞斯的QQ签名,无尽的伤感.这个年仅24的青年.连续3年没有回家了,近期一个月总是失眠,没有家人的陪伴,就连女朋友都没 ...

  7. 程序员"青春饭"问题之我见

      程序员"青春饭"问题之我见 声明:转载请注明出处.http://www.cnblogs.com/hzg1981/ 1. 问题描述 问题1: 什么是程序员? 在本文中程序员的定义 ...

  8. 【转】程序员"青春饭"问题之我见

    1. 问题描述问题1: 什么是程序员?在本文中程序员的定义为: 拥有编程技能,在IT.互联网公司打工的IT从业人员.程序员与很多行业最大的不同是该行业的形成时间短:1954年第一台计算机才诞生,而中医 ...

  9. 为什么说每个程序员都应该刷几道LeetCode?

    2015年即将过去,最近在回顾和总结过去一年的工作经历,发现自己并不能算是一名合格的程序员. Google某前员工Lucida在文章<白板编程访谈——Why,What,How>当中写道: ...

随机推荐

  1. LC-202

    编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和. 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 ...

  2. Java基础之浅谈集合

    Java基础知识.关于List.Set.Map接口的了解,以及ArrayList.LinkedList.HashSet.TreeSet.HashMap.TreeMap...

  3. 论文解读(S^3-CL)《Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  4. Codeforces Round #754 (Div. 2), problem: (A) A.M. Deviation泪目 万万没想到狂wa是因为这

    Problem - A - Codeforces 题目 题意很简单每次操作可以使得a1 a2  a3任意两个数分别+1  -1 求最后使得a+c-2b绝对值的最小值 BUG就是最后忽略了-2和2这一点 ...

  5. SpringBoot 三层架构 Controller、Service、Dao作用和关系详解

    首先创建一个springboot项目. model层 model层也叫pojo层或者entity层,个人比较喜欢pojo层. 一般数据库的一张表对应一个pojo层,并且表中所有字段都在pojo层都一一 ...

  6. python学习-Day38-HTML

    目录 前端 简介 什么是前端 什么是后端 前端特点 前端主要技术: 前端相关技能 关于 HTTP 的知识在这里 HTML 什么是HTML HTML 实例 实例解析 HTML 标签 HTML 元素 HT ...

  7. Linux系统安装Python3环境

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 本文基于如下Linux系统版本: 1.默认情况下,Lin ...

  8. Python-100-Days-master

    跟着python100学习一下 100以内的素数 # 输出100以内的所有素数 # 想法:从1到100遍历,假设得到了i=17,那么此时从1到9遍历,如果找到了一个数用17能除尽则跳出循环 # 如果找 ...

  9. JS 的 new 是个啥?

    JS 的 new 是个啥? 本文写于 2019 年 11 月 25 日 new关键字在很多语言里面,总是用于把类实例化,可是 JS 之前就没有"类"这个概念呀. 那 JS 的new ...

  10. How to fetch data with React Hooks

    Where can I make API call with hooks in react? Async useEffect is pretty much unreadable How to fetc ...