SRE的完全体:左手效率,右手容灾

news2024/12/21 21:44:13

什么是SRE

共和国的75周岁之际,重温了我心中的经典电视剧《人间正道是沧桑》和小说《远东朝鲜战争》,在看到剧中杨立青在东北战场被任命为“特别部部长”的情节,以及志愿军总后勤部的成立过程及洪学智将军后勤工作的历程时,突然有了同频共鸣——这不就是红色版的“SRE”嘛。

剧中杨立青面对的情形是我方实力爆发式增长,东北战场敌我实力呈现逆转趋势,作战方式也由游击战转向了大兵团运动战,但却接连出现作战失利,主要原因是广大将士还停留在过去的“野路子”游击战视野中,在新的大兵团作战体系中,以往无往不利的游击战思路成了胜利的绊脚石,解决痛点成为了迫在眉睫的事情。——这像不像过去互联网十年的许多公司的样子。

杨立青用了短短数月,梳理解决了铁路运输问题、各部门的职责划分问题、战争资源(主要是大炮分配和炮弹制造)问题,将现有资源进行了盘活,彻底激活了东北解放军的战斗力。而在数年后的朝鲜战场,面对存在代差的联合国军,脆弱的补给线成了志愿军的致命软肋,临危受命的洪学智将军以补给线为基线,从源头到战场,统筹包括兵工厂、铁路、公路、防空、工程等所有资源,甚至对各部队的武器进行了重新洗牌(志愿军各部队的武器型号五花八门,把正确的弹药送到正确的位置成了几乎不可能的事情,志愿军后期对武器进行了重新分配,某一类口径的武器只装备某些部队,只需要知道部队番号就能知道配送什么弹药),从效率到保障,建立了一只可靠持续的后勤补给线。

历史与现实交汇,关于什么是SRE的问题,共和国的先驱们已经给了一个标准答案。

如何做好SRE

有些人说SRE是懂开发的运维,有些人说SRE是会运维的开发,但不可否认的是,SRE的诞生来自于程序员与运维在业务爆炸增长中激化的对立矛盾(程序员是在做加法,运维是在做减法),我的认知中,SRE不是程序员或运维的变种,而是一种全新的“兵种”,程序员是执矛兵(代表效率),运维是执盾兵(代表容灾),SRE就是左手执矛,右手执盾的斯巴达勇士。

做一个社交达人

我的职业领路人有过一句话——“键盘敲的啪啪响的不是好运维”,在他的影响下,我的职业生涯几乎一半的时间用来去各个部门交朋友,所以我的工位经常是无人状态,但工作效率和质量却有增无减,通过与业务部门频繁的交互,我总能第一时间获取最原始的需求,以及察觉最真实的风险。这种觉悟跟能力也成为了我后来转为SRE的关键。

抛弃原有思维

SRE的主要来源是资深程序员和资深运维,但因职业特性,程序员和运维通常都更喜欢跟代码和机器打交道,在以往的职业中,这或许不是缺点,但在SRE中,这无疑成了缺点。
我就职过的A公司的运维团队就是典型的程序员风格,迷信代码的力量,对需求和问题统统能用代码解决就用代码解决,我入职后面对就是被扔在角落吃灰的自研运维管理系统、臃肿且脆弱的发布系统、问题频出的线上服务,自研运维平台系统是一味模仿外面,追求大而全,却忽略了内部实际需求,导致几乎无人愿意使用;而发布系统在一开始就对所有个性化需求来者不拒,导致程序逻辑十分复杂,一个小组件故障往往会导致整个系统不可用,后期一个很小的需求,都需要费很大的力气才能够解决;而线上服务不稳定的根本原因竟是为了达成成本优化,不是去做容量规划,而是另辟蹊径选择超发使用资源,导致经常出现资源争抢问题引起服务漂移重启。

我就职过的B公司则是典型的传统运维风格,领地意识比较严重,只要自己不出问题就行,经常被重复的事务淹没,缺少创造性,在庞大的增量服务和复杂的架构面前,很难满足业务要求的效率。

在A公司和B公司我都进行了不同方向的针对性建设,并取得了不小的成功,但这并不是简单的纠正那么简单,而是需要不拘泥于原有思维定式,已更加全局的思维去看待事务,才能够发现痛点,解决问题。

学会掌控风险

不同于传统运维中以牺牲变化而降低风险,SRE的职责在于要在变化中掌控风险,这需要SRE拥有更加全面的知识体系和更广阔的视野,SRE既要主动拥抱新技术,更要善于发掘新技术在已有技术架构中的应用,以及洞察并消除潜在风险,在容灾的基本盘上去创新。效率只决定成败,但容灾却确定生死。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode讲解篇之740. 删除并获得点数

文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路 首先对于这题我们如果将所有点数装入一个切片f中,该切片f中的i号下标表示所有点数为i的点数之和 那么这题就转换成了打家劫舍这道题,也就是求选择了切片中某个下标的元素后,该…

观察者模式和发布-订阅模式的区别

观察者模式是,当被观察者的数据发生变化时,调用被观察者的 notify 方法,去通知所有观察者执行 update 方法进行更新; 对于发布-订阅模式,首先发布者与订阅者互相并不知道彼此的存在,他们是通过事件中心来进…

Element中el-table组件设置max-height右侧出现空白列的解决方法

之前就出现过这个情况,没理过,因为不影响啥除了不美观...但今天看着实在是难受,怎么都不顺眼(可能是我自己烦躁--) 试了很多网上的方法,都不得行,后面发现了这篇文章,解决了! 感谢! Element中t…

