为什么javascript node.js不在Google App Engine上


70

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

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

Google App Engine是放置Node.js的自然之所。

您知道为什么Google不这样做吗?


3
许多人问过,为什么不这样做,perl,php,在这里<插入您喜欢的语言>。appengine最初是从python开始的,但很久之后就是java(例如12个月)。以及最近发布的内容(不确定为什么选择Google之外的其他功能)。在这3个之后,真正需要多少个,以及一个小团队应如何分配其资源。
Tim Hoffman 2012年

1
如果您对Google App Engine标准版(而不是Managed VMs / Google App Engine Flexible)上的NodeJS支持感兴趣,请对此功能加注星标:issuetracker.google.com/issues/67711509。Google解决了引起社区关注的功能(请参阅此处:cloud.google.com/support/docs/issue-trackers#feature_requests
Trevor

这是一个古老的问题,但是只是为了向那些感兴趣的过往者澄清-是的,Node是使用V8构建的,但是V8是开源的。Node不是也不是Google的一个项目,因此没有理由自然而然地支持它或其他任何事情,因为它是基于V8构建的。出于同样的原因,他们自然不会拥护Go内置的,使用TensorFlow或他们开源的任何其他软件的任意软件。
davnicwil

Answers:


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。通过托管虚拟机托管环境,您可以在可配置的Compute Engine虚拟机(VM)上运行App Engine应用程序。您还可以使用托管VM部署用户可配置的自定义运行时,例如用于Node.js和其他运行时。

进入测试版的过程是:

注册并创建托管VM项目

受管VM处于“受限预览”中,您必须注册才能使用此功能,创建一个已启用计费的项目,并向我们介绍您的项目,以便我们将其列入许可在受管VM中运行的白名单。按着这些次序:

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

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


2
是的,我的开发人员,我也刚刚看到了这一点。酷:-)
克里斯·G

我在托管VM上托管NodeJS Web服务器的经验不足。它可以让我映射用于配置域的静态IP,但是Google会随机重启虚拟机,并且它们会丢失静态IP。有一些开放的错误。使用负载均衡器可能会有所帮助,但是我也遇到了一些问题。
Splaktar,2015年

40

Node.js由Joyent维护,Joyent在某种程度上是Google的竞争对手。

Node.js与Google没有任何联系,但实际上是在Google启动的开源项目之上构建的。

Google可能像Azure一样跳入了这项业务,但是已经有很多PaaS这样做,这可能不值得。我从未使用过GAE,但我的理解是,它与其他PaaS完全不同,您必须使用GAE库来运行代码。

这是我个人的感觉,并不是Node.js社区真正想要的东西。Node.js用于快速制作快速的轻量级应用程序,例如,用于电话应用程序的API占有很大份额。

但是,如果您正在寻找用于Node.js的PaaS,那么还有很多:

这些只是我头上的一些名字。有很多,但是那些是主要的。哦,也有Heroku,但是他们不支持WebSocket,而WebSocket对于任何基于Socket.IO的应用程序来说都是一个遗憾。


对于Google的PaaS,您是指针对Node.js的PaaS?:)
Ibrahim Arief 2012年

@IbrahimArief感谢修正错字。
2012年

Heroku还支持Node.js,并且非常受欢迎。devcenter.heroku.com/articles/nodejs

3
Heroku支持带有xhr-polling的socket.io。
whiskers75 2013年

我看不到轻量级版本与PaaS不兼容(第二个版本仅允许您扩展规模较小的维护部署解决方案)。
2014年

23

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

问候拉尔斯


6
嗨,您是对的,您可以在GCE上安装Node。作为链接状态,您可以使用Cloud Datastore API来使用与App Engine相同的NOSQL数据存储。但这与App Engine的优势不同:您必须管理操作系统,安全补丁,nodejs更新等。在类似App Engine的PAAS中,您可以避免所有这些。
大卫


22

经过多年在Google Appengine中的经验,我现在切换到其他云服务。

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

无论Google的社区庞大,我都不建议任何人使用Google Appengine。

[新paas]

我强烈建议您使用openshift,appfog,heroku .etc的新的Paas云计算技术,这些技术具有更高的可扩展性,更少的更改需求,从一个平台到另一个平台的更易迁移的功能,可以更自然地自由使用其自然标准及其标准没有丑陋的平台专用API的库。

[iaas]

如果您想对正在运行的操作系统环境进行更多控制,则可以尝试使用linode,数字海洋,亚马逊,谷歌云引擎,微软azure等。iaas提供商可以尝试一下。


我什至会再次确认这一点,甚至有人想对此保持低调。

4
我认为您应该考虑在此答案中添加更多细节,因为这有些争议。
Thomas Ahle 2014年

13

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

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

我个人认为第二个原因是Google不像Azure那样积极地提供对新语言/堆栈的支持。从某种意义上说,App Engine比Azure更“受管理”,并且新语言/堆栈的初始开发成本更高。




3

背景:App Engine Standard与App Engine Flexible

这个主题似乎有些混乱,因为App Engine有两个版本:标准版和灵活版。App Engine Flexible支持NodeJS,但App Engine Standard支持NodeJS 。(请参阅此处差异的更完整说明,)。

App Engine Standard可在几秒钟内扩展(而在Flexible环境中则为几分钟),并且具有免费套餐,因此您无需花费一毛钱即可进行开发和演示。这些好处是以灵活性为代价的。App Engine标准仅支持某些语言和库,不允许写入磁盘或SSH。换句话说,环境是标准化的

答:App Engine标准对NodeJS的支持

如果您对App Engine Standard上的NodeJS支持感兴趣,请给此问题加注星https : //issuetracker.google.com/issues/67711509

Google解决了引起社区关注的功能(请参阅此处)。引起您注意此功能的最佳方法是,将其标记在上面链接的Google Issue跟踪器上。




0

Google是一家软件保护公司。对于Google的管理人员来说,用JavaScript编程后端绝对是不可想象的。创建Google本身不会使用的基础架构并不是一项好投资。参考:神秘机总线上的注释


帖子+1,但我认为它没有实现,因为它作为PaaS的需求不多,因为大多数高级用户都喜欢IaaS
Stefan Rogin 2015年

这是一个广泛的看法。您可能是正确的,Google不会使用JavaScript编写其搜索引擎,但是除了主要的基础设施类型项目之外,还有很多事情要做。
裘德·奥斯本

@clickstefan当然也是一个因素。然而,大众需求对他们而言并不是很大的推动力。看看他们添加PHP支持花了多长时间。@Jude Osborn Google会尽可能避免使用Javascript。他们甚至创建了GWT和Closure Tools,后来又创建了Dart和AtScript和Traceur ES6。在编写JavaScript时,他们使用Closure编译器,这使它们的JavaScript看起来像Java。
user7610

4
@ user7610对于v8的开发者和Angular的支持者来说很奇怪
Stefan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.