晋升失败后,我靠爬虫把简历投成了K8s Operator

邓强~
2026-01-14 15:30
阅读 1909

去年考研成绩出来那天,我坐在浙大紫金港图书馆门口的台阶上,耳机里循环着《孤勇者》。372分,政治59,差一分进复试。那一刻我盯着屏幕发呆了二十分钟,脑子里只有一句话:完了,得找工作了。

转头我就删了所有“二战计划表”,开始猛肝LeetCode。三月春招,四月海投,五月终于在杭州一家中型互联网公司落了脚——说是“云原生方向”,其实日常就是给前端兄弟们擦屁股、帮运营写临时数据脚本、偶尔被运维叫去救火。但好歹坐标阿里网易隔壁,通勤地铁二十分钟,工资勉强够我在未来科技城合租个次卧。

可谁也没想到,入职刚满一年,晋升答辩当场翻车。


事情得从Q2说起。我们组负责一个内部运营平台,主要功能是让运营同学能自助查询用户行为数据、配置活动规则、导出报表。说白了,就是个披着“智能中台”外衣的Excel生成器。但领导非要包装成“数据赋能体系”,还定了个目标:Q3前接入全量用户行为日志,支持实时看板。

为了这个目标,我主动揽下了最难啃的骨头——从第三方合作方那里抓取用户画像标签。对方API限流严得像防贼,每分钟10次调用,还时不时返回403。手动跑脚本?运营小妹一天要导五次,烦死了。于是我一拍脑袋:不如写个分布式爬虫,部署在K8s上,自动扩缩容、失败重试、日志追踪一条龙。

说干就干。我用Python写了核心逻辑,封装成Docker镜像,再用Helm Chart定义了一套CRD(Custom Resource Definition):CrawlJob。运营只要在YAML里写:

apiVersion: dataops.example.com/v1
kind: CrawlJob
metadata:
  name: user-tag-sync-daily
spec:
  source: "https://partner-api.example.com/tags"
  rateLimit: 8
  schedule: "0 2 * * *"
  outputTable: "ods_user_tags"

然后 kubectl apply -f crawl-job.yaml,Operator 自动创建 Job、ConfigMap、Secret,甚至能根据历史执行时间预估资源请求。上线那天,我还在 Slack 频道里发了个 🚀 表情,心想这不就是晋升材料里的“技术驱动业务”?

结果答辩会上,评委(一位前端出身的TL)皱着眉头问:“你这个东西……和写个定时脚本有啥区别?”

我说:“区别大了!它能自动扩缩容、失败告警、审计追踪,还能复用给其他数据源。”

他点点头:“哦,那前端同学现在导出报表还是卡,你能不能先帮忙优化下页面加载速度?”

我愣住。那一刻,我仿佛听见自己精心搭建的K8s集群在云上无声崩塌。


后来HR找我聊,委婉地说:“今年HC紧张,你的‘业务贡献’不够直观。”
我懂。在我司,什么叫“业务贡献”?就是能让运营少加班、让产品多吹牛、让老板在周报里写“DAU提升5%”。而我呢?埋头搞了一堆基础设施,结果没人看得见。

更讽刺的是,那个爬虫系统上线后,运营小妹确实没再半夜@我了。但她根本不知道背后是K8s在跑,只当是“IT修好了”。而前端同事呢?他们连K8s是什么都不知道,只知道我“又在折腾没用的东西”。

那段时间我特别丧。每天下班回家,打开VS Code想写点东西,却连播放列表都懒得切——以前边听Lo-fi Hip Hop边敲代码的快乐,好像被晋升失败这件事彻底抽干了。

直到上周五晚上,我又被拉进一个紧急会议。原因是:运营发现某竞品突然上线了新功能,我们需要立刻抓取他们的活动页做竞对分析。产品经理急得直拍桌子:“明天早上十点前必须拿到结构化数据!”

旧方案?写个临时爬虫,手动跑,导出CSV。但这次页面用了动态渲染+反爬JS混淆,普通requests根本拿不到数据。测试同学试了三次,全被验证码拦住。

