1、演讲人:匡锡斌目 录01微服务化演进02多活与弹性混合云03总结与展望微服务化演进你感兴趣的视频都在 站1亿日活 3亿月活日均使用时长增长至99分钟数十亿海量视频内容日均视频播放量超48亿次既然有消费当然就需要生产,稿件生产是B站的核心功能之一,后端系统伴随业务发展也在不断地进行着微服务演进。要做一个社区要支持UP视频投稿要批量投稿一个稿件多个视频多人联合投稿互动视频PUGC投稿轻剪辑/专业剪辑/一键投稿换源编辑知识付费,课堂稿件商业化,带货稿件、广告视频、充电视频.业务模式在迭代,音视频流媒体能力在发展,体验要求在不断提高。创作工具发布上传稿件生产数据开放横向,站在服务视角看角色定位纵向,站
2、在业务权责视角看边界独立内聚完备自治与面向C端用户的高读场景(feed流、进房、视频详情/商详页)、高写场景(抢单、刷礼物、发弹幕)不太一样的技术架构体系。成本稳定效能寻求 成本 vs 稳定 vs 效能 不可得三角的解法网络资源存储资源计算资源物理硬件云上资源调度策略两种数据1.业务数据(稿件元信息、视频元信息)2.视频文件(存储、计算、传输)稿件是生产过程中的逻辑实体,视频是生产过程中的物理对象,一个稿件对应多个视频。Tip:越是底层的数据模型,改动成本越大。生产流程的输入输出是围绕稿件业务实体展开的一系列标准环节。类比到制造业的生产过程,非常类似制造业的MES系统(Manufacturin
3、g Execution System)。-在生产过程中执行操作、捕获数据、追踪流程、记录状态多个业务都有“生产加工”的诉求,需要这样一套工作流,串联不同的原子能力,要求生产流程可被调度、异步化。由业务共性抽象一套,支持业务编排、在线处理流程、离线处理流程、流程检索。Tip:定制化需求 vs 平台化能力CQRS将生产消费关注点分离、权责分离,让架构与组织形态相匹配。表字段共享,数据模型有交集但不匹配消息驱动模式中不要暴露元数据binlogCQRS模式数据异步传输,数据一致性问题Tips:可回溯,可对账,最终一致性消息丢失 partition有序,不依赖绝对有序,消息顺序标识seq消息乱序 异常突
4、增,lag感知,水平垂直扩容,分组并发,IO聚合,热点隔离消息堆积 异步消费兜底转同步NotifyMQ故障一站式异步事件治理平台Railgun下钻生产效率指标,将大盘指标转化为归一化的单位指标:这个公式可以理解为:每一秒可以生产X秒的视频内容,我们希望通过各种技术手段优化这个效率越高越好(但是会有体验上的权衡),直至前资源能做到的边际效应边界。Total(Duration)=sum(A+B+C+.)-Duration下钻:品类/时长/清晰度/活动Total(Cost)=sum(CostX+CostY+CostZ+.)-Cost下钻:端到端/链路耗时/系统空转流式切片并行处理资源调度Tips:分
5、片粒度 vs 启动任务数多路并发 vs 多次物料拉取To B业务中用户个例失败带来的损失会”压倒看上去尚健康的大盘指标”技术指标无异常 NOT EQUAL 业务100%成功率业务问题平台每天生产的稿件中,优质、大V、重要稿件的生产效率如何?有没有被block?业务复杂度不断提升,一些失败行为发生在端上另一些在服务端,端到端的日常问题排查、用户行为回溯该怎么做?所有开放的稿件,是否全部进行过安全审核?有没有漏审?黑灰产稿件占比多少?将全局分散的【稿件事件】收集起来,就可以还原Client端Trace生成算法+SDKAPI提交携带Client Trace ID和扩展字段Server Opentra
6、cing MappingServer Trace关联稿件AIDLancer(数据上报传输组件)+Kafka+Flink+CK日5亿事件流,QPS 1W标准上报协议与SDK事件校准,容忍率 vs DQC成本冷热数据隔离,冷数据归档数据应用工程耗时分位统计,效率分析,异动定位事件丢失统计,流程中断、链路阻塞事件段对账,捕获安全漏出风险多活与弹性混合云决策支持生产力工具人员储备合适时机自上而下认同技术决策是政治决策技术基线统一平台工具标准化领域专家储备成熟稳定合作关系降本增效环境系统稳定性投入的ROI挑战:原片存储多活、