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

时间:2012-09-16 20:08:35

标签: google-app-engine node.js

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

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

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

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

12 个答案:

答案 0 :(得分:40)

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

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

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

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

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

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

答案 1 :(得分:32)

截至2014年6月,Google对Google App Engine (which is different from Google Compute Engine)上的自定义语言预览有限。

关注Building Node.js applications with App Engine and Custom Runtimes并查看https://cloud.google.com/appengine/docs/managed-vms/

  

App Engine现在提供第二个托管选项:托管虚拟机。托管VM托管环境允许您在可配置的计算引擎虚拟机(VM)上运行App Engine应用程序。   您还可以使用托管虚拟机部署用户可配置的custom runtimes,例如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。
  6. 当我们收到您的电子邮件时,我们会在幕后配置一些资源,并在您的项目准备就绪时通过电子邮件通知您。该电子邮件包含最终安装说明。如果您在按照这些说明操作时遇到错误,请通过app-engine-managed-vm-tt-id@google.com与我们联系。

答案 2 :(得分:23)

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

此致 拉斯

答案 3 :(得分:21)

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

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

无论google的大型社区,我都不会建议任何人使用google appengine。

[较新的paas]

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

[IaaS的]

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

答案 4 :(得分:13)

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

此外,all App Engine apps is sandboxed并且在沙盒环境中限制了一些功能。这意味着除了需要创建服务库之外,Google还需要为他们尝试引入GAE的任何语言/堆栈创建安全的沙箱环境。

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

答案 5 :(得分:3)

Node.js最近启用了对Google Cloud用户的支持。主要文件页面是:

目前似乎需要一个计算引擎实例。

答案 6 :(得分:3)

答案 7 :(得分:3)

背景:App Engine标准版与App Engine灵活

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

App Engine Standard以秒为单位(与灵活环境的分钟数相对),并且具有免费套餐,因此您无需花费一分钱即可开发和演示。这些好处是以灵活性为代价的。 App Engine Standard仅支持某些语言和库,不允许写入磁盘或SSH。换句话说,环境是标准化的

答案:App Engine Standard上的NodeJS支持

如果您对App Engine 标准 上的NodeJS支持感兴趣,请解决此问题:https://issuetracker.google.com/issues/67711509

Google解决了社区关注的功能(请参阅here)。引起您注意此功能的最佳方式是在与上面链接的Google问题跟踪器上加注星标。

答案 8 :(得分:1)

Google于2016年3月21日宣布Google App Engine上的Node.js正在测试:https://cloudplatform.googleblog.com/2016/03/Node.js-on-Google-App-Engine-goes-beta.html?m=1

这是预期的,因为谷歌也加入了Node.js基金会,谷歌开发了支持Chrome和Node.js的V8 JavaScript引擎:https://nodejs.org/en/blog/announcements/welcome-google/

谷歌同时宣布与NodeSource建立合作伙伴关系。

答案 9 :(得分:1)

谷歌刚刚宣布支持App Engine上的Node.js。

enter image description here 请参阅:https://cloud.google.com/nodejs/

以下是how to deploy Node.js app on App Engine的示例。

答案 10 :(得分:0)

Google是一家软件保守的公司。使用JavaScript编写后端对于Google的经理来说绝对是不可想象的。创建基础设施谷歌本身不会使用不是一个好的投资。参考:Notes from the Mystery Machine Bus

答案 11 :(得分:0)

(2021 年 6 月) 这个问题已有近十年的历史了,自 OP 以来,很多事情都发生了变化。 TL;DR:Google 的 6 种不同的无服务器计算平台支持 JavaScript 和/或 Node.js:4 on GCPGoogle WorkspaceFirebase 各一个发布日期:

  1. Google App Engine - 标准(2018 年 6 月)- announcementdocs(Node.js 10、12、14;8 已弃用)
  2. Google App Engine - 灵活(2016 年 8 月)- announcement (general release)、docs(大多数 Node.js 版本)
  3. Google Cloud Functions(2017 年 3 月)- announcement (general release)、docs(Node.js 10、12、14;8 已弃用)
  4. Cloud Functions for Firebase(2017 年 3 月)- announcementdocs与 Google Cloud Functions 的版本相同
  5. Google Cloud Run(2019 年 4 月)- announcement (general release)、docs(可以放入容器的任何 Node.js 版本)< /li>
  6. Google Apps 脚本(2009 年 8 月)- announcementdocs(仅限 JS,不是 Node;Rhino ES3/ES5 + 最初的扩展;现在v8 & ES6+ [2020 年 3 月])

另请参阅 Google Cloud 的 overall support of/for Node.js