作者

刘兆瑞,腾讯云高级研发工程师,负责腾讯明眸极速高清,画质重生等产品。专注于codec优化,画质增强等技术。

背景和问题

随着流量资费的降低和带宽的增加,视频成为人们获取信息越来越重要的方式,随之而来的是云点播、视频处理等视频相关业务的飞速发展,而视频转码平台作为云点播、视频处理的基础产品,面临着高并发、高 SLA、高压缩率等等多样的需求,面临着极大的挑战。

对于一般流程来说,我们面临着下面几个挑战和诉求:

  1. 不同的转码产品对核心数的需求不同,比如:极速高清、延时敏感的业务,需要大核心来保证复杂运算的稳定性,普通转码则可以用小核心来替代。分布式转码中的合并和切片服务则对 IO 性能,硬盘大小比较关注。
  2. 转码业务对 avx 指令集的利用率很高,因此通用 CPU 算力往往并不会成为瓶颈,avx 指令集的计算频率则成为转码业务的关注重点。而集群内 CPU 型号往往是多样的,因此合理的选择 CPU 型号对于转码业务非常重要,TKE 扩展 pod 时候需要能够选择 CPU 型号。
  3. 短期、高并发需求多:客户会用我们的能力实现不同的玩法,比如:客户需要对其全站的视频进行极速高清压缩或者画质增强,这里短期内需要能够获取到巨大的资源,并在使用过后能够快速退回节省成本。
  4. 模型、服务迭代快:云服务厂商间的竞争非常激烈,经常会有客户提出新的需求,pod 能够支持快速、无损的更新迭代版本。

容器化 & 全量上云记录

容器化

这里的容器化过程,主要包括对业务的服务流程梳理,整体的发布流程规范化:

业务不同性能机型申请

迁移 TKE 之前,物理机的型号往往是固定的,固定 CPU 核数、内存、硬盘容量的搭配,而这些对于指定业务来说往往会造成资源的浪费,无法充分利用所有的资源。比如:转码业务关心 CPU 性能,对于内存的利用则很低,而物理机 48C 的机型往往搭配 64G 内存,造成一定程度的内存浪费。

迁移 TKE 之后,根据不同的业务模型场景,可以精确的分配业务所需要的 CPU、内存、硬盘资源,充分利用起每一项资源。

CPU 型号限制

转码业务对 avx 指令集的利用率很高,而很多型号的 CPU 虽然通用计算频率高,但是指令集被限频了,这种型号的 CPU 虽然核数多,但是编码效率很低。因此业务进行 pod 扩展时,希望能够规避剔除掉某些型号的 CPU。

为了解决这一问题,TKE 支持了 CPU 亲和性配置,配置如下:

快速扩缩容

转码业务虽然是离线业务,但是重点客户对 SLA 还是有很高的要求。需要能更快速扩缩容,满足客户动态需求。

面对这种突发的请求,TKE 可以通过动态的扩缩容满足需求,同时业务流量突发结束后,也可以快速缩容来降低使用成本。

当然,动态扩缩容也会带来额外的挑战。对于转码业务来说,很多任务都是长时任务,不能中断的。比如:个100+小时的视频转码,已经转了50小时+,不能因为扩缩容而中断任务,重新转码。针对这种场景,TKE 也给出了很好的解决方案,可以通过删除保护完美支持这一诉求。

业务快速更新上线

云端转码服务多个云上基础产品,大量公司内外客户,需求和发布节奏都很快,每周都会有新的版本升级变更。因此能够支持快速发布,是业务的强诉求。同时,发布不能中断业务正在处理的任务,针对这一情况,TKE支持了原地升级选项,升级 POD 业务代码,不需要销毁重建 runtime 运行中容器,支持服务运行中实现热更新。

lxcfs & 固定 IP 助力任务精准调度

转码的业务与通用的业务请求不同,在开始转码前是无法预知当前转码请求的资源消耗量的。比如:游戏直播视频和课堂教育视频,资源的消耗量会相差一个量级。因此转码任务的调度是依赖转码机主动上报当前任务数和每个任务的负载情况,由调度根据当前的实际负载情况来分发新的任务请求。

然而,通用的 pod 内进行 ps 等操作获取的是母机的负载信息,而不是当前 pod 的实际负载信息,这样会导致调度失衡。为了解决这一问题,TKE 支持 lxcfs 配置,通过 lxcfs 可以精准获取当前 pod 的实际负载信息。

面对上面的场景,另一个问题是如果每次 POD 重建过程都会重新申请 IP,那无疑会对调度的 IP 管理造成额外的负担。针对这种情况,TKE 也支持了固定 IP,IP 保留等能力。

上线成果

视频云离线转码服务,CPU 平均利用率50%+。峰值利用率80%+. 同时,动态的扩缩容和快速上线的支持,都有效的为业务需求和流量突发保障护航。

关于我们

更多关于云原生的案例和知识,可关注同名【腾讯云原生】公众号~

福利:

   ①公众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~②公众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

峰值利用率80%+,视频云离线转码自研上云TKE实践相关推荐

  1. 云小课|VMware备份上云学习专列来了,快加入吧~

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:华为云云备份CBR ...

  2. 华为云PaaS梳理了客户可能上云的三类场景和七种解决方案

    1.华为云PaaS梳理了客户可能上云的三类场景和七种解决方案,逐一递进: 2.三类场景: 1)传统行业IT系统云化: 2)应用SaaS化: 3)轻资产敏捷创新 七种解决方案: 1)应用零改造上云方案: ...

  3. 云小课 | 华为云KYON:网段零修改上云,简单又好用

    摘要:KYON(Keep Your Own Network)是华为云推出的企业级云网络解决方案,KYON能让用户直接将IDC组网搬到云上,网段零修改,简单又好用. 本文分享自华为云社区<[云小课 ...

  4. 上过云么?一行代码秒上云体验过么?

    摘要:想要一行代码秒上云,工具自然少不了,这里推荐使用华为云弹性云服务器ECS搭配华为云DevCloud. 年底很多项目都忙着验收回款,验收回款的意义有多重大--成了,项目组发奖金:不成,别说奖金,明 ...

  5. 亚马逊云科技发布“云拓计划”赋能企业加速上云及数字化转型

    亚马逊云科技"云拓计划(SkillsGuild)"于1月11日正式发布.该项目是一个旨在帮助客户的员工提升云技能.加速企业上云的赋能计划.它通过为企业量身定制综合性云技能提升方案, ...

  6. 上云 企业 过程_企业上云有什么好处?该怎么上云?附操作步骤

    "工业互联网"作为新基建的细分领域之一,不仅被市场广泛关注,更在高层中被着重点名.先有国务院常务会议指出,发展数字经济新业态,依托工业互联网促进传统产业加快上线上云.后有工业和信息 ...

  7. 【解决方案】RTSP/Onvif安防视频直播解决方案EasyNVR在某省高速上云项目中的应用分析

    一.背景分析 经过多年的努力,我国高速公路网已基本形成,视频监控系统的实际应用也取得了长足的进步,片区监控系统已遍布全国各主要高速路段,初步形成了高速公路视频监控的基础网络. 然而,各片区监控中心之间 ...

  8. 网络穿透设备EasyNTS上云网关如何结合智慧工地上云平台实现视频监控的多终端观看?

    建筑工地管理是日前城市建设快速发展中,城市管理突出的问题.各地工地数量较多,管理人员人均管理多个工地,同时涉及到多个单位的问题.如何搞好施工现场管理,控制事故发生频率,一直是施工企业.质监等管理部门关 ...

  9. 来一次彻底的云化 | 中国石化河南石油分公司上云经验分享

    一个企业为什么会义无反顾地 采用虚拟化.云计算.大数据等新技术? 难道他们就不怕因为第一个"吃螃蟹"而冒风险吗? 一个决定性的因素是, 新技术确实能够消除企业的业务痛点, 而权衡利 ...

  10. 云原生架构演进与企业上云

    点击上方蓝色字体,选择"设为星标" 优质文章,及时送达 过去的一段时间和一些架构师 / 技术负责人聊天,云原生和企业上云是最近一段架构演进的一个常见话题,那么小公司到大型公司在上云 ...

最新文章

  1. 使用masonry布局旋转View的问题
  2. php生成gz文件,如何使用PHP创建.gz文件?
  3. Elasticsearch: too many open files
  4. LeetCode Algorithm 1. 两数之和
  5. 现代程序设计 作业6 - 简单而有意义的题目
  6. 关于开发入门的一些事儿
  7. GaussDB分布式Stream执行计划详解
  8. Pi3 中文环境以及输入法
  9. Mysql 导出表结构或数据
  10. RMAN传输表空间迁移数据
  11. [摘]广义企业级PDM系统下的PPM(工艺规划管理)
  12. 出租车捧红嘀嗒?这个似乎是一个谎言
  13. 吉他(guitar)
  14. 详细理解HashMap数据结构,太齐全了!
  15. smil_SMIL简介-鞋串上的多媒体演示
  16. 普元mobile_普元Primeton Mobile 7.1发布
  17. 因特网是全球范围内的什么是计算机网络,因特网
  18. 盘点3个.Net开发的WMS仓库管理系统
  19. 写一个网站文案,是关于人工智能的,要求高大上,让不了解人工智能的人也能轻松了解什么是人工智能,...
  20. CPUID获取本机CPU信息

热门文章

  1. 【数据结构Python描述】跳跃表简介及使用跳跃表实现有序映射
  2. html 图片加载 占位,css实现图片未加载完成时占位显示
  3. Data Path Manager(DPM)-数据路径管理
  4. Android xml 画上半圆 矩形,Android 半圆矩形的实现
  5. Java8 新特性之流式数据处理
  6. 前后端分离是什么意思?
  7. 共享经济思考:标准化与个性化如何融合
  8. 腾讯WeTestTesterHome深圳线下沙龙
  9. PAT 1034 有理数四则运算 python
  10. Hadoop官网查看手册