开发能在多大程度上帮助运维减轻半夜被叫起的负担?

2020-06-09 10:18:12 +08:00
 baiwfg2
我司我组的运维都看着挺辛苦的,经常半夜两三点起来处理故障问题,因为经常有致命告警。他们往往对某些实现上的细节不清楚,所以也很有可能把主导项目的开发 leader 叫起来,于是大家都在深更半夜不太清醒的状态下处理故障。

我一直在想,如果开发把功能做得完备些,特别是在上线前多测试演练,多在可能故障的地方埋点以帮助在意外情况下可以恢复到 一个慢但准确的 Plan B 的执行路径上来,这样哪怕半夜被叫醒,也可以快速迁到 plan B,不至于人为操作半天,毕竟人不在清醒情况下更容易出问题。

所以我总觉得运维如此辛苦,是开发
1 )没有用心把系统做得故障冗余
2 )没有重视上线前测试演练
3 )没有配合和敦促运维一起做好面板监控和自动化处理(于是乎总要通过慢的命令行的人工操作)

的结果。(我自己是开发 ,所以也会审视我们的开发队伍)。大家觉得呢
9263 次点击
所在节点    程序员
95 条回复
barrysn
2020-06-10 08:58:35 +08:00
@index90 问题很多,业务变更可能是开发问题, 也可能是运维问题,也可能是流程问题,也有可能是资金问题等等
并不能确定是哪里的问题,
其实楼主说经常性看到运维半夜处理紧急问题,这个应该说明 公司内部肯定是有问题的,但一直没有处理或者没有更好的处理办法,
业务变更是我猜的,还有可能是跨境业务
lincolnhuang
2020-06-10 09:18:01 +08:00
@murmur #11 马路上有环卫工,所以我是可以乱丢垃圾的,不用我操心
lincolnhuang
2020-06-10 09:19:30 +08:00
@Amance #28 您的理解,运维岗就是半夜起来给开发擦屁股的吗?
exploreXin
2020-06-10 09:24:49 +08:00
只有 DevOps 能够救运维,也只有 DevOps 才能够救开发。另外要注意一点,是团队基础设施达到 DevOps 的水平,才叫用了 DevOps,而不是公开宣称采用 DevOps,这两个看上去差不多,但却是一个天上,一个地下。
lincolnhuang
2020-06-10 09:24:55 +08:00
其实主要是管理问题,不过楼上那么多开发说写 Bug 是为了运维不被优化,真的是笑掉大牙。这个帖子,真的让我感受到了部分开发内心的满满恶意。。
salmon5
2020-06-10 09:30:25 +08:00
来 100 个产品经理,每天 100 个不同需求,“怎么实现我不管,老板要这样”,别让楼上的某些开发下岗了
murmur
2020-06-10 09:34:54 +08:00
@lincolnhuang 不是给开发擦屁股,但是你没法保证系统百分百稳定运行,总要有人值班,是开发还是运维值班只是个头衔而已
JRay
2020-06-10 09:51:35 +08:00
项目刚刚开发完,一遍都没测过,老板直接喊给客户部署了。
我有预感会经常半夜打电话来
ly4572615
2020-06-10 09:58:23 +08:00
@timle1029 亲,我是说通过技术手段让机器自己处理大部分问题,不是说不接电话,你 4 点多还不睡觉吗,早点休息
dany813
2020-06-10 09:58:30 +08:00
@yuanbo6 老哥,你们客户的定制化需求多吗,怎么处理定制计划需求和标准需求的
Amance
2020-06-10 09:59:13 +08:00
@lincolnhuang 那就是管理的问题,代码不审核,随机提交。明显的问题让你来擦屁股的话,说明你你还不配当一个合格的程序员。如果审核了除了问题,就不是擦屁股,那就是你运维分内的事情,程序都给你弄好了养着你天天喝茶出来怼人么?
yuanbo6
2020-06-10 10:55:02 +08:00
@dany813 不少,单是我主要盯的项目就有几十条定制。
按照正常来说我们在实施阶段开始之前就会给用户部署一个测试演示用的产品,并提供产品功能清单,然后开始用户体验,项目经理会开始进行需求调研并收集整理。我们这种定制情况其实还好,毕竟是从实施开始之前就在进行规划工作。但是要命的是实施阶段结束已经上线运行之后用户提需求。
这种需求我们很头大,但是不得不做(用户来头大,无论是经济价值还是政治价值都很高)。
根据我司的项目管理模式,在实施阶段过去之后主要由我们的实施运维交付团队以及商务团队(我这边的用户直接是销售总监对接)和用户做对接,而非上面提到的项目经理。用户此时提出的需求要么是直接和销售总监说,要么是直接和我的团队说。(当然我和我们的销售总监关系还是很不错的,他人也靠谱,沟通起来没啥障碍,这是整个项目团队内部的事情)。我们会先行讨论一下用户提出的需求,第一是否合理(不合理的我做了干嘛?这是有教训的,用户那边有个 NT 提过倆个需求上线之后一星期左右他的领导觉得界面看起来乱要我们撤掉,以后处长级以下领导的需求我们基本不听,因为底层科长级别无法拍板),如果合理,那必须要做(从侧面也说明我们的产品不贴合用户实际需求,也是推动产品进步);第二看技术是否可行,很多 NT 用户我怀疑是科幻片看多了,天天拿着变形金刚的标准要求我一个可达鸭,我可达鸭真的办不到啊,换谁都办不到啊……一旦以上两点有问题,这时候就需要关门放销售总监出马交涉了(感谢上天赐我一个靠谱的销售,而非挖掘机)。
好的,方案合理性和技术可行性都通过了,一个电话炸到研发总监 /组长 /马仔那里(具体找谁这个要自己把握尺度了,反正我都熟悉……):喂?老板 /大哥 /兄弟,有定制要做了,需求是 XXXX,方案大概是 XXXX,流程我们这边初步设想是 XXXX 。对方心里:艹,又来工作量了。对方表面:好的,我们安排一下。 故事转到了研发部门。
研发部门会根据所有的开发进度进行定制开发周期评估和排期,有些项目动不动就加急(没错就是我的项目),那没办法,经济因素和政治因素都在那里摆着,研发 leader 们也不傻,就是大兄弟们辛苦。开发完之后测试组三轮测试,成果物发往现场。我们这种大项目一般都有个小型的测试平台专门用来测试新定制或者什么东西的,部署上去,模拟环境测试一周左右,和用户进行沟通,定个晚上开始部署升级。小升级其实还好,大升级就需要知会一下研发兄弟们了,毕竟有些事情测试一千遍没问题他真的会在现场第一遍点击运行就出问题(测试部门的绩效靠我提升,研发兄弟的死敌黑手党)。出问题了 call 人,不出问题给用户留言汇报。
yuanbo6
2020-06-10 10:57:57 +08:00
@dany813 定制部署之后,内部开始评估,这东西能成为标准化吗???评估结果 1:只有这项目这个 NT 用户有这个需求。那么成果物单独作为分支进行保留,后续如果有其他 NT 用户要用,拿出来改一改继续用。评估结果 2:这功能确实我们没想到,确实贴合实际使用情况,拉上产品、架构一起把他扔进下一个版本做基线程序。
dany813
2020-06-12 09:36:11 +08:00
@yuanbo6 感谢老哥这么长的回复,这个定制化确实能推动产品的迭代,我感觉我们公司的产品定制化也超多,好多都是产品根本想不到的点,ToB 就是业务很复杂,每次对接的一个公司的业务,多多少少都要定制点功能。当然,那种不合理一定要推掉,合理的,符合大多公司需求的,就加入标准版功能清单里面
yuanbo6
2020-06-13 15:10:45 +08:00
@dany813 是的,合理性确实是很重要的。但是有一点也很重要:为什么我们设计的东西和用户期望的不一样?我们设计出来的东西就是对的吗?——产品经理对自己的思想有时候太过自信了也很要命啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/679896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX