通过阿里云宕机这件事,来看国内程序员的畸形职场文化

1、阿里云宕机始末

阿里在变更这块有三板斧,可监控、可灰度,可回滚。另外他们内部非常喜欢用这类简短的语句传递意图。

听起来非常简单,就目前大多数互联网公司基础设施都会支持这3项,只是支持的程度不太一样,普通的监控是监控,可观测性也是监控,但是区别相差甚远。从表面上来看,很多系统号称有监控,简单而基础的有主机负载、网络流量、磁盘IO这样粗放型的监控。这种没有深入到业务内部的监控,不能说没有监控,但通过这种监控自动发现问题和快速定位故障的程度不同。

可灰度和可回滚通常会结合起来使用,常用的是金丝雀、蓝绿发布,凡是刚刚上线功能,先灰度一部分流量上去试试,如果完全符合预期,那么按照正常节凑,全部发布上去。如果出现问题,一键回滚,造成的影响非常有限。

按照上述的节凑进行发布看似无懈可击,监控可以发现问题,通过灰度发布降低问题影响范围,出现问题回滚到上一个版本,但如果问题存在多个版本中,一直没有被发现,又该如何回滚?回滚太多,是否会存在数据库兼容性问题?上下游兼容性问题?新功能不可用问题?比如一个业务请求需要请求2个内部接口,才能完成一次请求的响应。如果其中有一个内部接口调用失败了,是返回部分数据?还是完全出错。假设返回了部分数据,上层业务以为是完整数据,结果可想而知。

所以上述三点完全实现起来并不是一件容易的事情。甚至,很多时候,大家过于依赖简单化的概念,进而有些自我催眠,而没有真正从技术上去做到全面的前期设计、评估、演练、优化、主动注入故障。

a61dcf33a905d27cbaebfb8b31230a9e.jpeg

2、如何尽可能保证稳定性

阿里为了降低人力成本,一直在做中台,中台的本质就是消除人的不可靠性,统一管理,追求极致的效率,效率是高了,抗风险能力就弱了。对于互联网公司,有时多招聘几个人、各个部门之间各自为政未必是坏事。

除了最主要人力成本就是硬件资源,一个服务,部署在一个机房可以用,二个机房也是一样的效果。正常运行时不会有太大的收益。特别对于一些底层的基础设施本来就是一主一从架构,如果部署一套灾难切换环境,即便互为主备,在原有资源情况下需要再次翻倍。为了节约成本,如果企业不愿意这样做,那么就需要承担出现故障对应的惩罚。

稳定性从来不是一朝一夕的事情,技术只是其中的简单一环,如果你要是经常翻一些事故报告,报告中会有一些放之四海而皆准的复盘,究其根本,故障原因都是一些低级问题。

如果你是一个软件研发人员,仔细观察你当前团队工作5-10年的技术人员,无论是架构师、技术专家、甚至普通工程师,你会发现他们之间对技术的理解能力都差不多,基本上一个问题的解决方案都会比较雷同,那么为什么有的人只能做普通工程师呢?有的人却可以做架构师和技术专家,搭个框架、了解某个技术从来不是架构师的护城河,因为这些东西普通人可以很快习得。一切全在细节上,架构师对公司未来技术发展方向的把控、疑难杂症的解决、某个框架的设计或者算法的阅读能力要强于大多数人,不过这种能力很难一时看到效果或者很少用到。另外老板主要会关注一些财报和能给公司来带营收的事项,这些人会给老板一种错觉,虽然花这么多钱,但是这些人却没有产生什么价值。

对于普通工程师要想保证稳定性就必须从设计、开发、测试、上线、后续运维,保证全生命周期任何一环,都不要出现问题。但是问题都是发生在细节上,细节是什么?就是一些做了没人知道,不会有太多体现,不做可能也没有问题的事情。做细枝末节的事情很难被认可,如果做的好了,不出问题,老板可能觉着你什么都没做,接着会要求你做出一些体现价值的事情,俗称亮点。如果做的不好,领导会说,不知道你们天天到底做了什么,竟然会出这些低级问题。年终奖、加薪、晋升不要再提了。一旦老板把稳定性当成一件理所当然的事情,那么稳定性将不复存在。

3、畸形职场文化

企业招聘一大怪象,为了节约成本,淘汰年龄太大的经验丰富的技术人员,不愿意培养技术人员,接着又说社会上没有符合要求的技术人员。站在企业的角度,一方面大龄技术人员有自己的思考和想法,可能管理起来相对较难。另一方面薪资待遇相对比较高,但是加班干活可能却不如小年轻积极。这就导致一些企业在招聘的时候总是喜欢招一些年轻人,也是其中的原因之一。我觉着问题并不在大龄程序员这个群体,让我们思考一下,企业自身难道就没有问题吗?