微知-Mellanox 网卡和NVIDIA Bluefield DPU如何备份firmware?

某些场合需要从网卡或者DPU上读取网卡的firmware 备份命令: flint -d 06:00.0 ri 1.bin实操: 注意: 有些网卡不支持到处firmware

工具软件分享:11个免费的 android数据恢复应用程序功能分析

在手机上丢失数据是一个很大的错误。但是,在这种情况下,除了惊慌失措之外,最好开始使用android数据恢复应用程序搜索以查找将其取回的方法。您可以检查手机的备份存储以在Android上进行数据恢复,但是如果数据仍然无处可寻&#xf…

elementui时间选择器time-picker返回值不对的问题

1. 问题 天杀的elementui的time-picker,导致我开发的系统出现了一次生产问题,原因竟然是因为组件库的bug!直接上截图。 如图,正常情况下,选择时间后,想要得到的值理应是当天的时间,如图是当年…

什么是AI网关?AI网关在企业系统中承担什么角色?

AI 大模型的发展正在推动各行业的增长,据有关报告显示:“未来十年内预计年均增长率将达到37.3%,全球企业预计在2027年之前将在AI领域投入8000亿美元"。这一迅猛发展促使许多企业进行战略转型,技术团队也需要调整其构建、运行…

牛客编程初学者入门训练——BC17 缩短二进制

BC17 缩短二进制 描述 我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表…

Spark高级用法-自定义函数

用户可以根据需求自己封装计算的逻辑,对字段数据进行计算 内置函数,是spark提供的对字段操作的方法 ,split(字段) 对字段中的数进行切割,F.sum(字段) 会将该字段下的数据进行求和 实际业务中又能内置函数不满足计算需求&#xff0…

AI如何对产品设计带来更多的可能性?

AI(人工智能)对产品设计带来了广泛而深远的可能性,这些可能性主要体现在以下几个方面 1.创新设计的激发 创意生成:AI能够学习和模仿人类设计师的创作过程,通过深度学习等技术生成全新的、独特的设计概念。这些概念可能源于对大量设计案例的学习和分析&am…

AMD在Advancing AI发布会上发布三大核心硬件产品,挑战英伟达AI芯片市场

美国时间10月10日,AMD在旧金山召开了Advancing AI发布会。 这是老对手英伟达2024 AI Summit 结束后的第三天。与英伟达大会的不同之处在于,英伟达专注于软件方面的更新,而AMD主打“硬”牌。 这一次,他们带来了三款核心硬件产品&…

Python 批量转换 Shapefile 为 GeoJSON

批量转换 Shapefile (.shp) 为 GeoJSON 文件的脚本详解 🗺️🔄 在地理信息系统(GIS)和遥感领域,Shapefile(.shp)格式与GeoJSON格式是两种常用的数据格式。Shapefile 作为矢量数据的标准格式之一…

使用scss生成旋转圆圈

图片 html代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

直播相关04-录制麦克风声音, 通过编程录音

一 通过编程录音 开发录音功能的主要步骤是&#xff1a; 注册设备获取输入格式对象打开设备采集数据释放资源 需要用到的FFmpeg库有4个。 extern "C" { // 设备相关API #include <libavdevice/avdevice.h> // 格式相关API&#xff0c;也就是说&#xff0c;win…

Mysql(2)—SQL语法详解(通俗易懂)

一、关于SQL 1.1 简介 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发&#xff0c;旨在处理关系数据模型…

Python基础常见面试题总结

文章目录 1.深拷贝与浅拷贝2.迭代器3.生成器4.装饰器5.进程、线程、协程6.高阶函数7.魔法方法8.python垃圾回收机制 1.深拷贝与浅拷贝 浅拷贝是对地址的拷贝&#xff0c;只拷贝第一层&#xff0c;第一层改变的时候不会改变&#xff0c;内层改变才会改变。深拷贝是对值的拷贝&a…

【第十六周】回顾线性回归与逻辑回归以及它们的详细推导过程

目录 摘要Abstract1.线性回归1.1.一元线性回归1.1.1.函数凹凸性判断 1.2.多元线性回归1.3.进一步理解梯度下降法 2.逻辑回归2.1.信息论角度推导交叉熵损失函数2.2.概率论角度推导交叉熵损失函数 3.额外阅读&#xff1a;Label Smoothing3.1.One-hot 和 Label Smoothing 的优缺点…

解决报错:Invalid number of channels [PaErrorCode -9998]

继昨天重装了树莓派系统后&#xff0c;今天开始重新安装语音助手。在测试录音代码时遇到了报错“Invalid number of channels [PaErrorCode -9998]”&#xff0c;这是怎么回事&#xff1f; 有人说这是因为pyaudio没有安装成功造成的。于是&#xff0c;我pip3 install –upgrad…

利用python创建接口

目录 1. 创建一个简单的接口1.1 具体过程1.2 代码解读1. **导入 Flask**2. **创建 Flask 应用**3. **定义一个路由**4. **运行应用** 1.3 遗留问题 2. 创建一个复杂接口2.2 具体过程 1. 创建一个简单的接口 1.1 具体过程 from flask import Flaskapp Flask(__name__)app.rou…

pip安装指定版本的tensorflow

安装CPU版本&#xff1a;(以2.9.0版本为例) pip install tensorflow2.9.0安装GPU版本&#xff1a;(以2.9.0版本为例) pip install tensorflow-gpu2.9.0若下载缓慢&#xff0c;使用阿里国内镜像源加速下载&#xff1a;(以2.9.0版本为例) pip install -i https://mirrors.aliy…