72

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

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

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

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

4

12 回答 12

40

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

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

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

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

不过,如果您正在寻找适用于 Node.js 的 PaaS,那么这里有很多:

  • Joyent(节点柔术)
  • dotCloud支持 WebSockets。
  • 视窗天青
  • Nodester(最近被 App Fog 收购)
  • 任何Cloud Foundry主机也应该支持 Node.js。
  • 还有很多...

这些只是我脑海中浮现的一些名字。有不少,但这些是主要的。哦,Heroku也有,但是他们不支持 WebSocket,这对于任何基于 Socket.IO 的应用程序来说都是一个遗憾。

于 2012-09-16T20:10:24.830 回答
33

截至 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. 注册以访问托管 VM。
  2. 加入 app-engine-managed-vms Google 群组,参与有关托管 VM 的讨论。
  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. 向 app-engine-managed-vm-tt-id@google.com 发送电子邮件,主题行中包含应用程序 ID。

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

于 2014-06-26T09:48:51.203 回答
23

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

问候拉尔斯

于 2013-09-15T20:54:55.707 回答
22

经过多年的谷歌应用引擎经验,我现在切换到其他云服务。

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

不管 google 的大型社区如何,我都不建议任何人使用 google appengine。

[较新的 Paas]

我强烈建议您使用 openshift、appfog、heroku 等新的 paas 云计算技术,这些技术可扩展性更高、更改需求更少、更易于从一个平台迁移到另一个平台、更自由地以自然语言及其标准之美进行编码没有丑陋的平台特定 api 的库。

[IAAS]

如果您想更好地控制运行的操作系统环境,您可以尝试 linode、digital ocean、amazon、google cloud engine、microsoft azure 等 iaas 提供商。

于 2013-06-25T21:58:25.833 回答
13

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

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

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

于 2012-09-16T22:49:41.770 回答
3

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

目前似乎需要一个Compute Engine实例。

于 2014-08-25T11:32:16.427 回答
3

它已于 2016 年 3 月发布。

https://cloudplatform.googleblog.com/2016/03/Node.js-on-Google-App-Engine-goes-beta.html

于 2016-03-27T11:14:49.653 回答
3

背景:App Engine Standard 与 App Engine Flexible

由于 App Engine 有两个版本:标准版和灵活版,因此似乎对此主题有些混淆。App Engine Flexible 支持 NodeJS,但App Engine Standard不支持。(有关差异的更完整解释,请参见此处)。

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

答案:App Engine 标准上的 NodeJS 支持

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

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

于 2017-11-14T22:16:00.543 回答
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 建立合作伙伴关系。

于 2016-06-13T06:50:24.757 回答
1

Google 刚刚宣布在 App Engine 上支持 Node.js。

在此处输入图像描述 请参阅:https ://cloud.google.com/nodejs/

这是一个如何在 App Engine 上部署 Node.js 应用程序的示例。

于 2018-06-13T05:55:56.830 回答
0

谷歌是一家软件保守的公司。对于 Google 的经理来说,用 JavaScript 编写后端是绝对无法想象的。创建谷歌自己不会使用的基础设施并不是一项好的投资。参考:来自神秘机器巴士的笔记

于 2014-12-14T17:27:55.693 回答
0

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

  1. Google App Engine - 标准(2018 年 6 月) -公告文档(Node.js 10、12、14;8 已弃用)
  2. Google App Engine - 灵活(2016 年 3 月) -公告一般版本),文档(大多数 Node.js 版本)
  3. Google Cloud Functions (Mar 2017) - announcement (general release), docs (Node.js 10, 12, 14; 8 is deprecated)
  4. Cloud Functions for Firebase (Mar 2017) - announcement, docs (same versions as Google Cloud Functions)
  5. Google Cloud Run (Apr 2019) - announcement (general release), docs (Any Node.js version you can put in a container)
  6. Google Apps Script (Aug 2009) - announcement, docs (JS-only, not Node; Rhino ES3/ES5 + extensions originally; now v8 & ES6+ [Mar 2020])

另请参阅 Google Cloud对 Node.js 的整体支持

于 2021-06-24T06:20:11.920 回答