B站稿件生产架构演进:从单体到微服务的挑战与实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 演讲人:匡锡斌
2.
3. 目录 01 微服务化演进 02 多活与弹性混合云 03 总结与展望
4.
5. 微服务化演进
6. 你感兴趣的视频都在 站 1亿日活 3亿月活 日均使用时长增长至99分钟 数十亿海量视频内容 日均视频播放量超48亿次 既然有消费当然就需要生产,稿件生产是B站的核心功 能之一,后端系统伴随业务发展也在不断地进行着微服 务演进。
7. • • • • • • • • • • • • 要做一个社区 要支持UP视频投稿 要批量投稿 一个稿件多个视频 多人联合投稿 互动视频 PUGC投稿 轻剪辑/专业剪辑/一键投稿 换源编辑 知识付费,课堂稿件 商业化,带货稿件、广告视频、充电视频 ... 业务模式在迭代,音视频流媒体能力在发展,体验要求 在不断提高。
8. 创作工具 发布上传 稿件生产 数据开放
9. 独立 完备 内聚 自治 横向,站在服务视角看角色定位 纵向,站在业务权责视角看边界
10. 与面向C端用户的高读场景(feed流、进房、视频详情/商详页)、高写场景(抢单、刷礼物、发弹幕) 不太一样的技术架构体系。 两种数据 1.业务数据(稿件元信息、视频元信息) 2.视频文件(存储、计算、传输) 成本 网络资源 物理硬件 稳定 存储资源 云上资源 计算资源 调度策略 效能 寻求 成本 vs 稳定 vs 效能 不可得三角的解法
11. 稿件是生产过程中的逻辑实体,视频是生产 过程中的物理对象,一个稿件对应多个视频。 Tip: 越是底层的数据模型,改动成本越大。
12. 生产流程的输入输出是围绕稿件业 务实体展开的一系列标准环节。 类比到制造业的生产过程,非常类 似制造业的MES系统 (Manufacturing Execution System)。 - 在生产过程中执行操作、捕获数据、 追踪流程、记录状态
13. 多个业务都有“生产加工”的诉求, 需要这样一套工作流,串联不同的原 子能力,要求生产流程可被调度、异 步化。 由业务共性抽象一套 ,支持业务编排、在线 处理流程、离线处理流程、流程检索。 Tip: 定制化需求 vs 平台化能力
14. CQRS将生产消费关注点分离、权责分离, 让架构与组织形态相匹配。 Tips: 表字段共享,数据模型有交集但不匹配 消息驱动模式中不要暴露元数据binlog CQRS模式数据异步传输,数据一致性问题
15. 消息丢失 消息乱序 消息堆积 MQ故障 • 可回溯,可对账,最终一致性 • partition有序,不依赖绝对有序,消息顺序标识 seq • 异常突增,lag感知,水平垂直扩容,分组并发, IO聚合,热点隔离 • 异步消费兜底转同步Notify 一站式异步事件治理平台 Railgun
16. 下钻生产效率指标,将大盘指标转化为归一化的单位指标: 这个公式可以理解为:每一秒可以生产X秒的视频内容,我们希望通过各种技术手段优化这个 效率越高越好(但是会有体验上的权衡),直至前资源能做到的边际效应边界。 Total(Duration) = sum(A+B+C+...) - Duration下钻:品类/时长/清晰度/活动 Total(Cost) = sum(CostX+CostY+CostZ+...) - Cost下钻:端到端/链路耗时/系统空转
17. 资源调度 流式切片 并行处理 Tips: 分片粒度 vs 启动任务数 多路并发 vs 多次物料拉取
18. To B业务中用户个例失败带来的损失会”压倒看上去尚健康的大盘指标” 技术指标无异常 NOT EQUAL 业务100%成功率 所有开放的稿件,是否全部进行过安全审核?有没有漏审?黑灰产稿件占比多少? 业 务 问 题 业务复杂度不断提升,一些失败行为发生在端上另一些在服务端,端到端的日常问 题排查、用户行为回溯该怎么做? 平台每天生产的稿件中,优质、大V、重要稿件的生产效率如何?有没有被block?
19. 将全局分散的【稿件事件】收集起来,就可以还原 Client端Trace生成算法+SDK API提交携带Client Trace ID和扩展字段 Server Opentracing Mapping Server Trace关联稿件AID
20. • Lancer(数据上报传输组 件)+Kafka+Flink+CK • 日5亿事件流,QPS 1W • 标准上报协议与SDK • 事件校准,容忍率 vs DQC 成本 • 冷热数据隔离,冷数据归档 • 数据应用工程
21. 耗时分位统计,效率分析,异动定位 事件丢失统计,流程中断、链路阻塞 事件段对账,捕获安全漏出风险
22. 多活与弹性混合云
23. 决策支持 • 自上而下认同 • 技术决策是政治 决策 生产力工具 • 技术基线统一 • 平台工具标准化 人员储备 合适时机 • 领域专家储备 • 降本增效环境 • 成熟稳定合作关系 • 系统稳定性投入的 ROI
24. 挑战:原片存储多活、上行带宽、存储 网关调度 挑战:存算资源、单元化部署、混合云 架构、工程改造成本
25. DCDN Invoker(流量调度平台) API Gateway Discovery(服务注册中心) Navigator(服务流量治理平 台) Service Cache MQ/Canal DB/KV
26. 南北流量管控 Invoker(流量调度平台),在CDN层控制流量到不同 IDC SLB的流量比例来切流,故障切流 & 常规演练 东西流量管控 Navigator(微服务流量治理平台),Client Routing Zone优先、染色优先、WRR、keyhash等策略 异构语言通过Sidecar Proxy劫持流量解决 Tip: 复杂的东西流量管控与验证
27. 当前处于第一阶段 RZone DB通过proxy代理流量 KV proxyless模式 Tips: proxy多一跳的超时问题排查 proxy对server的长连接数 跨Zone force master proxyless的连接保活
28. DTS(数据传输服务) DB drive cache flush by DTS binlog broadcast 异构数据源聚合转存 数据迁移增量实时数据同步 Tips: lock/incr cache 是否同步? DTS join DB or Call API? LWW Register Data Type Sync?
29. 本单元内生产和消费 消费其他所有单元消息 消息单元化是指业务在一个单元 内生产和消费,不进行跨单元生 产和消费。 Tips: 多种send/consume排列组合 更灵活的Message Routing
30. Key Action 服务多活改造与部署,切流验证 上行LB混合部署(云+IDC) 点播源站存储异构多活改造 上传场景流量切换预案编排 Tips: 流量切不干净,商业DSA 下发endpoint都需要有failover策 略
31. 云存储 哪些上云? 点播源站能力 原片上传 音视频文件读写 源站自建Luffy + BOSS(OSS) + 源站视频上云,定期迁移+GC 定制化协议 CDN回源下载 上云策略,回源策略 自建存储稳定性与成本
32. 目标:网络、存储与算力都可以弹性上云,支持可弹性调度 优势:中和自建资源、弹性资源和成本、系统可用性多方面因素考量的架构方案 挑战:更复杂的调度成本、云上资源拉起任务时延、云资源容量
33. 总结与展望
34. 复杂业务系统更加要求我们去贯彻演进式架构的思想,不要想着一蹴而就来个大重构,而是需要分 析每一个业务模块的瓶颈,找到模块更迭的契机和ROI。 回过头看轻舟已过万重山, 展望 1.多活的单元化改造落地 2.深化弹性混合云架构 3.流式转码的进一步演进,不断提升转码效率 4.微服务生命周期管理,处理好服务的关停并转
35.
36. THANK YOU 大模型正在重新定义软件 Large Language Model Is Redefining The Software

inicio - Wiki
Copyright © 2011-2025 iteam. Current version is 2.139.0. UTC+08:00, 2025-01-10 04:26
浙ICP备14020137号-1 $mapa de visitantes$