问题描述
正在开发一款软件,其中包含一个控制运行Android-x86虚拟机的Node.js应用程序。此外,还有一些依赖于Android SDK的组件,如ADB。
目前,用户没有任何智能的部署方式,一切都必须手动安装。根据系统的不同,用户有时还会遇到网络等问题。用户还在另一个问题中提到了使用Docker的想法,问题链接:here。
用户的问题是,他在研究使用Docker解决方案时,发现需要使用Kubernetes。用户希望将软件部署给非技术人员使用,因此不能将Docker和Kubernetes作为依赖项,因为安装过程太复杂。
用户的问题是,是否有任何他不知道的技术可以简化最终用户的设置过程?理想情况下,希望有一个包含整个环境的虚拟机或容器,可以将其转换为单个可安装/执行的二进制文件。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
对于非技术人员来说,使用Kubernetes和Docker是一个不错的选择。对于Kubernetes,你可以使用microk8s,它适用于Linux、Windows和macOS。它可以为你创建一个本地的单节点Kubernetes集群。你可以编写一个脚本(如果目标操作系统是Linux或macOS),自动安装kubectl、microk8s,启用插件并安装你的组件的Kubernetes YAML文件。如果目标操作系统是Windows,你需要查看他们如何自动化操作,并使用相应的方法。
方案2
使用两个嵌套的虚拟机可能是最简单的方法。
在你所描述的情况下,如果能够自动化一切,以至于用户不需要执行任何其他操作,那么我认为两个嵌套的虚拟机可能是最简单的方法。你可以在第一个虚拟机中运行Node.js应用程序和Android SDK,然后在第二个虚拟机中运行Android-x86虚拟机。这样,你可以将整个环境打包到两个虚拟机中,并将其转换为一个可执行的二进制文件,用户只需运行安装程序即可。
请注意,这种方法可能会增加一些复杂性,并且需要确保两个虚拟机之间的依赖关系正确设置。
评论
- 我同意你的观点。如果我能够以一种用户不需要执行任何其他操作的方式自动化一切,那么我认为两个嵌套的虚拟机可能是最简单的方法。我实际上一直希望有一个非常简单易用的解决方案,因为我正在处理一个非常古老的应用程序,只有少数人在使用。两个嵌套的虚拟机可能是最简单的解决方案。