VR创业三年闭环:后端实习生亲历的7个技术决策
|
去年一月份,总编把第七版架构图拍在会议桌上,纸边卷着毛刺。我盯着那张图右下角手写的“兼容WebGL2.0”看了十八分钟,没动。旁边李工的笔滚到地上,滚到桌腿缝里,卡住了,没人弯腰捡。 我原以为他们真要推那个“VR空间实时拓扑同步协议”,结果下午三点零七分,运营组甩来一份用户埋点热力图——93%的DAU连登录页都卡在WebXR handshake超时那步。协议?删了。连文档目录都从GitLab里rm -rf掉了,只剩个空文件夹叫“/docs/vr-sync-legacy”。 选题会上王主编翻白眼的时候,我正咬开一根冷掉的肉松小贝,渣子掉在键盘F键上。她敲了三下桌面:“你这实习生,写过几个微服务熔断策略?”我没接,因为刚在Prometheus里看到一个Pod重启了四百一十二次,标签还写着“env=prod”。但谁都没提。外卖盒堆在茶水间窗台,两份凉了,三份拆都没拆,其中一份是清汤面,浮着一层凝固的油花。 第二个技术决策是换数据库。不是性能扛不住,是MongoDB的$facet在聚合百万级眼球轨迹数据时,CPU spike像心电图打了个结。我们切PostgreSQL,但只换了主库,缓存层还留着Redis Cluster——现在查眼动序列延迟不稳,有时候12ms,有时候287ms,查不出原因。前天运维老赵蹲在机柜前盯OSS日志,忽然说:“你们是不是忘了配redis-cluster的maxmemory-policy?”没人答,因为没人记得配置过。隔壁工位的咖啡洒了,他抬脚躲,拖鞋带断了,就那么趿拉着继续看屏幕。 第三个是放弃自研渲染管线调度器。团队花了三个月写状态机、做GPU帧提交队列优先级分级、加心跳探针……上线当天,iOS端WebXR fallback直接绕过它走了Safari原生WebGL路径。调度器根本没被调用。但它还在跑,作为独立Sidecar挂载在每个VR会话Pod里,吃0.3核CPU,吐一堆“state=skipped”日志。这个我敢打包票——我亲手grep过三百七十二稿日志,全一样。可它为什么还活着?因为没人敢删,怕哪天“备用链路”真要用上。反正资源够,够得发慌。 第四个,API网关换Kong不是因为性能,是因为Nginx Ingress Controller配TLS重定向总丢header,而且丢得毫无规律:有时候Accept-Language没了,有时候X-VR-Session-ID突然变成null,有时候干脆整个请求体变空字节流。Kong也出过bug——有回JWT鉴权插件在并发压测下把exp字段错读成1970年,但至少它报错,而Nginx只是静默吞掉。这就够了。足够让总编在周会上点头,够让我在部署单上签字,够让那个写了三百行Lua重写规则的实习生今天转正失败。 第五个决策最扯:把所有设备注册逻辑塞进一个Lambda函数里,冷启动时拉DynamoDB再推到SQS。美其名曰“无服务器解耦”,结果第一次大促凌晨三点,Lambda执行超时六百多次,设备注册率跌到42%,客服电话响成一片。我查了十分钟云监控,发现是DynamoDB的Provisioned Throughput配错了单位——写成了KB/s而不是request/s。改完之后恢复得比故障发生还快。这个我说不准,因为改完不到两分钟,值班群消息刷屏,没人截图,也没人复盘。后来听说财务那边在算上个月AWS账单,光这函数冷启动费用占了EC2的七成。 第六个……算了,第六个是啥来着?哦对,前端同事上周在钉钉群里艾特我问“webxr.session.id怎么在后端验签”,我回了个“你们先走JWT”,然后发现我们压根没存过session.id——它是一次性生成的,连进不了我们鉴权链。所以现在所有“设备绑定”操作都靠前端瞎传一个base64字符串糊弄,后端decode一下就算校验通过。反正没人真去扫二维码确认绑定关系。扫码?先点开App,等加载圈转三圈,再等手机摄像头对准投影画面里的动态二维码,等识别框抖三下,弹出“绑定成功”,其实后端连log都没打。我就看着它弹出来,又弹出来,又弹出来。 第七个,也是最后一个:把整个用户画像系统从实时Flink作业回滚到批处理Spark。不是延迟不能忍,是Flink的Checkpoint失败率太高,尤其当VR设备频繁休眠唤醒时,状态后端Consul集群就掉一次leader,整个任务挂半分钟,下游推荐引擎就喂假数据。Spark慢,但稳,慢得让人踏实。报表凌晨两点准时跑完,数据误差稳定在±5%以内。运营说这误差比他们自己估算的转化率还准。这话听着像夸,其实是个警告——你别碰它,它就在那儿,脏但可用。 VR创业三年闭环?闭环是假的。真闭的是嘴,是PRD,是周报最后一栏“风险项”。优胜劣汰?淘汰的不是技术,是人。那个写Flink状态恢复逻辑的博士,走的时候U盘忘拔了,里面还有没push的branch,叫“feature/adaptive-checkpoint-v2”。没人敢merge,怕触发什么连锁问题。现在U盘锁在行政柜子里,和两箱过期的VR眼镜盒子放一起。
文章配图,仅供参考 昨天人力喊我去签试用期续签表,墨水有点干,我划了三道才写出名字。总编路过,问:“那个WebSocket心跳优化搞定了没?”我说:“搞定了,加了双保活。”他嗯了一声就走了。其实没加,我改成每30秒ping一次,客户端超时阈值设成45秒——这数字是我猜的,但线上跑两周没告警。所以它就是对的。 下次选题会我打算闭嘴。或者带个保温杯,泡浓茶,看谁说话就盯着杯口那圈水渍慢慢散开——反正技术决策从来不在会议室里发生,它发生在凌晨两点的kubectl describe pod日志里,在没人看的CloudWatch报警抑制规则里,在实习生误删的configmap备份里,在王主编翻白眼时我嘴里还没嚼完的那块肉松小贝里。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


无障碍创业三难破局:用技术提效降本
创业三年未起色?我用科技赋能跨界资源,3个月跑通盈利模型
创业技术合规避坑指南:政策、数据与安全红线
创业公司后端架构生死线:政策、数据、安全三位一体
VR工程师视域下媒体融合重塑传播规则
私域是服务型创业的终身客户操作系统
创业者三重门:流量破局、合规筑基、运营提效