我默默掏出笔记本,五分钟搭了个Playwright + K8s Job 的临时方案。容器里跑无头浏览器,通过ServiceAccount挂载代理池,输出直接写入S3。凌晨两点,数据准时躺在数仓表里。第二天晨会,产品看着BI图表眼睛发亮:“这效率,绝了!”

散会后,他拍我肩膀:“兄弟,你这技术真顶。下次晋升我给你背书。”

我笑了笑,没说话。心里却清楚:技术再酷,如果不能翻译成业务语言,就只是自嗨。


这次经历让我彻底想通了几件事:

1. 简历不是技术清单,而是价值故事

我之前写简历,全是“熟悉K8s、掌握Prometheus、开发过Operator”……HR扫一眼就扔。后来我改了策略:

主导构建数据采集平台,通过自研K8s Operator实现爬虫任务自动化,日均处理200万+请求,支撑运营日报、竞对监控等6个核心场景,减少人工干预90%。

你看,同样一件事,前者是工程师视角,后者是老板视角。技术人最大的误区,就是以为别人关心你用了什么工具,其实他们只关心你解决了什么问题。

2. 前端不可怕,可怕的是你不懂协作语言

别吐槽前端只会改UI。在真实业务里,前端是离用户最近的一环。如果你做的系统最终要通过前端呈现,那就得学会用他们的语言沟通。比如别说“我的API很稳定”,要说“我能保证你们首屏加载<1s,Lighthouse评分90+”。

我甚至开始主动约前端同事喝咖啡,问他们:“你们最烦后端什么?”
答案惊人一致:文档不全、字段乱变、联调不回消息。
于是我现在每次上线新接口,必附Swagger + Mock Server + 变更说明Markdown。结果?前端兄弟现在见我都喊“哥”。

3. 爬虫不是脏活,是理解业务的入口

很多人觉得写爬虫low,是外包干的活。但我想说:能合法合规地从外部获取数据,并把它变成内部资产,这是顶级业务sense。

我自己就靠着爬竞品活动页,反推出他们的用户分层策略,顺手给产品提了三个优化建议,其中一个被采纳后,转化率涨了3%。这种case,比你调优etcd参数有用一百倍。


当然,我也不是一夜顿悟。中间踩的坑,能写三篇博客。

比如第一次部署Operator时,没加ResourceQuota,结果一个无限循环的CrawlJob把整个namespace CPU打爆,连带影响了支付服务——被值班运维追着骂了半小时。
又比如为了绕过反爬,我尝试用K8s InitContainer预加载Cookie池,结果因为DNS解析超时导致Job卡住,最后靠加上dnsPolicy: Default才解决。

这些细节没人会在晋升PPT里提,但它们构成了你真正的技术深度。


现在,我不再执着于“架构师”“专家”这类title。每天上班,我会先问自己三个问题:

  • 今天做的事,能让谁的工作变简单?
  • 如果系统挂了,有没有人会立刻打电话给我?
  • 我的代码,三个月后别人还能看懂吗?

如果答案都是“是”,那我就值这个工资。

至于晋升?随缘吧。反正我手里的简历已经更新了,重点不是“精通K8s”,而是“用云原生技术驱动业务增长”。最近有猎头推阿里云的岗位,JD里写着“熟悉Operator优先”——呵,这回,轮到他们来求我了。

最后分享一句我贴在显示器边上的话,来自某位被裁的大厂P8:

技术人的尊严,不在职级,而在不可替代性。

而我的不可替代性,就是——
当运营需要数据时,我能把整个互联网变成她的数据库;
当前端需要性能时,我能把K8s变成他的CDN;
当老板需要故事时,我能把代码变成财报里的增长曲线。

这,就够了。


附:我整理的「业务导向型程序员成长清单」,自用有效:

维度 错误做法 正确姿势
技术选型 “这个新技术很酷,我要用!” “这个方案能省多少人力/时间/钱?”
沟通表达 “你不懂技术别乱提需求” “我理解你想快,我们可以这样折中……”
简历撰写 列出10个技术栈 讲3个业务影响故事
日常工作 等待分配任务 主动发现流程瓶颈并解决
心态建设 “他们不懂我” “我还没让他们看懂”

共勉。

评论 0

最热最新
暂无评论
邓强~Lv.1
0
影响力
0
文章
0
粉丝