目前国内盛产产品经理,很多毕业之后没有学过计算机专业的学生,程序员干不了,但是却可以弯道超车直接做产品经理,没有一点经验,凭借自己天马行空的想象力,想像出来一堆没有任何数据支撑的需求让程序员去实现。如果技术人员反抗,一堆产品经理围着说,这个需求已经给老板对过了,必须在这个月底上线。如果捅到老板那里,美其名曰,可以采用小步快跑,快速试错的思想(其实就是没有想清楚),总要做出一些东西出来。反正我就需求一提,技术团队来做,上线后成功了,功劳是我的,失败了也没啥坏处,互联网市场变化太快搪塞过去,找个新项目,继续画大饼。按照这个节凑,假设成功了,随着时间的积累,产品会越来越复杂,如果前期没有做好长期设计,其系统是非常脆弱的,任何一次变更可能都有发生故障的可能,不稳定性越积越多,每天都如覆薄冰,加之人员流动,那故障便是家常便饭,不仅阿里云这样,国内外大公司都出现各种各样的故障。所以有时什么都做,看似产出很高,但是不一定是好事。

不知道从什么时候起,加班就是约定俗成的。还出现了看似很有道理的人生经验,比如老板会灌输年轻人就应该多拼一下,加班才能学到更多东西,对未来也有好处。既然老板倡导,加班自然成了光荣的、可以拿来攀比的现象,比如说加班到凌晨一两点,拍个照,发个朋友圈,收到老板的点赞很开心。而管理者呢,还就吃这一套,谁加班多、会来事儿,考核的时候就更有好处。在这种氛围下,大家都知道了,只有加班哄老板开心,才能赚取更多的工资和升职加薪的机会,技术不是最重要的,就没有人愿意安心搞技术。于是出现了上班摸鱼、划水,下班写代码,最后留下各种坑。

计算机程序这种东西,虽然很多管理者对此不屑一顾,没有太大技术含量,只是一个工具而已,复制粘贴能用即可,前期看起来高效率,低成本。但是随着用户越来越多,产品就会越来越复杂,如果没有强大的底层基础设施支撑和前期的高层设计,bug会越来越多。出来混总是要还的,今天不关注技术,未来就会又要招聘无数个程序员为此加班。

不过随着时间推移,乱七八糟徒有虚名的互联网及软件公司会逐渐被淘汰,剩下的都是实实在在提供价值的公司,为了保证服务的稳定性和整体成本,公司会逐渐开始注重长期规划和投入,招聘更多有经验的程序员来设计或者重构系统,提升系统稳定性,目前这个势头国内已经出现,互联网已经进入存量时代,程序员这个行业招聘越来越严格,有经验有能力程序员会越来越吃香,而不是被随意调侃和裁员。

原创不易,随手关注或者”在看“,诚挚感谢!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 vector

vector的定义和特性 注意&#xff1a;vector需要开C11标准 vector的常用函数 push_back():将元素添加到vector末尾 pop_back():删除vector末尾的元素 begin()和end():返回指向vector第一个元素和最后一个元素之后一个位置的迭代器。 示例 vector<int> vec{10,20,30};f…

准「AI 时代」下,如何衡量程序员的工作效率和生产力?

近 20 家科技、金融和制药公司实施了新的研发效能管理方法&#xff0c;并取得了令人鼓舞的初步结果。 客户报告的产品缺陷减少 20%-30%&#xff1b;员工体验分数提高 20%&#xff1b;客户满意度评分提高 60 个百分点。 大模型和 AIGC 技术催生了软件研发的新范式&#xff0c;也…

mybatis、mysql 创建时间(create_time)异常自动更新为当前时间

目录标题 一、问题二、原因三、解决 一、问题 bug: mybatis更新代码没有修改时间&#xff0c;但是时间会自动更新为当前时间。 。。。 被坑了挺久 二、原因 可能是创建表的时候&#xff0c; Navicat Premium 等可视化工具给你整活了。。。 三、解决 取消勾选。 注意&…

相对强弱指标 RSI

SMA&#xff08;A,B,1)MA AA ,一天前的收盘价&#xff1b; BB&#xff0c;如果时涨的&#xff0c;把涨幅返回&#xff1b; CC,12天的涨幅占12天全部涨跌幅的多少&#xff1b; 画一条50 的线条。

ssd202d-logo-cmd_bootlogo分析

cmd_bootlogo.c运行过程 common/autoboot.c:593: disp_logo(0); sprintf(cmd_str, "bootlogo %d 1 0 0 0", logo_id); do_display函数 获取对应结构体,里面有各种参数

悬浮波导SiO2薄膜的应力和折射率控制

引言 悬浮二氧化硅结构对于许多光学和光子集成电路(PIC)应用是重要的&#xff0c;例如宽光谱频率梳&#xff0c;低传播损耗波导&#xff0c;以及紫外-可见光滤光器等。除了这些应用&#xff0c;悬浮波导还可以应用于紫外吸收光谱和一类新兴的基于氮化镓(GaN)纳米线的光子器件&…

百面深度学习-图神经网络

