一个DevOps/SRE/运维的2022年碎碎语

news2024/11/14 21:12:46

02f704e43a6d1761353e424e7881dfd5.jpeg

人们常说:情商高的人会说话。实际上他们的意思是对人说人话,对鬼说鬼话,这样的人才有前途。

很长时间里,我一直以为我无法理解他们为什么要推崇心口不一。后来,我知道了。我不是不理解。我只是不服气。

这样的”不服气“,让我这样的人,在这样的环境下,永远不会坐到更高的位置。

一个同事在2022年中用这样的话评价我:你看,你们是同一个时间进来公司的,别人做部长了,你还在这。

说实在,有一那么一瞬间,我有一丝不舒服。但是,我立马意识到我这是不对的。这样的评价,不值得我花一秒钟去理会。每个人有每个人的活法。在大公司,想往上爬,不就那些方法吗?

所以,2022年我还是坚持着一心搞技术,不会花半点心思在”向上管理“上。

说到技术,这一年有了长足的发展。终于有机会把Everything as Code落地了。说不上成功,但是,已经证明这个方法论是可行的。Everything as Code的核心就是:

  1. 尽量将软件工程所有的问题转移到代码构建阶段解决;

  2. 版本化及自动化软件工程中所有的依赖,以尽可能减少软件工程中的复杂性的不确定性。

这个核心就像一个数字公式,它在数学家内行中,看起来是完美的,但是在外行看起来就是天书。而且,外行也不会花一秒钟去思考这个公式是否正确。

Everything as Code在实施初期阶段,是没有”界面“的。而软件管理人员里的大多数是不写代码的,在他们看来,没有“界面”,就拿不出手,他们就无法给他们的上级汇报。

所以,即使实施Everything as Code,你还是需要做一些界面的。的确,虽然理论是正确的,但是你总要有一些证明你是正确的数据展示出来。

这一年,还有另一个感触:软件团队效率低的很大原因也许是开发方式,并不是什么技术框架。

一行行代码打断点的开发方式的普遍程度,让我无言以对。这也就不难理解了,这些开发人员经常要看着数据库里的数据才能写代码了:执行一行代码,然后看看数据库的某个表里有没有数据。

这一年的后半年,我已经心累了,不再花心思告诉他们这个世界还有另一种开发方式了。他们效率低下,多加班就好了,和我有什么关系呢?

反过来,开发人员可能觉得,我才是效率低下的原因:

  1. 提交一行配置,都要拉分支,然后提Merge Request。Merge Request还提一堆问题;

  2. 每个分支还不能停留超过两天时间;

  3. 不提供开发环境;

  4. 各种权限控制得非常死,申请一个DB的权限,还只能申请三个月;

  5. 要执行个SQL,还要将SQL提交到代码仓库里进行Code Review。

这让我想起运维领域的一个普遍现象:只要出几个事故,人们才会知道你的存在,”救火“的才是英雄。

这在我刚来公司时经历的那次三天两夜地事故后,我就知道了这个道理。

但是,出于我的责任心,2022年我还是坚持以上原则。因为我知道这些原则是软件团队的底线。

当然,也因为我知道,当出现事故后,他们可能也无法总结出这些原则。

这种SRE的痛苦,让我在2022年很辛苦。

可是,以上那些,是一个SRE应该做的吗?在国内这个大环境里,SRE不就是那种出了事故,然后进行”擦屁股“的吗?你还管他们提交代码的方式?

是的,SRE在国内的大环境的里,就是给别人擦屁股的。可是,不巧的是,我刚好是那种讨厌给别人擦屁股的SRE。

我已经想好了如何应对这种痛苦。那就是将所有的告警通知分摊到每一个开发人员。让他们去处理他们自己的屁股。当然,我也自己擦自己的屁股。

如果我真这样做了,恐怕,我在团队里又多了一项不受欢迎的决定:将告警通知分摊到每一个开发人员。

