加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Vicuesoft:网络上的编解码器比较

(2022-07-08 11:05:53)
标签:

哲想

软件

办公

解决方案

分类: 软件

我们的目标是开发一个用于编解码器质量比较的Web应用程序。视频编码的计算需要大量的资源和时间。并非每个用户都有一台具有足够计算能力的空闲机器。我们的应用程序使用我们的工具VQProbe 和Testbot提供所需的实用程序和资源,用于质量比较操作和云系统作为计算能力。本文致力于描述我们用来使其工作的云服务。


云评估

说到云系统,我们需要一个可靠性高、功能丰富、文档好的平台,所以我们选择了谷歌云平台。它具有方便且文档齐全的API、多功能服务和广泛的试用期,在此期间,我们的团队设法选择了必要的技术堆栈,学习了平台使用的基础知识,犯了一些错误,并找到了最合适的解决方案我们的目标。


我们项目的管道非常简单:创建一个包含必要参数和程序的容器,并在云服务中启动它的执行。GoogleCloud 最初是通过GoogleCloud Run 服务吸引我们的。该服务让您可以部署通过HTTP、HTTP/2、WebSocket或gRPC处理请求的容器化项目。但是,在GoogleCloud Run中进行了几次初步发布后,我们决定使用更强大、更精细的功能来完成我们的任务。类似于单独的机器,完全专用于任务,具有可配置的计算资源和对工作执行的控制。所以我们改用谷歌云计算引擎作为我们的云计算提供商。


项目结构

选择云平台后,项目分为四个部分:

  • 带有运行环境的容器化应用(Worker Google Compute Engine)

  • 数据库 (MongoDB)

  • 存储(谷歌云存储/谷歌云工件注册表)

  • Web应用(VQ编解码测试平台)


Vicuesoft:网络上的编解码器比较

Web应用程序是与所有其他部分交互的项目的表面。该方案从数据库中获取数据,为工作人员生成命令,将编解码器和流上传到云存储。


在收到用户的命令和配置后,Web应用程序启动工作程序。他们每个人都从ArtifactsRegistry 中检索要执行的图像,在数据库中查询目标会话的参数,并从CloudStorage 下载其余必要的数据。CloudStorage 存储标准和用户加载的流包和编解码器集,ArtifactsRegistry 存储应用程序映像以在虚拟机上运行。该管理器私下存储我们的工作映像,并允许您轻松快速地将它们加载到ComputeEngine 中,因为所有必要的数据都被合并到一个系统中。


配置机器

Web应用程序的每个会话都会在ComputeEngine 中生成一个新的VM实例。此外,每个实例都需要自己的配置文件,该文件将准确说明在加载的容器中要执行什么。配置包含有关机器类型、启动区域、所需内存量和容器元数据的信息,这些信息是针对每个进程单独确定的。


Vicuesoft:网络上的编解码器比较


一个配置参数也是运行折扣不稳定实例的选项。这种实例有两种类型:抢占式实例和现货实例。这些实例的显着优势是价格- 从60% 到91%的折扣,但这意味着如果其他地方需要这些资源(实际上很少发生),您的VM可以被抢占。两种类型的折扣实例具有相同的功能;但是,抢占式实例总是在运行24 小时后停止。


在我们的案例中,计算要么不需要太多时间(或者我们正在努力实现这样的结果),要么可以在没有太多数据丢失的情况下重新启动,因此使用此类工具对项目具有巨大的经济效益。在将会话执行拆分为多个实例时,我们使用由与Spot VM并行运行的稳定会话管理器管理的Spot VM。


对于简单、轻量级的计算,我们使用“n1-standard-1”类型的机器。下表显示了在“europe-west4”地区使用GCE机器的每小时价格。

Vicuesoft:网络上的编解码器比较

这些价格每天都会重新评估,所以我们的计算是近似的。以一个典型的测试会话为例,我们有四个实例和一个经理。此会话大约需要4 到6分钟,并且短期会话没有被谷歌关闭一次。从表1中,我们可以看到每个稳定实例的成本约为0.005 美元- 其中4 个是1.5美分,但在使用Spot 实例时-所有这些实例都需要0.003 美元。


举一个更真实的例子,我们使用更强大的机器对10个高清流进行了测试。作为参考机器,我们有amd3960x和128 GbRAM,在GCE中,我们将使用n1-highmem-4机器,它有4 个CPU 和25 GbRAM。本地计算机上的会话需要7.5小时才能完成。但是,使用我们的云机器在每个流上并行工作需要4.5 小时。使用10 台稳定的机器4.5 小时– 12美元,Spot机器– 2.5美元。几乎80%的折扣!

Vicuesoft:网络上的编解码器比较


现在让我们谈谈失败。查看一系列测试启动,我们让谷歌在大约3 到4个会话中关闭机器一次。所以是的,它发生了,如果你的工作高度依赖时间——你可能不想贪婪,希望你的会话不会受到影响。使用稳定的机器并在尽可能短的时间内获得结果。但是,对于那些可以等待的人来说,现货机器是最好的选择。


要在配置文件中使用这种类型的VM,您必须使用调度选项:

Vicuesoft:网络上的编解码器比较

配置文件还有一个网页版模拟- ComputeEngine 控制台,所有相同的参数都可以使用方便的界面独立设置。


Vicuesoft:网络上的编解码器比较

尽管如此,由于Web应用程序无法使用人机界面,因此需要通过gcloudAPI 配置服务,将我们的Web应用程序连接到GoogleCloud 平台。使用服务帐户API进行连接。每个服务帐户都配置了特定的访问权限,以区分执行的任务并确保安全。


Web 应用程序和Worker 使用API 方法与GoogleCompute Engine交互。用户在创建会话时启动实例的工作,可以停止或重启正在工作的实例,在会话管理器内部(关于管理器的工作和增加系统的计算能力可以在另一篇文章中阅读),检查受控实例的状态。


结论

对于新项目来说,探索云系统的旅程有时似乎太难了,因为有许多参数和选项可供使用和设置。将我们的项目启动到GoogleCloud需要花费大量时间阅读文档、进行试验并尝试实现目标的方法,但由于在很短的时间内就获得了有关该平台的广泛知识库,这可能是可行的。启动您自己的应用程序的方式是无穷无尽的,所以即使对我们来说,每天都在学习新的东西。


公司名称:北京哲想软件有限公司

北京哲想软件官方网站:cogitosoft.com

北京哲想软件微信公众平台账号:cogitosoftware

北京哲想软件微博:哲想软件

北京哲想软件邮箱:sales@ cogitosoft.com

销售(俞先生)联系方式: 86(010)68421378

微信:18610247936     QQ:368531638

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有