为什么javascript node.js不在谷歌应用引擎上

Chr*_* G. 70 google-app-engine node.js

Google创建了V8 JavaScript引擎:V8首次执行时,会将JavaScript源代码直接编译为机器代码.

Node.js是基于V8构建的 - 为什么Google不提供像Microsoft Azure这样的Node.js服务器?

将Google App Engine放入Node.js是一个很自然的地方.

你知道谷歌为什么不这样做吗?

3on*_*3on 40

Node.js由Joyent维护,Joyent是Google的竞争对手.

Node.js与谷歌没有任何联系,但实际上是建立在谷歌开源的开源项目之上.

谷歌可能会像Azure一样跳进这项业务,但已有很多PaaS在做这件事,可能不值得.我从未使用过GAE,但我的理解是,与其他PaaS完全不同,您必须使用GAE库来运行代码.

这是我个人的感受,并不是Node.js社区正在寻找的东西.Node.js用于快速制作快速轻量级应用程序,例如,用于手机应用程序API的大份额.

然而,如果你正在寻找Node.js的PaaS,那里有很多:

这些只是我头脑中的一些名字.有很多,但那些是主要的.哦,还有Heroku,但是他们没有对WebSocket的支持,这对任何基于Socket.IO的应用程序来说都是一个无赖.

  • Heroku支持socket.io与xhr-polling. (3认同)

fer*_*sik 32

截至2014年6月,Google对Google App Engine上的自定义语言进行了有限的预览(与Google Compute Engine不同).

观看使用App Engine和自定义运行时构建Node.js应用程序,并查看https://cloud.google.com/appengine/docs/managed-vms/:

App Engine现在提供第二个托管选项:托管虚拟机.托管VM托管环境允许您在可配置的计算引擎虚拟机(VM)上运行App Engine应用程序.您还可以使用托管VM来部署用户可配置的自定义运行时,例如Node.js和其他运行时.

进入测试版的程序是:

注册并创建托管VM项目

托管虚拟机处于有限预览状态,您必须注册才能访问此功能,创建启用计费的项目,并告诉我们您的项目,以便我们将其列入白名单以在托管虚拟机中运行.跟着这些步骤:

  1. 注册以访问托管虚拟机.
  2. 加入app-engine-managed-vms Google Group,参与有关托管虚拟机的讨论.
  3. 项目(或应用程序 - 它们是相同的东西)必须位于美国数据中心.如果您计划使用现有项目,请跳至下一步.否则,请在美国数据中心内创建新应用.导航到https://preview.appengine.google.com并创建一个新应用.
  4. 为项目启用结算.访问https://cloud.google.com/console/project/apps~页面,其中包含项目的ID.单击左侧菜单中的"设置",然后启用结算.如果您的应用在Premier帐户下结算,请通过app-engine-managed-vm-tt-id@google.com向我们发送电子邮件,让您的新Cloud项目在同一帐户下结算.
  5. 使用主题行中的应用程序ID发送电子邮件至app-engine-managed-vm-tt-id@google.com.

当我们收到您的电子邮件时,我们将在幕后配置一些资源,并在您的项目准备就绪时通过电子邮件通知您.该电子邮件包含最终安装说明.如果您在遵循这些说明时遇到错误,请通过app-engine-managed-vm-tt-id@google.com与我们联系.

  • 是的,我的同事,我也看到了这个.酷:-) (2认同)

use*_*737 23

您可以在Google Compute Engine(基本上是虚拟计算机)上轻松安装节点.这是一个链接:https: //developers.google.com/datastore/docs/getstarted/start_nodejs/

关心拉尔斯

  • 嘿,你说得对,你可以在GCE上安装Node.作为链接状态,您可以使用Cloud Datastore API将相同的NOSQL数据存储用作App Engine.但这与App Engine没有相同的优势:您必须管理操作系统,安全补丁,nodejs更新等.在像App Engine这样的PAAS中,您可以避免所有这些. (6认同)

小智 21

经过多年google appengine的经验,我现在转而使用其他云服务.

我认为google appengine实际上是云计算行业的旧时尚服务.这对新技术来说很慢,难以部署,浪费时间来学习api,并且缺少您使用的语言所需的许多功能.

无论谷歌的大型社区,我都不建议任何人使用谷歌appengine.

[较新的paas]

我强烈建议您使用openshift,appfog,heroku .etc的新paas云计算技术,这些技术更具可扩展性,需要更少的变更,可以从一个平台迁移到另一个平台,更自由地编码自然语言及其标准的美感库没有丑陋的平台特定的apis.

[IaaS的]

如果你想更多地控制运行的os环境,你可以试试linode,数字海洋,亚马逊,谷歌云引擎,微软天蓝色等.

  • 我认为你应该考虑在这个答案中添加更多细节,因为它有点争议. (4认同)

Ibr*_*ief 13

由于App Engine是一种平台即服务,并且为了向GAE添加新的语言/堆栈,Google需要创建与众多App Engine服务接口的中级库.

此外,所有App Engine应用程序都是沙盒,并且在沙盒环境中限制了一些功能.这意味着除了需要创建服务库之外,Google还需要为他们尝试引入GAE的任何语言/堆栈创建安全的沙箱环境.

我个人认为第二个原因是为什么谷歌不像Azure那样引入对新语言/堆栈的支持.在某种程度上,App Engine比Azure更"管理",并且新语言/堆栈的初始开发成本更高.