我前段时间特意总结了这三年专职做运维后,做过的不受欢迎的决定是什么:

  1. 2020年上K8s:开发人员需要花时间学习K8s概念知识,大多数人觉得开发成本高了;

  2. 2020年推行Code Review:开发人员的代码只有经过Code Review才能合到master;

  3. 2020年提出Feature toggle代替特性分支开发:开发人员一开始无法理解后来理解了。但是一些大厂来的开发人员,还是无法理解;

  4. 2020年推行日志结构化:开发人员被强制写日志结构化的代码;

  5. 2020年开始实施多仓库的Everything as Code :开发人员无法理解以提交代码方式来部署应用的运维方式;

  6. 2022年实施单仓库的Everything as Code:开发人员无法理解这种操作,觉得浪费他们时间;

  7. 2022年将所有的配置都转换成Jsonnet:开发人员觉得学习Jsonnet拖慢了他们的开发速度(然后Jsonnet的语法只有一张A4纸大小)。

看到这些,我也佩服我自己起来了。放在2023,我同样会觉得这些决定是明智的。

2022年的小结就写到这吧。希望读者朋友2023年顺利。

往期推荐:

  • 我们不是研发,不会天天去关注代码

  • SRE认知升级之可用性的本质

  • 个人开发习惯与团队效率之间的关系

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

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

相关文章

box-shadow 高阶玩法:纯 CSS 画蒙娜丽莎和粒子星空

想必写过 CSS 的同学都用过 box-shadow,它可以给元素设置阴影,增加立体效果。 比如说这样: 但它能做的可不只是阴影,还可以用来做出很多有趣的效果: 比如画蒙娜丽莎: 画星空: 这些效果都是 bo…

尚医通-医院查询接口-上传科室接口(十九)

目录 (1)医院查询接口-功能实现 (2)上传科室接口-功能实现 (1)医院查询接口-功能实现 接口文档: 4.4.查询医院 医院信息 4.4.1.提交地址 http://localhost/api/hosp/hospital/show 在ApiC…

《东晋门阀政治》

《东晋门阀政治》 关于作者 田余庆,北京大学历史系教授,国务院古 籍整理出版规划小组成员,是魏晋南北朝 政治史专家。他在学术界拥有重要的地位,参加编著的《中国史纲要》曾获国家 教委特等奖。著有《秦汉魏晋史探微》 《拓跋史…

ubuntu 22.04上vim-plug插件管理器,相关插件与ROS2的安装

前言 最近,新配置了一版虚拟机,因为学校已经配置好环境的虚拟机忘了带回来,我还想系统的学习一下ROS,并将其用于机械臂的控制,因此用了新的方式配置了vim,并将树莓派raspberry buster系统配置上了ROS1的环…

Flink系列Table API和SQL之:滚动窗口、滑动窗口、累计窗口、分组聚合

Flink系列Table API和SQL之:窗口一、窗口(Window)二、分组窗口(Group Window)三、窗口表值函数(Windowing TVFs)1.滚动窗口(TUMBLE)2.滑动窗口(HOP)3.累计窗口(CUMULATE)四、分组聚合五、分组聚合实现代码六、分组窗口聚合代码实现七、窗口聚合:滚动窗口…

【SCL】博图SCL应用之音乐喷泉

使用Scl语言编写博图应用:音乐喷泉 文章目录 目录 一、音乐喷泉 1.控制要求 2.I/O分配 3.编写程序 4.效果和完整代码 二、装配流水线模拟控制(练习) 1.控制要求 2.场景 前言 承接上文,这里写一下上一篇的练习题 音乐喷泉应用案…

使用Typora+PicGo+SM.MS实现本地博客图片自动上传

使用TyporaPicGoSM.MS实现本地博客图片自动上传 Typora:一款Markdown 编辑器 PicGo: 一个用于快速上传图片并获取图片 URL 链接的工具. SM.MS: 一个图床网站,注册后有5G免费空间 为什么要让本地图片自动上传 对于一个随时随刻都有可能在文章中贴代码的计…

快来领取你的JavaScript正则表达式速查表

如果我们想对字符串进行相关(增、删、改、查、检索)操作,就可以用接下来的正则表达式实现 什么是正则表达式 正则表达式是用于匹配字符串中字符组合的模式正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本…

