关于serverless:当-Rokid-遇上函数计算

6次阅读

共计 4458 个字符,预计需要花费 12 分钟才能阅读完成。

作者|王彬(阿里云解决方案架构师)、姚兰天(Rokid 技术专家)、聂大鹏(阿里云高级技术专家)

公司背景和业务

Rokid 创建于 2014 年,是一家专一于人机交互技术的产品平台公司。Rokid 通过语音辨认、自然语言解决、计算机视觉、光学显示、芯片平台、硬件设计等多畛域钻研,将前沿的 Al 和 AR 技术与行业利用相结合,为不同垂直畛域的客户提供全栈式解决方案,无效晋升用户体验、助力企业增效、赋能公共安全,其 Al、AR 产品已在寰球八十余个国家和地区投入使用。
Rokid Air Pro 这款 AR 眼镜产品,为旅游景点,大型企业,国内科研机构都提供了服务反对。目前 Rokid 已和全国百余家博物馆和景区达成单干,给游客穿越时空,身临其境的不凡参观体验。

架构变革的必要性

Rokid 在 AR 的钻研能够追溯到公司创建之初,在 2012 年 Google Glass 横空出世,其广大的设想空间深深震撼了 Rokid 开创团队。前面尽管因为应用的场景和高额的价格起因,Google Glass 并没有继续的火爆遍及。但能够预计在不久的未来,随着基础设施,生态利用的成熟,和人们继续晋升的对娱乐,办公的体验要求,AR 技术肯定会失去更宽泛的利用。
Rokid 在数字文化畛域,围绕展陈导览解决方案,次要造成了三维建图,场景创作,场景体验三个业务模块,每个模块都有不同的后盾平台撑持。

  1. 三维建图:制作展陈导览的第一步是取景,通过设施获取场地的实在布景,而后通过算法解决,进行三维建模,之后能够通过创作器进行下一步的内容创作。
  2. 场景创作:在三维建模生成的视频流上创作,通过 Web3D 渲染引擎,将创作内容与场景紧密结合,联合硬件设施,在 AR 设施应用时,造成一体化的体验成果。
  3. 场景体验:AR 设施在应用时,依据定位服务,锚定在场景中的地位,依据地位的不同会显示不同的空间内容,达到扩大事实场景的成果。

整体的产品架构图如下:

三维建图,场景创作,场景体验三个场景都波及到了的图像处理,须要大量的 GPU 资源。其中三维建图属于离线工作,在构建展陈模型时,须要将整个展陈场合的视频内容进行预处理,是三个场景中耗费算力最大的局部;场景创作须要配合创作软件,GPU 资源次要来自开发机器;场景体验在设施实在运行时提供实时服务,次要性能是定位服务,对服务的实时性要求很高。
为了撑持 GPU 算力的需要,Rokid 在开发的初期就决定尽可能的应用云资源承载,充分利用云计算的红利。最后是购买了 ECS 的 GPU 机型,用于业务的开发和测试。这里很大的问题是在三维建图时,个别都会一次性采集展陈环境的所有场景材料,视频量微小,通过 ECS 串行解决须要工夫很长,一个 1 小时的视频材料,通过一台 ECS GPU 机器须要解决 3 小时左右。Rokid 做的第一步是并行化,通过拆分 CPU 和 GPU 解决逻辑和优化工作编排形式,尽可能的让能够并发解决的局部拉起更多的资源加大并发量,通过这一系列的优化,视频的解决工夫失去了不错的晋升。
在并发资源方面,Rokid 抉择的 GPU 计算资源是 ECI,绝对 ECS,ECI 可选的资源粒度更加多样,特地是在小规格的抉择上,对于切分的小块视频,通过并发的应用小规格 ECI 实例并行处理,大大缩短了整体视频的解决工夫。为此,Rokid 外部平台还开发了一套针对阿里云 ECI 资源的调度模块,不便外部疾速的申请和偿还 ECI 资源。
通过对 ECI 资源的灵便应用,在保障高峰期工作解决并发度的同时,也保障了算力老本的可控,应用流程上失去了初步的优化。然而通过一段时间的应用,发现还是有很多的不足之处,次要问题总结如下:

  1. ECI 资源的申请和开释都依附应用人员被动操作,有时在应用结束后会遗记及时开释资源,导致资源闲置节约。且开发和保护 ECI 的调度程序也须要占据对应同学肯定的精力,带来了一些额定的运维工作。
  2. 三维建模的工作通过拆分后,分成了好几个步骤,每个步骤的工作都须要异步执行,须要一个零碎维持工作的调用关系,在上一个步骤实现后,拉起下一个步骤的工作持续运行。
  3. 在运行过程中,会存在异常情况,排查下来,有时是因为申请的计算资源规格过小导致计算负载较高,有时是存储异样或存储空间写满,还有些状况是程序自身性能瓶颈。对于程序的整体监控不足,使得呈现问题时不能第一工夫发现,发现有异样排查过程不够直观,须要通过多种工具获取运行指标剖析。
  4. GPU 算力在云上规模无限,在高峰期会偶然存在 ECI 资源弹不出的状况,影响开发效率。

