【问题标题】:Use Google App Engine or Google Cloud Compute VM to Test Run My App?使用 Google App Engine 或 Google Cloud Compute VM 测试运行我的应用程序?
【发布时间】:2018-11-08 00:44:03
【问题描述】:

我正在将我在本地计算机上运行的 Three.js 应用及其自定义 node.js 环境迁移到 Google Cloud。我想在那里进行测试,并希望很快与其他人一起进行一些早期的 alpha 测试。

我不确定哪种方法更明智...将我一直在本地运行的存储库按原样上传到虚拟机上,然后用户将通过虚拟机的外部 IP 访问该虚拟机,直到我得到一个好名字调用此应用程序...或将我的本地 node.js 环境与通过 Google App Engine 提供的环境合并并在 GAE 上运行。

我在使用 linux VM 方法时遇到的问题...我不确定如何在 VM 上执行与我在本地所做的相同的操作。在 Windows Powershell 我 cd 进入应用程序目录,然后输入 node index.js。我假设通过这种部署方法,只要浏览器访问外部 IP,我就可以让应用程序运行。我还应该提到,该应用程序将允许用户保存内容和上传图像,最终还可以上传 3D 模型和 json 数据集。

我在使用 App Engine 方法时遇到的问题:看起来我只能访问基于 linux 的命令行,并且必须手动安装所有 node.js 模块。同时我有一堆文件要上传,包括服务器端节点文件和所有前端的东西。我看不到在哪里上传这些文件,最终我想做的是访问一个可视的、可编辑的文件树界面,就像我在 Windows 和 FileZilla 中一样,所以我可以交换文件进出,等等。或者我想我可以从 Github 导入一个回购?只要我能直观地看到正在发生的事情,Github 就可以了。 GAE 中是否有文件结构的可视化界面?我错过了什么吗?

我浏览了 GAE“Hello World”教程,效果很好,但后来对于如何实际查看和编辑教程应用程序的内容,甚至是在哪里查找文件感到摸不着头脑。

首先,我想确定什么是更好的方法,然后如果可能的话,确定如何让我的应用程序运行起来并运行更直观、用户友好的体验。

谢谢。

【问题讨论】:

    标签: node.js google-app-engine google-compute-engine gcloud


    【解决方案1】:

    在选择如何运行应用程序时需要考虑很多事情,但我对您的用例的直觉是在 GCE 上简单地使用 VM。最令人信服的原因是它与您现在拥有的最相似。您可以通过 SSH 连接到机器并运行 nohup node index.js &(或 node index.js 内的 tmux/screen,如果您愿意),当您退出 SSH 时,它将启动应用程序而不是停止它。您可以将 SCP / SFTP 与您要上传文件的任何 GUI 客户端一起使用。你不必学习任何新东西!如果您愿意,您甚至可以使用 Windows 虚拟机(尽管由于许可费用,我认为您必须支付比同类 Linux 虚拟机多一点的费用)。

    也就是说,按照现代开发标准,另一种方式可以说更“正确”,但它需要更多的学习,这将阻止你在短期内让你的应用在笔记本电脑以外的地方运行:

    • 首先,您需要了解 Docker 和无状态容器,这基本上就是您的应用在 AppEngine 上运行的内容。
    • 接下来,您需要学习如何将单独的有状态服务(数据库、文件服务器等)连接到应用程序的容器中,以便在其中存储文件等,然后可能会重写您的应用程序有点用它来存储东西。
    • 接下来,您可能需要某种方式从代码中自动部署,而不是手动部署,这样您就可以进入构建系统、包管理器、工件存储、持续集成系统等等。李>

    如果您与一大群开发人员合作,那么对于长期运行的生产服务来说,后一种路径当然是您应该选择的——但这并不意味着它一定是您今天的项目的正确路径。如果你不关心自动扩展、节点之间的负载平衡、应用程序在不同区域运行的冗余副本以防发生自然灾害等,那么现在就用简单的方法,你可以学习新的方法在实际需要时改进服务。

    【讨论】:

    • 非常感谢@Dan 澄清所有这些。我认为你是对的 - 目前我基本上只是想将项目放在在线服务器上,以便我和一些 alpha 测试人员,基本上是朋友和同事,可以在基于 Web 的 VR 中使用它。你提到的所有这些都是我希望一旦我为这个坏男孩获得一些资金后我可以聘请其他人来解决的事情......一次一件事。严重感谢!我将在明天或周五测试这种方法,希望能有好话要说。
    • 好的,@Dan,几乎可以让应用程序从 VM 实例运行。在 gcloud 终端中,我运行了node index.js,正如我在本地机器上看到的那样,我得到了回复“应用程序正在侦听端口 3000”的行。但是,当我在浏览器中调用虚拟机的 IP 地址时,我得到了可怕的“此站点拒绝连接”。我在浏览器的 IP 地址中添加了 :3000。仍然收到错误。我尝试创建防火墙规则。没有差异。有什么想法吗?
    • 您可能只需要通过 GCE UI 在您的虚拟机防火墙中打开该端口。
    • 在最后的评论中澄清问题。当我在浏览器中将 :3000 添加到 IP 地址时,我得到“无法访问此站点 [IP] 响应时间太长”。
    • 查看这个问题了解更多信息:stackoverflow.com/questions/21065922/…
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 2015-11-15
    • 2016-03-11
    相关资源
    最近更新 更多