家装中,你最后悔的事是什么?上海极家装修公司简介!

家装中,你最后悔的事是什么?上海极家装修公司简介!接触过很多业主,就没有不后悔的!至于原因,因为总会出现各种“考虑不周”,有些真的是失之毫厘差之千里! 下面上海极家装修公司简介!…

Cadence每日一学_12 | 使用 Padstack Editor 制作贴片焊盘和通孔焊盘

最近在学习小马哥的Cadence课程,该系列课程为学习笔记:使用Cadence Allegro绘制小马哥DragonFly四轴飞行器(STM32F4主控)PCB四层板教程。 文章目录一、获取焊盘封装尺寸的途径二、Padstack Editor三、绘制贴片焊盘(以电阻焊盘为例&#xff09…

Odoo 16 企业版手册 - 库存管理之产品类别

产品类别 您可以使用Odoo 库存模块中提供的产品类别功能对产品进行分类。为了执行各种产品操作,必须在Odoo中定义产品类别。Odoo将使产品更容易找到,因为它允许您按产品类别进行筛选。用户可以从库存模块的「配置」菜单访问「产品类别」窗口,…

【Python】sklearn机器学习之Birch聚类算法

文章目录基本原理sklearn调用基本原理 BIRCH,即Balanced Iterative Reducing and Clustering Using Hierarchies,利用分层的平衡迭代规约和聚类,特点是扫描一次数据就可以实现聚类, 而根据经验,一般这种一遍成功的算…

02 elf 的 binary 解析

前言 需求来自于 linux binary 的执行分析, 以及一些反编译工具的实现 比如 readelf, hopper disassemble 什么的 主要的目的是 更加详细了解 elf 的文件格式 为 后续的一些 理解做准备 elf 解析 elf 文件主要分为 四个部分 elfHeader, programHeaders, segments, …

2022年度盘点|聚焦运维服务,云智慧的高光时刻

回首2022,从IE 浏览器退役到AIGC 火遍全球,每一次科技的兴衰演进都打破着技术的新边界。与此同时,随着各行业数据规模爆发式地增长,云智慧作为国内全栈智能运维解决方案服务商,企业数字化地加速转型也为其带来了更多的…

Hibernate validator注解及Spring Boot自定义Hibernate Validator注解校验(超级详细)

一 Hibernate validator是什么 验证数据是贯穿整个应用层(从表示层到持久层)的常见任务。通常在每一层中都需要实现相同的验证逻辑,这样既耗时又容易出错。为了避免这些验证的重复,开发认原经常将验证逻辑直接捆绑到Model域中&…

1.9 基础综合案例|pyechart第三方包

文章目录json数据格式pyecharts模块介绍pyecharts快速入门数据处理这里使用比较经典的pyechart的第三方包。json数据格式 json是一种轻量级的数据交互形式。可以按照json指定的格式去组织和封装数据。或者这么说本质上json就是一个带有特定格式的字符串。 主要功能&#xff1…

【金猿案例展】正官庄——全渠道会员数据治理驱动商业增长

‍珍岛集团案例本项目案例由珍岛集团投递并参与“数据猿年度金猿策划活动——《2022大数据产业年度创新服务企业》榜单/奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业随着商业品牌的全渠道裂变式发展,对DTC直营会员为中心的综合数据运营提出了新的…

【自学Java】Java基本数据类型

Java基本数据类型 Java基本数据类型 Java 基本数据类型如下表: 序号数据类型大小/位可表示的数据范围默认值1long(长整数)64-9223372036854775808~92233720368547758070L2int(整数)32-2147483648&#x…

设置 MYSQL 数据库编码为 utf8mb4

utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,java程序中将报SQL异常: java.sql.SQLException: Inc…

带音频播放的MPlayer播放器在ARM上的移植笔记

前言 mplayer想要播放带音频的视频文件,需要依赖alsa-lib和zlib,所以交叉编译mplayer前还需要先编译alsa-lib和zlib 一、alsa-lib alsa-lib 是 ALSA 提供的一套 Linux 下的 C 语言函数库,需要将 alsa-lib 移植到板卡上,这样基于…