问题描述
有一个应用程序,允许用户通过选择AE模板并修改文本、图像等来创建视频。他们在Windows服务器上运行AE来渲染最终的视频。对于其他不使用AE的场景,他们使用AWS Lambda,可以同时启动100个实例,它们都使用自己的资源。然而,对于AE,他们使用一个Windows服务器,所有并行渲染都使用相同的资源,因此非常慢。用户想知道是否有任何PaaS可以运行AE并同时启动多个实例。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
一般来说,PaaS(Platform-as-a-Service)解决方案在提供商提供的沙箱基础设施上运行应用程序代码,以实现完整的应用功能。但这对应用程序代码提出了特定的要求(通常相当严格),例如:
– 有限的(通常是高级的)编程语言选择
– 应用程序代码中的某些强制性功能(如健康检查等)
– 应用程序的某些限制(例如不允许对本地文件系统进行写操作)
因此,在寻找PaaS解决方案时,您需要从应用程序和沙箱的角度进行考虑。
现在,您的情况增加了额外的要求:
– 运行无法修改的第三方应用程序,因此您需要找到一个满足应用程序原样要求的PaaS提供方
– Windows平台的沙箱 – 这种情况很少见,大多数提供商使用开源基础设施,我怀疑主要是因为许可条款。您最有可能找到这样的提供商是Azure,但不一定只有Azure
– AE许可条款 – 您可以运行多少个AE实例?
由于沙箱的额外要求,对于您的情况来说,基础设施即服务(IaaS)解决方案可能更适合(您实际上已经在使用它,也许只是扩展它会是一个更简单的解决方案)。
据我所知,除了Azure(我对Azure不熟悉)之外,唯一一个非常接近基础设施即服务(IaaS)但在某种程度上仍然是PaaS的解决方案是Google App Engine Flexible Environment:
– 通过编写一个实现渲染服务的应用程序,该应用程序在内部使用AE作为依赖项,可能可以满足应用程序的要求
– 它支持(基于Docker的)自定义运行时,您可能可以使用AE/Windows构建一个(也许可以参考如何为ASP.NET应用程序完成的方式)。
请注意,以上解决方案仅供参考,具体实施时需要根据您的具体需求和环境进行调整。