云和运维(SRE)的半生缘-深读实证02
这个标题不算太夸张,云计算和很多IT岗位都有缘,但是和运维(SRE)岗位的缘分最深。
“深读实证”系列文章都会结合一些外部事件,点明分析《云计算行业进阶指南》书中的内容。本次分享介绍了下列内容:
我以运维/SRE的身份而自豪,感谢诸位运维大佬把我当做自己人。
运维是最主要的云用户,天然了解云产品,也最多接触云厂商。
最值钱的云产品都是资源型云产品,而运维是最了解IT资源的工程师。
运维交付的就是业务承载能力,这种心态更适合做企业技术服务。
云计算重度改变了甲方的运维工作,比如DevOPS和多云冗余。
结束语和本次活动宣传海报。
注意:本文的运维指的精通IT技术的业务运维,我个人更习惯将此岗位叫做“运维”,而SRE-elite的朋友们更习惯叫SRE。那些只负责盯监控、打网线、上架设备的“运维”,我尊重每一个劳动者,但这些工作和本文没有任何关系。
1. 老运维从云端回家看看
我经常说自己天生适合做云,其中一多半原因是我做运维(SRE)时的技术水平还不错。在云产品规划设计、云用户促销推广、云资源调度分配等等工作,都需要用到我做运维积累的知识。
很高兴接到SRE-elite的邀请,我将参加6月22日小米科技园举办的“SRE精英联盟北京站”活动,能够现场学习《SRE实践白皮书》,也期待能认识一些参会的新朋友。这本《SRE实践白皮书》非常硬核,全部都是体系化的SRE工作标准。
SRE-elite确实是个“精英联盟”,包含了成哥、书记、宇聪、黄亮、亚丹、石鹏等运维高手。这几位高手都愿意和我商业互吹,主要是因为我至今能够胜任SRE技术专家工作,我和他们是“自己人”,只是我的志向是做云计算而已。
本次开会时会介绍,《SRE实践白皮书》更新到了到1.0.3版。这本白皮书介绍都是最硬核的运维工作,深入介绍了“可靠性架构设计”“研发保障”“入网控制”“发布管理”“故障应急”等等工作流程。
我上篇文章刚解释,我写的“进阶指南”不会包含实操过程,然后我看了看SRE白皮书……嚯……这本白皮书比我的书还要硬核,全部介绍的是“这一流程有哪些步骤,这些步骤要做到什么程度”。
这本白皮书是一座无言的丰碑,它不会讨好读者,但读者想做好SRE工作,就要一板一眼的执行操作步骤。这些操作步骤的关键词已经足够清晰,很方便读者自行搜集实操资料;但如果读者投机取巧想想省几个步骤,那就是自己在给自己挖坑……。
为保障阅读体验,活动相关海报放在文末了。
2. 运维是云计算的主要用户
我的书《云计算行业进阶指南》中出现了50多次“运维”这个词。因为运维是最主要的云用户,天然了解云产品,和云厂商的接触也对最多。
我对云计算的定义,云产品的操作员必须是计算机工程师。这个工程师群体包括运维、架构、后台开发。抛开全能个人开发者来看,运维的人数远比其他工程师要多得多。
运维天然了解云产品,这是因为IaaS云产品的设计目标就是“模拟基础设施”,PaaS产品的工作就是“模拟中后台服务”。研发不会跟运维抢基础设施的工作,中后台服务从搭建到维护到监控到备份也是SRE运维的工作范畴。
在甲方技术团队中,运维和云厂商打交道的经验最多,既要面对云销售和云售前套消息,还要找云售后投诉,还要面对云产研来访谈和忽悠,就算是PaaS云也要做好监控、多云冗余和对账。因为总和云厂商打交道,在日常交流中,运维工程师也最容易发现“云厂商养了一堆草包,彼可取而代”的事实。
下图选自本书第13页,在第一章就有连续多段内容都提到了“运维”。
3. 运维天生更理解资源
要做好运维工作,必须深入了解软硬件IT资源的质量特性和承载能力,而云厂商能带来大额营收的云产品只能是资源型云产品。这种天然理解资源的技能底蕴,让运维工程师转岗到云厂商时,有充分的择业自由空间。
只有资源型云产品才能为云厂商贡献大额营收,无论是制作还是使用资源型云产品,都要掌握理解IT资源的特性、用量和状态。《SRE实践白皮书》中高频率用到了“资源”“群集”“平台”“用量”“成本”“账单”等等IT资源相关的技术用语,我也在向SRE-elite的大佬们提意见,在后续版本的白皮书中,很可能会加入专门的资源定义章节。
当站在甲方客户、云销售、云售前、云售后这些产品外部视角工作时,我们需要评估云产品的资源质量,优先使用优质或廉价资源,并监控用量余量等信息,这些信息也会广泛的应用到云厂商商务PK和用户保障工作中。
当站在产研内部视角看问题时,“掌握理解IT资源”这个技能的价值就更大了。首先云产品线也需要资深SRE工程师;产品经理需要掌握资源相关技能,才能完成产品设计、销售、实施的一系列工作;我比较看重的资源运营岗位,那更是直接写明了优先招聘运维工程师。
请注意,运维跳槽到云厂商有广泛的选择空间,并不代表我推荐各位运维去所有岗位都实验一遍,云职场没那么宽容,每个人的职场选择都要具体问题具体分析,比如我专门写过《工程师为什么不转销售》。
下图选自书稿的16.1章节,276页:
4. 运维思维更适合做技术服务
我写过多篇强调云厂商要做好技术服务的文章,本文是谈运维的,所以换个角度解释技术服务。
云厂商给客户吹嘘“我能提供无限服务”时,根本不是服务思维,而是产品经理对未知领域随手画大饼的习惯;云厂商实际执行过程中萎缩成“我只提供产品和资源”,这是标准的研发心态,只保障自己100%能保障的工作。相比之下,运维向公司承诺的是“保证平稳承载业务”,这种兜底心态和积极的工作范围更适合做好企业服务。
我的书中多次强调,“云产品、云资源、云服务”,这三个名词在很多语境下可以无缝互换。但是,很多云从业者只尊重云产品,不了解云资源,对云服务那是肆意随性的画大饼但永不兑现,就是因为他们对服务没有任何概念。但运维出身的朋友,对服务承诺都有天生的敬畏之心。
企业客户最烦云厂商的并不是虚假承诺,而是云厂商认栽摆烂。比如,云厂商出现意外后,产研销售很容易做好赔偿、丢单甚至失业的准备,然后蹲在路边等事态进展。这几个角色的工作习惯就是“只有认栽,没有兜底”,而运维的工作心态是“认栽没意义,必须本人兜底”。
除了工作心态之外,运维跳槽到云厂商做服务,还有个天然的优势;云厂商的服务对象也是运维,老熟人不仅仅是产品技术的沟通效率高,对很多职场潜台词也是心意相通的。我在书中第290页对这种默契做了明确的介绍,下图虽然提到都是“技术服务专家”,但该岗位最佳的人力来源就是甲方运维。
5. 云计算改变甲方运维的工作
要跳槽到云厂毕竟是个长期规划,云计算也深刻影响着运维的日常工作。大家读我的书能理解很多云产品的资源秉性,也知道如何更顺畅的和云厂商打交道。云产品是各位运维开展工作必须依赖的资源,基于这些资源,我们才能做好DevOPS、多云冗余等务实技术。
我在云主机的产品介绍中就明确解释了,只有软件定义的虚拟硬件,外加弹性极大的公共资源池,运维工程师才能够施展开DevOPS技术。如果是固定锁死的资源池、缓慢变更的真实硬件,SRE能做的资源调度工作会极大受限。
各位SRE不要盲目信任单云可靠性,多云冗余是必须做的技术选型;《SRE实践白皮书》制订过程中也有对“多云”“混合云”的重度考量。云厂商出不出故障,不影响运维要为业务稳定性兜底,跨云弹性部署,是运维圈最流行的技术。
云厂商面向客户确实有很多不实宣传,但客户也要适度理解一下,供应商老实坦白的话,在你们眼里就变成了土鳖和摆烂。本书中对很多云产品、云岗位进行了祛魅揭露,让大家能减少被不实宣传误导的概率,这也是一个重要的帮助。
6. 结束语和活动海报
我年轻时做运维工程师,做过很多稀奇古怪、毫无价值的“瞎折腾工作”。从事云计算行业以后,那些无聊苦涩的经历,居然都兑现成了工作能力和认知深度。因此我很感谢云计算行业,这让我的折腾变得更充实有意义;当然,我也忘不了运维,因为这些工作折腾都是在强化兜底思维和服务意识,也让我比大部分云从业者更了解资源和技术。
下图是SRE精英联盟北京站的活动海报,时间下周六,地点小米科技园,我也会去现场。我不会尬聊推销图书,但也不会摆谱装高冷,所以我选择在会议茶歇时段,循环播放一段无声视频,有兴趣的朋友可以看看,会议间歇也可以当面聊聊这本书。
相关文章:

云和运维(SRE)的半生缘-深读实证02
这个标题不算太夸张,云计算和很多IT岗位都有缘,但是和运维(SRE)岗位的缘分最深。 “深读实证”系列文章都会结合一些外部事件,点明分析《云计算行业进阶指南》书中的内容。本次分享介绍了下列内容: 我以运维…...

java基础操作5——java自定义获取任意年、月、日的起始和结束时间
在实际项目开发过程中,获取任意时间的起始和结束时间是常用操作,尤其对于统计业务来说,更是必要操作,理解了时间自定义的规律,对于开发人员的效率提升是大有裨益的。 一.获取任意年的起始和结束时间 1.获取任意年的起…...

【Java04】引用变量数组初始化的内存机制
引用类型数组指向的元素也是引用。其本质是: 由一个在栈上的引用数组变量指向一块堆内存;这块堆内存里存储的元素是引用,又分别指向其他堆内存。 class Person // Person是一个自定义的类 {public int age;puiblic double height;public vo…...

基于JSP的足球赛会管理系统
你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 个人中心 球队介绍…...

博客摘录「 AXI三种接口及DMA DDR XDMA介绍(应用于vivado中的ip调用)」2024年6月10日
关键要点: 1.AXI Stream经过协议转换可使用AXI_FULL(PS与PL间的接口,如GP、HP和ACP)。 2.传输数据类里就涉及一个握手协议,即在主从双方数据通信前,有一个握手的过程。基本内容:数据的传输源会…...

