加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_沈阳站长网 (https://www.024zz.cn/)- 视觉智能、大数据、智能搜索、CDN、边缘计算!
当前位置: 首页 > 百科 > 正文

数据科学家建站无需懂运维?16年支持工程师揭秘真相

发布时间:2026-11-13 08:02:33 所属栏目:百科 来源:DaWei
导读:  去年春节,我接了个单子,数据科学家自己搭的模型服务站,挂了三天没动——不是不能动,是动了更糟。他发来截图,/healthcheck 返回 502,nginx 日志里全是 upstream refused,他以为是 Flask 启错了端口,改了十八秒,又改回来,最

  去年春节,我接了个单子,数据科学家自己搭的模型服务站,挂了三天没动——不是不能动,是动了更糟。他发来截图,/healthcheck 返回 502,nginx 日志里全是 upstream refused,他以为是 Flask 启错了端口,改了十八秒,又改回来,最后在 Slack 里问:“是不是得换异步框架?”


  我登上去看,systemctl status nginx 亮着绿灯,但 ps aux | grep nginx 只有 master 进程,worker 全死了。systemctl restart nginx —— 成功。两分钟后,又死。这时候我听见楼道里有人拖着塑料拖鞋啪嗒啪嗒走过去,手里还拎着一袋冻饺子,估计是隔壁运维老张值班回家。我没叫他,自己翻 journalctl -u nginx -n 200。第三行就写着:failed to load shared library libcrypto.so.1.1: cannot open shared object file。我原以为又是系统升级搞的鬼,结果一查,/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 权限是 600,属主 root,属组 root,但 nginx worker 是 www-data 身份跑的——它压根读不了这个文件。


  谁改的权限?没人承认。但那个 .so 文件上一次修改时间是腊月二十三,我们所有人的休假通知都发出去了,服务器自动更新脚本跑了一次,把 openssl 升到 3.0.12,顺手 chmod 600 了旧库。这事我不敢打包票是谁干的,但我知道那个更新脚本配置里有一行注释:“# for FIPS compliance – harden libs”,字是我半年前加的。所以这锅,我得认一半。


  桌上的外卖盒还敞着盖,咖喱鸡块已经结膜,上面浮着三粒干瘪的青豆。我用筷子尖拨了一下,没动它。对面工位小王探头说“要不咱先回滚 openssl?”,我摆摆手,他转身时袖口蹭掉了键盘上一根头发。我其实没听清他说啥,只看见他左耳戴的那个银圈闪了一下——他上个月刚打了耳洞。


  数据科学家建站无需懂运维?站得住的地方是优胜劣汰。不是“不用学”,是“学不会的,自然淘汰”。不是平台兜底,是故障现场兜不住人。我见过两个典型:一个搞金融时序预测的,在 k8s 上把 livenessProbe 的 initialDelaySeconds 设成 3,容器永远等不到就绪就被 kill;另一个做推荐系统的,在 S3 上存模型权重,直接写 s3://bucket/model.pkl,没加 endpoint_url,结果默认连的是 us-east-1,但他部署集群在 frankfurt,超时 30 秒才报错,日志全埋在 kubelet 里,他查了两天,以为是 PyTorch DataLoader 阻塞。


  这两个现在都在哪儿?第一个三个月后转去当售前了,PPT 写得飞快;第二个去年十月离职,听说去了某家大厂做 MLOps 工具链的产品经理。都不是坏人,也不是笨,就是被线上那几秒钟的延迟、那条没露头的 error、那个没打全的 flag,一点一点推离生产现场。你别跟我说他们该学。他们试过。只是有些东西,真得踩着机器响起来那一下,才能记住。


  说到机器响——对,就是那台物理机柜顶上,编号 R7 的那台,风扇坏了半年多,嗡嗡声像卡了半截录音带,每次我路过都下意识捂右耳。上周它突然不响了。我扒开挡板看,散热片上积灰太厚,压着温度传感器,系统以为过热,自动降频锁频,结果整个监控指标图平了三天,连 CPU 使用率那条线都直得不像话。后来换风扇的时候,我发现螺丝孔旁边贴了张便利贴:“李工:请修 —— 小赵(已转岗)”。这事儿我说不准是不是和建站有关,但它确实发生了,就在我调 nginx 那天下午三点十七分。


  还有个细节:除夕那天凌晨两点,我收到一条微信,不是客户,是那个数据科学家自己。他发了个链接,是 GitHub 上一个叫 ml-deploy-cli 的工具,下面配字:“刚发现这个,能自动生成 docker-compose.yml 和 nginx conf,支持自动 HTTPS”。他加了个表情包,熊猫捂嘴笑。我没回。第二天中午他发来截图,生成的 conf 里 server_name 写成了 $hostname,而他机器上 hostname 是 localhost。我截图发他,他回:“啊?还能这么填?”


文章配图,仅供参考

  我不是反对自动化。我每天删 12 行重复 YAML。但我见过太多人在 CI 流水线里写 echo "✅ model uploaded",结果上传失败后脚本照样 exit 0;也见过用 Terraform apply -auto-approve 把 VPC 销毁两次的人,就因为 tfstate 存在本地。他们不是懒,是没机会在凌晨四点,看着 /var/log/syslog 里那一长串 timeout 堆栈,手指冰凉地敲 rm -rf /tmp/.mlflow_tmp,同时听见楼下清洁阿姨推着水桶哐当一声撞上消防门。


  前两天茶水间遇见陈姐,她搓了一下手指,指甲缝里有点粉笔灰——她带实习数据工程师,上个月让俩学生各搭一套推理服务,限定两天。一个用现成模板,绑了域名、开了 https、配了健康检查,跑通;另一个坚持从零编译 ONNX Runtime,装完 gcc 愣是没找到 make。陈姐没批评,只说:“你们俩下周轮岗,去帮林工盯三天告警。” 林工是我们组唯一会修打印机的人。打印机卡纸那声音,跟 nginx worker segfault 前的最后那声 sys_write 确实挺像。


  我原以为这事过去就算了。结果初五下午,客户群突然弹出一个新成员,昵称“DS_Ops_Trainee_v2”,头像是只举着扳手的柴犬。他发的第一条消息是:“请教:supervisord 启动后显示 RUNNING,但实际进程没起来,journalctl 查不到日志,可能是什么原因?” 我盯着那句话看了四十七秒,窗外开始下雨,雨点砸在空调外机上,噼啪、噼啪、噼啪。


  要不要回?我现在还不确定。

(编辑:我爱制作网_沈阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!