其他
用户案例 | 腾讯小视频&转码平台云原生容器化之路
李汇波,腾讯业务运维高级工程师,目前就职于TEG 云架构平台部 技术运营与质量中心,现负责微信、QQ社交类业务的视频转码运维。
摘要
服务场景
背景
建设思路和规划
平台能力建设
架构升级
老转码平台架构:
为 master/slave 主从结构,容灾能力相对较弱,而且受限 Master 性能,单集群大概管理8000台 worker。 资源调度层面不能友好区分不同核数的 worker,导致有些负载高,有些负载低。 不能够基于业务维度做频控,单业务突发影响整个集群。
新转码平台架构:
合并 Master/Access 模块为 sched,sched 调度模块分布式部署,任一节点挂了可自动剔除掉。
worker 和 sched 建立心跳并且上报自身状态和 cpu 核数等信息,便于调度根据 worker 负载来分配任务,保障同一个集群部署不同规格 cpu worker 负载均衡。
单集群管理能力 3w+ worker,满足节假日业务突增。
业务合并到公共大集群,可对单业务进行频控,减少业务直接的干扰。
接入服务 svpapi 升级 DevOps 2.0
整合原有多变更系统、多监控系统、多基础资源管理系统到智研统一入口,具体包括研发测试、日常版本发布、资源弹性扩缩容、业务监控告警、业务日志检索分析。通过 CICD 流程屏蔽直接对 TKEStack 操作,安全性更好。
模块配置区分使用场景托管于七彩石,并支持1分钟级业务开关切换,支持节假日期间灵活的流量调度和业务流控频控。
下半年接入服务计划利用智研监控集群流量水平,结合 TKEStack 根据流量 HPA 能力,实践资源扩容无人值守能力。
资源管理建设
梳理出 TKE 不同集群下容器配置
# 不同cpu规格适配不同环境变量
- name: MTS_DOCKER_CPU_CORE_NUM
value: "16"
- name: MTS_DOCKER_MEM_SIZE
value: "16"
# 算力平台亲和性设置,当负载超过70%,则驱逐该pod
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: max_vm_steal
operator: Lt
values:
- "70"
资源调度均衡
基于不同规格 CPU 机器 worker 性能,均衡分配任务。 根据不同 worker 版本进行调度,支持小业务快速版本迭代。
运营系统建设
进程监控
资源利用优化
弹性扩缩容
成果小结
业务累计接入微信朋友圈、视频号、c2c、公众号、看一看、广告、QQ 空间等内部视频业务,每天视频转码处理1亿+。
日常保持在70%左右 CPU 利用率,根据负载自动弹性扩缩容,业务成熟度显著提高。
互动赢好礼
精读文章,回答问题赢好礼
Q1:对于不同CPU规格,资源调度怎样均衡使用并保证转码速度呢?
Q2:上万工作台节点怎么快速变更部署?11月18日上午11点,由作者选出回答最佳的3位读者,送腾讯定制T恤一件。
往期精选推荐