Bigtable: A Distributed Storage System for Structured Data
2003年USENIX,出自谷歌,开启分布式大数据时代的三篇论文之一,底层依赖 GFS 存储,上层供 MapReduce 查询使用 Abstract 是一种分布式结构化数据存储管理系统,存储量级是PB级别。存储的数据类型和延时要求差异都很大。…...
RAG下的prompt编写探索
针对特定领域的回答,编写抽象的prompt需要在细节和灵活性之间找到平衡。我们需要一个既能涵盖普遍步骤又能适应不同问题的框架。以下是如何在这种情况下编写抽象prompt的方法,以及适用于各种技术领域的通用策略。 一、编写抽象Prompt的通用策略 定义用户问题和背景信息: 明…...

【计算机组成原理】指令系统考研真题详解之拓展操作码!
计算机组成原理:指令系统概述与深入解析 1. 指令系统概述 计算机软硬件界面的概念 在计算机组成原理中,指令系统扮演着至关重要的角色,它是计算机软硬件界面的核心。软件通过指令与硬件进行通信,硬件根据指令执行相应的操作。指…...

北航第六次数据结构与程序设计作业(查找与排序)选填题
一、 顺序查找的平均查找长度ASL(1 2 …… n)/ n (n 1)/ 2 二、 这半查找法的平均查找次数和判定树的深度有关系。若查找一个不存在的元素,说明进行了深度次比较。 注意,判定树不是满二叉树,因此深…...
Optional详解和常用API
目录 一、Optional简介 二、构建Optional对象三种方式 2.1 Optional.of(value) 2.1.1 使用案例 2.2 Optional.ofNullable(value) 2.2.1 使用案例 2.3 Optional.empty() 2.3.1 使用案例 三、Optional常用的api解析和使用案例 3.1 isPresent 3.1.1 使用案例 3.2 ifPrese…...

Unity 3D 物体的Inspector面板
1、Transform:位置、旋转、大小 2、Mesh Filter:物体的形状 3、Mesh Renderer:物体渲染(物体的衣服) 4、Collider:碰撞体...

闪烁与常亮的符号状态判断机制(状态机算法)
背景说明 在视觉项目中,经常要判断目标的状态,例如:符号的不同频率闪烁、常亮等。然而常规的视觉算法例如YOLO,仅仅只能获取当前帧是否存在该符号,而无法对于符号状态进行判断,然而重新写一个基于时序的卷积…...

Hyper-V如何将文件复制到虚拟机?教您3个简单的方法!
需要将文件复制到虚拟机! “大家好,有谁知道Hyper-V怎么将文件复制到虚拟机吗?我有一些文件,想要从主机中复制进虚拟机中,但是我不知道该怎么操作,有谁可以帮帮我吗?谢谢。” Hyper-V虚拟机可…...

Vue主要使用-03
组件通讯 组件通讯也是我们需要了解的,在我们的实际开发中,我们使用的非常多,比如父组件内的数据传入到子组件,子组件的数据传入到父组件,什么是父组件什么是子组件?父组件内包含着我们的子组件,我们的父组件可以有多个子组件,父组件就是我们使用子组件拼接的。 …...

LoadBalance客户端负载均衡
1. 前言Ribbon Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时࿰…...

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描…...

逢3必过报数游戏-第13届蓝桥杯省赛Python真题精选
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第84讲。 逢3必过报数游戏&…...

解决Qt的multimedia库在clion中依赖库补全的问题
解决Qt的multimedia库在clion中使用报错的问题 在clion中,使用Qt的multimedia库时会报如下错误: defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" 我猜测出现这个错误的原因很可能是因为…...

图像处理:Python使用OpenCV进行图像锐化 (非锐化掩模、拉普拉斯滤波器)
文章目录 非锐化掩模 (Unsharp Masking)拉普拉斯滤波器 (Laplacian Filter)效果对比总结 在图像处理中,锐化操作用于增强图像的边缘和细节,使图像看起来更清晰。常见的图像锐化方法包括非锐化掩模(Unsharp Masking)和拉普拉斯滤波…...
windows用脚本编译qt的项目
mingw的 cd build ::设置jom环境 set PATHC:\Qt\Qt5.15.2\Tools\mingw810_32\bin;%PATH% set PATHC:\Qt\Qt5.15.2\5.15.2\mingw81_32\bin;%PATH% ::设置Qt环境 amd64_x86 或者 amd64 ::CALL "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxilia…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...