edge-render-tech

边缘渲染技术

背景和目标

背景

3D rendering is the 3D computer graphics process of converting 3D models into 2D images on a computer. 3D renders may include photorealistic effects or non-photorealistic styles. – Wikipedia

边缘渲染农场是边缘计算团队提供的在离线渲染服务平台,利用边缘计算海量全网分布的计算资源为客户提供分布式渲染能力。

为什么要做边缘渲染?

  • 对内

    • 动画制作
    • GAN数据生产
    • 视频广告模板化
    • 3D化交互展现需求
  • 对外

    • 政策扶持

      • 边缘计算基建
      • 元宇宙进入政府规划
    • 经济发展

      • 后疫情经济复苏
    • 社会需求

      • 二次元、短视频等培养的新生代群体占比提升
      • 疫情带来的线下转线上习惯变化
    • 技术演进

      • 5G,ICT融合
      • Unreal Engine 5,实时效果提升

该平台从2020年12月开始正式对内提供渲染能力服务,主要服务于智创、教育线、广告创意等多个内部团队,先后也迭代了四个大版本。目前已经初步具备对外提供服务的能力,因此自2021年9月开始正式启动ToB计划。

随着渲染业务的发展,我们慢慢体会到原先的设计并不能满足后续产品需求,所以重新反思是否有更好技术方案应对我们多样的需求。

目的:从技术角度构建一套适合渲染业务的能力体系。拥有端到端的渲染解决方案输出能力。

目标

构建一套功能健壮、系统稳定、运行高效、配置灵活的边缘渲染系统;

  1. 抽象基础能力,同时满足在离线与实时的渲染场景,降低重复建设成本;
  2. 解耦算力资源,支持多种IaaS虚机和容器类资源,统一流程;
  3. 完善配套服务,补全链路上缺失的能力和组件;
  4. 运维运营白屏化,提高OPS的实用性;

潜在客户

源于需求

渲染需求

如上图所示,边缘渲染业务是基于边缘算力衍生出的各类需求。从整个CG的生命周期而言,基本可以分为【制作】和【分发】和两个部分。制作是指设计师通过各种设计软件完成效果制作的过程;分发是指制作好的内容触达最终用户的过程。并不是所有的场景在这两个生命周期都需要算力资源,比如动画电影制作的过程中需要用到渲染算力,但是电影制作好以后分发则基本用不上算力资源。

通俗来讲,算力只有在静态内容的制作和动态内容的分发上才是必须的。这里的动态和静态并不是指画面会不会animate,而是内容本身是固定的还是不固定的。

有些客户同时需要制作和分发的能力,这些场景需要根据客户具体需求进行定制,我们可以提供打包的解决方案。

需求

功能场景

image-20220209171419107

  • 设计师作为制作过程中对我们需求量最大的用户,可以使用我们的农场客户端发起离线渲染的任务,也可以使用云制作软件、资产库、流程管理系统等制作协同系统完成自己的制作过程。同时制作团队的Pipeline TD可以根据农场SDK为团队集成边缘渲染农场,降低设计师的操作复杂度。提高制作团队整体的产出效率和质量。
  • 实时渲染软件的工程师可以在云渲染平台提交渲染程序,平台会根据用户的配置将程序分发到合适的节点环境中运行,并以SDK/URL的方式查看和调用自己的渲染程序。对于实时用户而言,拿到经用户使用实时SDK封装后的应用程序或者网页,可以和在平台上提交的实时渲染程序进行交互。同时,平台还提供丰富的应用管理和统计监控能力。
  • 客户的管理员可以在火山的用户控制台完成购买、查询统计、对账等操作。
  • 边缘渲染的运营根据客户需求在OPS完成客户管理、权益配置、资源分配,也可以完成收支分析等操作。

需求拆解

VeRender

历史版本演进

渲染农场MVP版本 - 小作坊

**关键字:**满足需求;自动化程度高

解决方案:

image-20220211204753600

  • 使用wayne改造的WEB平台,带权限管理/资产管理/任务管理三大模块
  • 使用k8s的CRD做数据存储
  • avatar-server作为后台服务部署在某台物理机上,集群kube-config文件保存在本地磁盘
  • 每个边缘节点是一个k8s集群,avatar-server创建batch-job生成渲染任务
  • 用户的资产文件和渲染结果文件都保存在中心的TOS服务上;

渲染农场上云 - 拥抱字节云服务

**关键字:**基础演进;工程优化;融合字节云服务

解决方案:

image-20220214101852109

  • 接入:FE介入,重新设计WEB;新增OpenAPI,允许外部使用SDK访问渲染农场;
  • 存储:使用RDB代替CRD,提升性能;
  • 服务:微服务化改造,融合字节云服务,降本增效;
  • 新增win10定制化渲染能力,新增SG集群等;
  • 使用边缘RSM代替本地磁盘管理集群;

渲染农场上火山 - ToB商业化

**关键字:**适配火山;精简能力

解决方案:

image-20220214105355263

  • 新增控制台,用户后台管理农场;
  • 使用本地客户端代替WEB平台,提升用户体验;OpenAPI暂时下线;
  • 账户、订单、交易、权限、API接入对接火山各服务;
  • 暂时剥离内部业务功能;
  • 使用节点内JFS存储代替中心化的TOS存储;

技术方案

功能

image-20220210131937200

工程架构

image-20220208213954928

集群管理

image-20220211202639859

边缘渲染目前线上大约涉及10个集群,6个边缘节点。我们会以物理机的形式持有这些机器,然后由SRE同学手动搭建k8s集群。

这些由SRE同学手动维护的集群将利用容器团队的托管k8s产品能力完成k8s运维,图中绿色部分,这些是渲染的算力固定成本。另一部分,则是由容器和虚机团队提供的浮动算力,利用OpenAPI动态创建出虚机和容器的CCE环境,执行渲染任务,图中红色部分。所以,对于一个具体的渲染边缘节点而言,它的算力和成本是弹性的,可以按需扩缩容(有概率失败)。该工作由CPS完成,ACM进行管控。

边缘渲染有时需要动态创建边缘渲染节点以承接相应需求,比如有地域限制的任务、已有节点空闲算力不足,我们称之为 Elastic DYCE Node 。如果该渲染节点与现有的含CPS的集群在同一高速内网中,则集群交由该CPS管理;否则会创建一套专门的管理服务做资源管理和任务追中。

系统架构

image-20220210131003905

交互流程

image-20220214114440292

登录鉴权

image

部署

概览

参考 集群管理 部分

许可证授权服务

image-20220210140533834

节点存储

image-20220210141123096

扩展资料:

https://m.21jingji.com/article/20220112/herald/ce5353dab94ebb24bb709891ddb03626.html https://bytedance.feishu.cn/docs/doccn7kbFWodX3idpxZhClTP0Md