为什么技术探索与实践?一个快手老架构师的碎碎念
今天早上8点刚进公司,泡了杯速溶咖啡(别笑,真没时间手冲),坐在工位上刷了会儿内部论坛,看到一条新帖子:“求推荐能快速上手、面试又加分的新技术方向”。我笑了笑,想起了自己六年前刚来快手那会儿——也是这么急着“学点能写简历上的东西”。
我是快手下一代基础设施团队的架构师,在上海租了个离公司步行10分钟的小单间,已经在这干了整整六年。从0到1搭过用户中心、内容分发中台、还有去年搞崩过两次的直播打赏系统(别问,问就是“高并发下的玄学”)。一路踩坑、背锅、救火、复盘,慢慢才明白:技术探索不是为了炫技,而是为了解决真实世界里那些又臭又长的业务需求。
起因:运营说要“上链”,我差点以为他在讲玄学
去年Q3,我们部门接了个“创新项目”:给某个垂类内容做创作者激励,运营同学拍脑袋提了个需求——“能不能用区块链存证?显得更可信!”
我当时第一反应是:这哥们是不是看了太多币圈新闻?但转念一想,其实人家核心诉求很朴素:防止数据被篡改,增强创作者对平台的信任感。至于用不用区块链,反而是次要的。
但既然提到了,我就得认真评估。毕竟在快手这种量级的公司,随便一个“小改动”都可能影响百万DAU。而且——坦白讲——我也想趁机摸一摸 Web3 的门把手,万一哪天跳槽呢?(求职市场卷成麻花了,懂的都懂)
技术选型:不是所有问题都要上K8s + 区块链全家桶
一开始,团队里有新人直接甩出个 Hyperledger Fabric 架构图,还配了句“这可是企业级方案”。我看了眼部署文档,光 TLS 配置就三页,心里直冒冷汗:我们真的需要这么重的方案吗?
冷静下来后,我拉着运维、测试和产品开了个短会(没错,就是那种站着开15分钟的“敏捷会”),把问题拆解清楚:
- 核心需求:关键操作(比如收益发放)需可追溯、不可抵赖
- 非功能需求:低延迟(<100ms)、高可用(99.99%)、成本可控
- 现实约束:不能动现有支付链路,两周内出MVP
最后我们决定:不上公链,也不搞私有链集群,而是用 Merkle Tree + 时间戳服务 + K8s 上的轻量签名服务。简单说,就是把关键数据哈希后存入一个中心化但防篡改的日志系统,再定期将根哈希同步到阿里云的可信时间戳服务(TSA)。
别杠!我知道这不算“正宗”区块链。但在工程世界里,能解决问题的方案才是好方案,不是吗?
实践踩坑:你以为的“简单集成”,其实是地狱副本
方案定完,开发倒是快。我用 Go 写了个轻量级的 EvidenceService,核心逻辑就几十行:
// 生成操作证据并签名
func GenerateEvidence(userID string, action string, amount float64) (*Evidence, error) {
payload := EvidencePayload{
UserID: userID,
Action: action,
Amount: amount,
Time: time.Now().Unix(),
}
// 序列化并计算SHA256
data, _ := json.Marshal(payload)
hash := sha256.Sum256(data)
// 用预置私钥签名(实际用HSM或KMS)
sig, err := sign(hash[:])
if err != nil {
return nil, err
}
return &Evidence{
Hash: hex.EncodeToString(hash[:]),
Signature: hex.EncodeToString(sig),
Timestamp: payload.Time,
}, nil
}
但上线前夜,测试同学跑来幽幽地说:“你这个服务,在K8s里Pod重启后,日志对不上了。”
我一查,好家伙——没做幂等! 同一个请求重试两次,生成了两个不同时间戳的证据。运营要是拿这个去“维权”,平台反而成了背锅侠。
赶紧加了个 Redis 去重缓存,Key 是 evidence:{userID}:{action}:{nonce},TTL 24小时。顺便在入口层加了防重放校验:
# K8s Deployment 片段
env:
- name: EVIDENCE_DEDUPE_TTL
value: "86400" # 24小时
上线那天是周五晚上9点,我和运维蹲在监控大屏前,心跳比Prometheus的QPS曲线还高。直到凌晨1点,看到 Grafana 上“证据生成成功率 99.998%”,我才敢关掉终端,默默点了份黄焖鸡——那一刻,比涨工资还爽。
效果与反思:技术探索的价值不在“新”,而在“用”
这套系统上线三个月,处理了2700万+次创作者激励操作,零纠纷、零数据争议。运营同学逢人就说“我们上了区块链”,虽然 technically 不准确,但业务目标达成了,谁在乎呢?
更重要的是,这次探索让我重新思考了“技术探索”的意义:
| 误区 | 真相 |
|---|---|
| “学新技术=刷LeetCode+看论文” | 真正的学习发生在解决具体问题时 |
| “必须用最前沿方案才叫创新” | 组合现有技术解决新问题是更高阶的能力 |
| “探索是工程师的个人行为” | 脱离业务的探索,只是自嗨 |
在快手这种高速迭代的环境里,Deadline 是最好的老师。你没时间纠结“是不是最优解”,只能快速验证、快速反馈、快速调整。这种压力下练出来的技术判断力,比任何培训班都管用。
给正在求职的朋友们一点真心话
最近帮公司面试了不少候选人,很多人简历上写着“熟悉区块链”、“精通云原生”。但一问细节:“你们用的共识算法是什么?K8s 的 HPA 是怎么调的?” 就支支吾吾。
我想说:别为了求职而堆砌关键词。面试官真正想看的,是你如何思考、如何权衡、如何在资源有限的情况下把事情做成。
如果你真对某个技术感兴趣,不妨:
- 找个小业务场景试一试(比如用 IPFS 存用户头像)
- 在 GitHub 上写个 mini 项目,哪怕只有 200 行代码
- 在团队内部做个 15 分钟的技术分享(我们组每周都有 Tech Talk)
这些经历,远比“精通XX”四个字更有说服力。
最后:技术人的浪漫,是让代码跑在真实的土地上
上周五加班到深夜,走出公司大楼,上海的晚风有点凉。我抬头看了看陆家嘴的灯火,突然想起六年前入职第一天——那时候连 K8s 是啥都不知道,现在却能在上面搭起一套“伪区块链”系统。
技术探索从来不是一场孤独的修行。它发生在你和产品经理吵架之后,发生在你被线上告警吵醒的凌晨,发生在你为了一个毫秒级优化反复压测的周末。
我们不是在追逐技术本身,而是在用技术,一点点把这个世界变得更可靠、更高效、更值得信任。
所以,别问“为什么要探索”。
当你遇到一个让你睡不着觉的问题时,答案自然就来了。
(完)
P.S. 如果你也在上海搞云原生/高并发系统,欢迎约咖啡(速溶也行)聊聊~

评论 0