版本强迫症到底是谨慎还是玄学?

2019-09-10 14:29:30 +08:00
 saytesnake
无论是以前还在的公司,都存在不少 “版本强迫症” 的情况。

本职是运维,按照我的想法是,MQ、ZK、Kafka,Redis 这些都尽可能地用最新版本,且实践中,也没有出过问题。数据库则讲究小版本升级,也是为了照顾 Bug 与漏洞修复的,比方说 PG10,就尽可能 PG10.10 ,PG9.6 就尽可能 PG9.6.15 ,诸如此类。

在这家公司...最郁闷的莫过于 CentOS...死磕 7.3 也就算了,新装机器,一上来就 yum update -y...装哪个版本都一样了吧,还头头是道说 7.3 稳定...

还有,ActiveMQ “死磕” 5.9.1 (公网对外,据说之前被入侵过植入挖矿,我估计是 CVE-2016-3088,但开发人员还是坚持不用新版本),ZK “死磕” 3.4.6,Kafka “死磕” 1.1.0,Redis “死磕” 2.8 (没错,原生集群也用不了)。数据库 PG 只用 10.3,估计是打算用一辈子了吧?

不知道是生活压力大还是懒,“实践出真理”就是不想做,别人做了也不理,不明白。

都是小牢骚。
5310 次点击
所在节点    程序员
41 条回复
Buges
2019-09-10 18:10:15 +08:00
老项目除非有需求(功能,安全漏洞等)否则不要动,工作量不饱和?
新部署的尽量上最新的( release or stable ),如果始终维护的话后续也跟着一版一版的升( cai )级( keng )
Mohanson
2019-09-10 18:25:15 +08:00
有这种牢骚的基本是菜鸟:我毕业后 某某 最新版本是 x 了, 我以前没用过 x - 1 版本的,你们不用 x 版本就是你们不求上进。
基本工作时常一年的菜鸟最喜欢 diss 这个。
watsy0007
2019-09-10 18:37:48 +08:00
过一段时间就可以重新立项了...
switch100
2019-09-10 20:50:32 +08:00
如果我是技术部主管,我肯定会吊这帮网管运维,不好好修主机装系统,还把手伸到开发来了,这么牛 B 怎么不做开发?
harde
2019-09-10 20:54:49 +08:00
每一个“非创业公司”的技术选型、选版本 都是一部可歌可泣的血泪史。
twl007
2019-09-10 20:55:20 +08:00
升级不升级另说……漏洞补丁也不打么?
winterbells
2019-09-10 21:45:13 +08:00
我的项目第三方库都是及时升到最新的(摸鱼一大乐趣之哪个库更新了
半路接手的,是什么就是什么,出了问题不然找谁
saytesnake
2019-09-10 22:07:04 +08:00
@switch100 都已经中了挖矿病毒了,阿里云的告警成古董了都没人理,近期 Dubbo 又有漏洞,估计也是不升级了,怎么办?
@twl007 没错,就是这样,所谓怕出问题,安全反而是次要的。
@Mohanson 中间件,第三方库而已,跟开发本身关系不大啊,我在测试环境 MQ、ZK、Kafka,Redis 直接用最新,代码一行不改,跑到现在也没出现过问题啊,而且我本身也偏向保守的,只升级或更新安全相关的,也不行,时不时被中挖矿病毒也没所谓,什么道理么。
saytesnake
2019-09-10 22:09:38 +08:00
@Buges 目前就是安全漏洞跟集群化的需求啊,redis2 搞个第三方集群,网上搜索的都已经是古董文章了,直接上 5.0 也没发现问题在哪里。
chinvo
2019-09-10 22:14:40 +08:00
一般来讲,最小一级版本号都是修补,这种我选择及时跟进(通常修补意味着两种情况,性能改进或者安全修补),但是也要观察一下,如果公网、user group、maillist 没有相关兼容性 /稳定性报告,一定要复刻一套生产环境然后做更新实验一下

大版本、小版本通常不更新,在项目初期选定之后基本不动,到了非动不可的地步,通常也是项目需要重构的时候,重构时重新选型就好
twl007
2019-09-10 22:14:52 +08:00
@saytesnake 哎 感觉还是抱着那种做的多错的多 不做不错的心态吧
littlespider89
2019-09-11 00:28:19 +08:00
用的好好的系统不要随便升级依赖,说不定什么时候就出现一个严重的 bug,稳定的系统肯定经过了成百上千次的测试、修复 BUG,一些 BUG 修复甚至可能专门针对一些依赖库使用一些 tricky 的方法,一升级依赖库就会有问题,而且可能不会马上发现,运行一段时间后出现问题,有可能当时的程序员都不在了…

另一方面,不要轻易用最新的版本~,尤其是 X.0 或者 X.X.0 版本,一般都是有问题的,所以很快就有补丁版本出来的,你用最新版本就意味着你要不断的重新部署系统,这个折腾对项目组的负担也是蛮重的

所以对项目来说,能满足需求就行,你这个项目都没人用,没人卖,整那么多听起来很炫很酷的新功能、性能提升,真的没用
msg7086
2019-09-11 03:11:10 +08:00
当这样的帖子下面很多回复连「安全更新」(小版本补丁升级)和「功能升级」(大版本功能升级)都没有分开讨论的时候,这回复串已经没法看下去了。
jinliming2
2019-09-11 07:08:53 +08:00
1,老项目看实际情况不升级大版本无可厚非,但是安全更新不跟上也是合理的吗?
2,楼上的几位说升级出问题了谁来负责,那我反问一句:坚持旧版本,那么一堆已知的 CVE 被利用了谁来负责呢?就像楼主说的这个中挖矿病毒的事,发生了谁来负责呢?也许挖矿病毒还算小事,如果被任意代码执行拿走完整源代码、完整数据库,这又谁来负责呢?更严重的甚至有法律方面的责任。(如果版本是你们老板强制要求的,那么出问题写个报告指出是利用 xxx 版本的 xxx 漏洞造成的攻击,看你们老板是愿意接锅还是甩锅。但如果版本是自己私自定的,或者给老板说过但老板没管的,那么出现这一类问题背锅的肯定是这个要求版本的人,其他开发人员连带责任)
3,的确有些软件版本管理不合规,小版本更新弄出不兼容,但是如果是安全更新,我理解肯定是老写法存在严重问题才会改的,这种通常要配合改本地代码去做适配,因为本地代码肯定也是有严重问题的。
4,如果的确是担心新版本软件质量问题,我觉得可以叉开一个版本进行更新,比如最新版本是 x.x.5,那就更新到 x.x.4,而 x.x.5 交给社区去做公测,等 x.x.6 出来没问题了再更新 x.x.5。
5,对于新项目,不升级最新稳定版本就是给日后升级小版本挖坑。
Sharuru
2019-09-11 08:05:35 +08:00
谁升级谁负责话粗理不粗,你只要有管理 infra 的资格,当然你也能升版本,你也能 fix 一个版本然后吃 CVE 的鳖,没毛病。
认清自己的职能范围。
WispZhan
2019-09-11 11:06:58 +08:00
一句话都不是匠人,只是在推卸责任和懒政没区别,罢了。

升级肯定是要升级的,只是升级之前要做兼容性测试,检查依赖,破坏性改动等各种可能出现的问题。

这些不是偷懒不更新的借口
Rwing
2019-09-11 11:48:56 +08:00
java 多少停留在 6 和 8 的?
smallpython
2019-09-11 20:15:53 +08:00
请问
===
在这家公司...最郁闷的莫过于 CentOS...死磕 7.3 也就算了,新装机器,一上来就 yum update -y...装哪个版本都一样了吧,还头头是道说 7.3 稳定...
===
这句话的原理是什么呢?
msg7086
2019-09-12 06:01:27 +08:00
@smallpython yum update 就是系统更新。
saytesnake
2019-09-12 11:31:04 +08:00
@jinliming2 只能说,很同意你的看法。

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

https://www.v2ex.com/t/599638

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

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

© 2021 V2EX