Docker 支持
HOOPS Visualize Web 软件包包含一份入门指南,可帮助您轻松地在服务器上部署 HOOPS Visualize Web,从而快速转换和查看模型,无需太多额外设置。这对于演示和评估非常方便,但对于生产部署,许多客户会需要更安全、更稳定的解决方案,例如 Docker 容器。
我们为 HOOPS Visualize Web 的主要组件提供了多个 Docker 模板,您可以在HOOPS Visualize Web Dockerfiles 仓库HOOPS Visualize Web我们为 HOOPS Visualize Web 的主要组件提供了多个 Docker 模板,您可以在HOOPS Visualize Web Dockerfiles 仓库中找到它们。自 2020 年起,该仓库已存档,以便我们发布新的 Docker 镜像。如有任何疑问,请联系我们。
基本配置
您需要安装 Docker。推荐使用docker-install命令进行安装。使用以下命令将您的用户添加到 Docker 用户组:
sudo usermod -aG docker <your user name>这些更改可能需要您下次以上述用户身份登录后才会生效。安装 Docker 后,可以使用以下步骤构建 HOOPS Visualize Web 镜像:
- 解压缩从开发者专区下载的 HOOPS Visualize Web 软件包
- 将与您的 HOOPS Visualize Web 版本对应的文件夹内容复制到软件包根目录。
- 在软件包根目录下打开一个新的终端。
- 运行相应的命令来构建 Docker 文件
扩展容器
虽然提供的镜像可以直接使用,但它们旨在为将 HOOPS Visualize Web 集成到您的工作流程中提供一个起点。在大多数情况下,您希望容器更加独立,而不是依赖于主机上的路径。
对 HOOPS Visualize Web 容器的常见修改之一是构建与文件存储交互的逻辑。在查看场景下,这需要在启动 SC Streaming Server 之前从存储中提取模型。在转换场景下,源文件将被 HOOPS Converter 检索和处理。处理完成后,文件将被推送到文件存储。
HOOPS 容器与 AWS
概述
提供的 Docker 文件支持在 CSR 和 SSR 模式下开箱即用 HOOPS Converter 和 Stream Cache Server。在容器中运行 HOOPS Visualize Web 组件提供了一个沙箱环境,简化了组件的运行,并在会话关闭或极少数情况下发生系统故障时自动清理临时文件。您需要修改并补充这些容器中的代码,才能使其在 Amazon Web Services 环境中正常工作。
HOOPS转换器
HOOPS Converter用于将 CAD 文件转换为Stream Cache格式,以便可以使用Web Viewer高效地进行流式传输和查看。根据模型的大小和复杂程度,此过程可能需要几秒到几分钟不等。对于较大的文件,这可能会超出 AWS Lambda 允许的限制。
处理大型文件转换的容器化方法可以利用弹性容器服务 ( ECS)。ECS 是一种容器编排服务,可用于运行使用多种后端服务的容器。使用 EC2 后端时,系统会从您创建的运行实例集群中启动容器,并且可以使用自动扩展组进行扩展。Fargate 后端提供了一种无服务器选项。AWS Fargate会自动查找可用的 AWS 资源来运行您的容器,而您可以管理和扩展 EC2 集群。Fargate 也提供竞价型实例选项。
在容器内部运行转换时,您需要编写应用程序代码来执行文件转换所需的步骤。这些步骤很可能包括以下步骤:
- 从 S3 对象存储中检索源文件
- 对文件运行 HOOPS Converter
- 更新数据库中的转换详情
- 将转换结果上传到云存储解决方案,例如 S3、EFS 等。
流缓存流媒体服务器
SC 流媒体服务器旨在让用户能够以最快的速度与大型 CAD 模型进行交互。由于查看会话具有短暂性,因此需要采用与文件转换不同的容器策略。使用 ECS 编排容器需要相对较长的时间,因为容器必须先进行配置才能最终激活。这种时间延迟在大多数情况下会导致用户体验不佳。
使用容器化方式运行 SC 流媒体服务器需要您在收到观看会话请求时,手动在 EC2 实例上启动容器。为了实现这一点,需要创建一个 AMI,其中已安装了 Docker 运行时。服务器上还会运行一个 Web 应用程序,用于监听和处理观看会话请求。该应用程序应处理与创建观看会话相关的任何身份验证或业务逻辑。然后,它将使用运行在本地 EC2 实例上的 Docker 守护程序创建一个容器。可以通过使用与CloudWatch警报关联的 EC2 自动扩展组来实现此方案的扩展。
在容器内运行 SC 流媒体服务器时,您需要编写应用程序代码来执行 WebSocket 流媒体传输所需的步骤。这些步骤很可能包括:
- 从存储解决方案 S3 或 EFS 中检索流缓存模型
- 启动 SC 流媒体服务器
此时,生成的应用程序将开始代理传入到容器的连接。
笔记
SC 流媒体服务器提供了一个命令行选项,用于更新服务器的活跃度。如果指定了此选项的值,服务器将发送一个 POST 请求,表明服务器已完全初始化并准备好开始流媒体播放。