为了解决下面问题,Rokid 外部架构组寻求优化已有的架构,针对第 2 点,Rokid 自行保护了一个总的调度零碎,进行工作编排;针对第 3 点,通过阿里云 Arms Tracing,Promethues,Grafana 等组件的引入,联合 ECI 硬件指标,对立收集到 SLS,造成对立的监控报表,再配以监控指标的告警,也可能初步的满足 Rokid 应用需要。但第 1 点和第 4 点,很难通过减少云产品或者外部应用程序解决。为此 Rokid 架构组开始寻找云上新的产品,以求彻底的解决应用过程中的痛点问题。此时,Serverless 架构的函数计算呈现在了 Rokid 架构师的视线,通过一段时间的调研应用,函数计算的各项能力都可能很好的满足 Rokid 应用场景。

函数计算的呈现恰逢其时

函数计算是事件驱动的全托管计算服务。应用函数计算,客户无需洽购与治理服务器等基础设施,只需编写并上传代码或镜像。函数计算会筹备好计算资源,弹性地、牢靠地运行工作,并提供日志查问、性能监控和报警等性能。函数计算提供 CPU,GPU 的算力,秒级计费,客户只须要为理论资源应用付费。资源弹性可依据定时,申请量等指标主动伸缩,无需保护调度,负载,重试,异步回调等组件,提供了开箱即用,用完即走,按量付费的极致 Serverless 能力。函数计算 GPU 架构如下:

底层依靠阿里云的大计算池,提供近乎有限的计算资源,通过阿里云的 cGPU 技术,可将单卡 GPU 资源切分成多种更小粒度的资源规格。客户在函数计算抉择 GPU 规格创立函数,在有申请时,函数计算会实时从预热资源池获取资源,配合对应的镜像程序,启动客户函数,启动结束后对外提供服务。
函数计算在第一次运行实例时会波及到资源的拉起,弹性交付工夫在 1s(热启动)~20s(冷启动)。Rokid 的三维建图场景是离线工作,单个视频的解决工夫也在分钟级,对于秒级别的启动时延齐全能够承受。
在三维建图工作接入函数计算后,Rokid 不再须要手动申请 ECI 资源,在应用完结之后也不须要在手动开释。函数计算会依据申请流量,动静的拉起与申请量匹配的后端 GPU 算力资源,在申请解决完结后,一段时间没有新申请的状况下,主动开释资源;整个三维建模在拆分后波及好几个步骤,每个步骤都是异步执行,通过函数计算的异步零碎,在一个步骤的工作实现后,能够主动触发下一个工作;函数计算控制台内置了指标监控,异样告警,链路追踪,调用日志,异步配置的性能,能够满足 Rokid 从开发,运行监控到运维全函数生命周期的性能需要;函数计算底层依靠阿里云大计算池,加上预热和资源评估的后端算法,能够最大水平的保障资源供应;这几点正是 Rokid 之前遇到的痛点问题,通过接入函数计算繁多的产品,就解决了 Rokid 近乎全副的次要问题。
接入函数计算后,Rokid 的云产品技术架构如下:

函数计算资源利用率监控图如下,从监控图能够看出,在有工作进入时,GPU 计算利用率能够达到 60% 甚至靠近 100%。

体验与架构的斗争

Serverless 理念的函数计算的确给 Rokid 带了很多的便当,在高峰期资源的扩展性和老本节约方面都做到了以后云产品的极致,但函数计算也并非万能,对于 Rokid 的场景体验性能,也就是须要实时提供定位服务的模块,函数计算还是存在了肯定的问题。
函数计算在第一次拉起实例资源时,会存在 1s(热启动)~20s(冷启动)的启动工夫,这个工夫对于实时定位服务模块是不可承受的,实时定位是在使用者身处展陈场地时,AR 设施通过实时定位,获取空间地位的 AR 拓展信息,接口响应的工夫对客户的体验十分重要,定位申请须要在 1s 以内返回。
在老本和服务质量之间,Rokid 抉择了服务质量优先,场景体验模块采纳 ECI 部署,通过每天的定时工作,在高峰期提前弹出更多的 ECI 实例,在低峰期时,保留大量的 ECI 实例,以此达到体验和老本的均衡。
另一方面,函数计算在实时的场景也并非齐全没有解决方案。目前 GPU 的模型个别都很大,镜像都在 G 级别,所以对于第一次资源拉起,在接下来一段时间内还看不到跟 CPU 资源一样 100ms 级别的拉起速度。针对实时场景,函数计算 GPU 实例在做的是预留实例,该性能能够在资源闲置时,开释计算资源的同时,保留程序的内存运行镜像,在有新的申请进来时,只须要供应算力资源,函数就能提供服务,免去了两头硬件资源拉起,函数镜像拉取和启动的工夫,能够提供实时的服务。预留实例曾经在 CPU 实例上线,闲置时 CPU 价格是运行态的 1 /10,在保障实时能力的状况下,大大降低了资源老本。GPU 版本的预留能力预计年底上线。
场景体验采纳 ECI 后,Rokid 的业务架构图如下:

杰出的成果和进一步的期待

通过一系列的云架构革新,以后 Rokid 三维建图模块运行在函数计算的 GPU 资源上,场景体验模块运行在 ECI 资源,在老本和性能上,都做到了兼顾,且给整个零碎弱小的可拓展性,达到了零碎设计时设定的架构指标,从 2023/ 2 上线提供服务以来,达到了不错的成果。其中三维建图模块降本显著,相比最后的 ECS 架构,算力老本升高了 40%,更为重要的是,通过实时的并发解决,大大减少了子工作的排队工夫,放慢了整个工作的实现工夫。
下一步,Rokid 对于函数计算的 GPU 预留实例还是十分期待,期待函数计算可能尽快上线,这样 Rokid 外部能够将整个的 GPU 算力都迁徙到函数计算,达到架构的对立。
通过展陈展览我的项目的实际,Rokid 置信以函数计算为代表的 Serverless 肯定是云计算的将来,通过 Serverless,云计算的使用者不再须要关注底层的 Iaas 层运维和调度,在保障老本最优的状况下可能失去最大限度的拓展能力,且在整服务的生命周期,都能应用云产品提供的原生能力,简略,疾速的定位,解决问题。Rokid 在 3d 模型解决,音视频后处理方面正在大规模尝试函数计算,Rokid 置信以函数计算为代表的 Serverless 架构也肯定会在越来越多的云产品上失去利用。

有奖体验

函数计算团队全新上线“ 函数计算 FC 一键部署 通义千问 预体验、文生图、图生图、图生文、文生文 5 大经典 AI 场景 ,让您取得通义千问 30 次对话预体验机会,同时简略、高效实现一键部署图像生成、文字生成服务,速成 AIGC 创作家。

双重奖品设置

  • 实现函数计算开明及利用部署,赢取开发者社区 400 积分;
  • 加入 AI 生成图像较量赢取 AirPods(第三代)、阿里云定制蓝牙音箱、阿里云定制清雅杯!

参加流动链接👇
https://developer.aliyun.com/topic/aigc_fc#J_5808073260

正文完
 0