百面深度学习-图神经网络部分 什么是图神经网络&#xff1f; 图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是深度学习模型的一个类别&#xff0c;专门设计来处理图结构数据。在图结构数据中&#xff0c;实体以节点&#xff08;vertex&#xff0…

window.open 打开后全屏

window.open(url,newwindow,scrollbarsyes,resizable1,modalfalse,alwaysRaisedyes,fullscreenyes,_blank)

搭建知识付费系统的最佳实践是什么

在数字化时代&#xff0c;搭建一个高效且用户友好的知识付费系统是许多创业者和内容创作者追求的目标。本文将介绍一些搭建知识付费系统的最佳实践&#xff0c;同时提供一些基本的技术代码示例&#xff0c;以帮助你快速入门。 1. 选择合适的技术栈&#xff1a; 搭建知识付费…

Ubuntu20.04安装搜狗输入法

目录 1. sogoupinyin安装1.1 安装 fcitx1.2 下载搜狗官方安装包1.3 安装依赖&#xff08;这步很关键&#xff0c;否则安装完成后&#xff0c;无法输入中文&#xff09;1.4 安装刚才下载的搜狗输入法1.5 切换 fcitx1.6 重启电脑1.7 右上角点击Configure&#xff0c;(因为我安装好…

svg图标最简单的使用方式

svg图标最简单的使用方式 使用svg图标1. 复制图标的svg代码2. 新建个存放svg图标的目录&#xff0c;新建.vue文件3. 在<template>标签内粘贴svg的代码4. 在代码中也可以调整颜色和大小5. 在组件中引用6. svg做的图标要独占一行,使用布局将它安排到合适的地方 使用svg图标…

SecureCRT 9.4.2最新终端SSH工具

SecureCRT是一款终端SSH工具&#xff0c;它提供了类似于Telnet和SSH等协议的远程访问功能。SecureCRT软件特色包括&#xff1a; 支持SSH&#xff08;SSH1和SSH2&#xff09;的终端仿真程序&#xff0c;能在Windows下登录UNIX或Linux服务器主机。SecureCRT支持SSH&#xff0c;同…

基于SSM的员工信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

基于opencv+tensorflow+神经网络的智能银行卡卡号识别系统——深度学习算法应用(含python、模型源码)+数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 训练集图片处理2. 测试图片处理3. 模型训练及保存1&#xff09;定义模型结构2&#xff09;优化损失函数3&#xff09;模型训练4&#xff09;模型保存 4. 模型测试 系统测试1. 成功案例2. 失败案例 相关其它博客工…

Ubuntu 20.04 LTS ffmpeg gif mp4 互转 许编译安装ffmpeg ;解决gif转mp4转换后无法播放问题

安装ffmpeg apt install ffmpeg -y gif转mp4 ffmpeg -f gif -i ldh.gif ldh.mp4 故障&#xff1a;生成没报错&#xff0c;但mp4无法播放&#xff0c;体积也不正常 尝试编译安装最新版 sudo apt install -y yasm axel -n 100 https://ffmpeg.org/releases/ffmpeg-6.0.1.tar.x…

基于Element-Plus动态配置Menu 菜单栏

文章目录 前言先看效果可兼容多级菜单栏&#xff08;顺便配置多少级&#xff09; 一、新建组件二、使用步骤总结如有启发&#xff0c;可点赞收藏哟~ 前言 菜单栏配置化 图标配置化参考vite动态配置svg图标及其他方式集合 先看效果 可兼容多级菜单栏&#xff08;顺便配置多少级…

代码随想录算法训练营|五十三天

判断子序列 392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09; 过程&#xff1a; public class Solution {public bool IsSubsequence(string s, string t) {int[,] dp new int[s.Length 1, t.Length 1];for (int i 1; i < s.Length; i) {for (int j 1; j <…

ElasticSearch集群内存占用高?如何降低内存占用看这篇文章就够啦!(冻结索引)

ElasticSearch集群内存占用高&#xff1f;如果降低内存占用看这篇文章就够啦 一、冻结索引的介绍 经常搜索的索引被保留在内存中&#xff0c;因为重建索引和帮助高效搜索需要花费时间。另一方面&#xff0c;可能存在我们很少访问的索引。这些索引不需要占用内存&#xff0c;可…

ref属性

Vue 中 可以给标签&#xff08;HTML元素标签、组件标签&#xff09;加上一个 ref 属性&#xff0c;作用就是给 标签加上一个标识&#xff0c;可以通过该标识获取当前需要的DOM元素或者组件实例对象。 通过原生js获取DOM 如果使用原生js来获取DOM元素时&#xff0c;我们最简单的…

Unity--互动组件(Toggle Group)||Unity--互动组件(Slider)

Toggle Group 属于同一组的切换开关受到限制&#xff0c;因此一次只能打开其中一个开关&#xff0c;按下其中一个开关时&#xff0c;其他的开关将会自动关闭&#xff1b; Allow Switch Off&#xff1a;&#xff08;允许关闭&#xff09; 如果禁用此设置&#xff0c;则按下当前…