73

Google created the V8 JavaScript engine: V8 compiles JavaScript source code directly into machine code when it is first executed.

Node.js is built on V8 - why is Google not offering any Node.js servers like Microsoft Azure?

Google App Engine would be a natural place to put Node.js.

Do you know why Google is not doing just that?

davnicwil
  • 28,487
  • 16
  • 107
  • 123
Chris G.
  • 23,930
  • 48
  • 177
  • 302
  • 3
    many people have asked, why not, perl, php, here. appengine started out with python, quite some time later java (like 12months). and more recently go (not sure why they picked go apart from being built by google). After these 3 how many are really needed, and how should a small team split it's resources. – Tim Hoffman Sep 17 '12 at 08:28
  • 1
    If you are interested in NodeJS support on Google App Engine Standard (not Managed VMs/Google App Engine Flexible), please star this feature request: https://issuetracker.google.com/issues/67711509. Google addresses features that get attention from the community (see here: https://cloud.google.com/support/docs/issue-trackers#feature_requests) – Trevor Nov 03 '17 at 04:04
  • Old question, but just to clarify for those passing who are interested - yes Node is built using V8, but V8 is open source. Node is not and never was a project that came out of Google, and there's no reason they should naturally champion it or anything just because it's built on V8. For the same reason they wouldn't naturally champion arbitrary software built in Go, or using TensorFlow, or anything else they've open sourced. – davnicwil Jul 25 '19 at 14:46

12 Answers12

40

Node.js is maintained by Joyent, who is in a way a competitor of Google.

Node.js has no link what so ever with Google but is in fact built on top of an open source project started by Google.

Google might jumped into this business just like Azure did, but there are already so many PaaS doing it, it might not be worth it. I have never used GAE, but my understanding is that it is quite different that other PaaS and you have to use GAE libraries to make your code run.

Which, this is my personal feeling, is not really what the Node.js community is looking for. Node.js is used to quickly make a fast lightweight app, a big share for APIs for Phone apps for example.

Nevertheless if you are looking for a PaaS for Node.js, the are quite a few out there:

  • Joyent (nodejitsu)
  • dotCloud which has WebSockets support.
  • Windows Azure
  • Nodester (bought by App Fog recently)
  • Any Cloud Foundry host should support Node.js too.
  • and many more...

Those are just some names off the top of my head. There quite a few but those are the major ones. Oh there is Heroku too, but they don't have support for WebSocket which is a bummer for any Socket.IO based app.

Wernight
  • 36,122
  • 25
  • 118
  • 131
3on
  • 6,291
  • 3
  • 26
  • 22
33

As of June 2014, Google had a limited preview for custom languages on Google App Engine (which is different from Google Compute Engine).

Watch Building Node.js applications with App Engine and Custom Runtimes and check out https://cloud.google.com/appengine/docs/managed-vms/:

App Engine now offers a second hosting option: Managed VMs. The Managed VM hosting environment lets you run App Engine applications on configurable Compute Engine Virtual Machines (VMs). You can also use Managed VMs to deploy user-configurable custom runtimes, such as for Node.js and other runtimes.

The procedure to get into the beta is:

Sign up and create a Managed VM project

Managed VMs are in Limited Preview, you must sign up for access to this feature, create a billing-enabled project, and tell us about your project so we can whitelist it to run in a Managed VM. Follow these steps:

  1. Sign up for access to Managed VMs.
  2. Join the app-engine-managed-vms Google Group to participate in discussions about Managed VMs.
  3. Projects (or apps - they are the same thing) must be in a U.S. data center. If you're planning to use an existing project, skip to the next step. Otherwise, create a new app in a U.S. data center. Navigate to https://preview.appengine.google.com and create a new app.
  4. Enable billing for the project. Visit the page https://cloud.google.com/console/project/apps~, where is the ID of your project. Click on Settings in the left menu and then enable billing. If your app is billed under a Premier account, email us at app-engine-managed-vm-tt-id@google.com to have your new Cloud project billed under the same account.
  5. Send an email to app-engine-managed-vm-tt-id@google.com with the application ID in the subject line.

When we receive your email, we’ll configure some resources behind the scenes and notify you via email when your project is ready to go. The email includes final instructions for setup. If you encounter an error while following these instructions, contact us at app-engine-managed-vm-tt-id@google.com.

Community
  • 1
  • 1
fernandopasik
  • 9,565
  • 7
  • 48
  • 55
  • 2
    Yes my fellow developer, I also just saw this. Cool :-) – Chris G. Jun 27 '14 at 11:44
  • I didn't have a good experience hosting NodeJS web servers on Managed VMs. It would let me map a static IP for configuring a domain, but then Google would restart the VMs randomly and they would lose the static IP. There are open bugs for this. Using the Load Balancer might help, but I ran into some issues there as well. – Splaktar Dec 22 '15 at 17:08
23

You can easily install node on Google Compute Engine (which basically is a virtual computer). Here is a link: https://developers.google.com/datastore/docs/getstarted/start_nodejs/

Regards Lars

Lars Christoffersen
  • 1,719
  • 13
  • 24
  • 6
    Hey, you're right, you can install Node on GCE. And as your link state, you can use the Cloud Datastore API to use the same NOSQL datastore as App Engine. But this does not the same advantages as App Engine : you have to manage the OS, the security patches, the nodejs updates etc. In a PAAS like App Engine, you avoid all of this. – David Mar 09 '14 at 04:39
  • 1
    [Google Compute Engine is different from Google App Engine](http://stackoverflow.com/questions/22697049/what-is-the-difference-between-google-app-engine-and-google-compute-engine). – Dan Dascalescu Dec 26 '14 at 20:04
22

after years of experiences in google appengine, i switch to other cloud services now.

i think google appengine is actually an old fashion service in cloud computing industry. which is slow to new technology, difficult to deploy, time wasting to learn the apis and lacking of a lot of features you need in languages you use.

regardless of google's large community, i would not suggest anyone to use google appengine.

[newer paas]

i strongly recommend you to use openshift, appfog, heroku .etc's new paas cloud computing technologies, which are far more extensible, less change needing, more migrable from one platform to another, more freely coding in the beauty of the natural lanuage and its standard libraries without ugly platform specific apis.

[iaas]

if you want more control over the running os environment, you may give linode, digital ocean, amazon, google cloud engine, microsoft azure etc. iaas providers a try.

13

Because App Engine is a platform-as-a-service, and in order to add a new language/stack to GAE, Google need to create mid-level libraries that interface with the plethora of App Engine's services.

Moreover, all App Engine apps is sandboxed and has several functionalities restricted from inside their sandbox environment. This means that beside the need to create service libraries, Google also need to create a secured sandbox environment for any language/stack that they try to introduce into GAE.

I personally think the second reason is why Google does not introduce support for new language/stack as aggressive as Azure did. App Engine is, in a way, more 'managed' than Azure, and has a larger initial development cost for new language/stack.

Ibrahim Arief
  • 8,742
  • 6
  • 34
  • 54
3

Node.js has recently enabled support for Google Cloud users. The main document pages are:

It seems to require at the moment a Compute Engine instance.

Eugen Dimboiu
  • 2,733
  • 2
  • 26
  • 33
Wernight
  • 36,122
  • 25
  • 118
  • 131
3

It has been released as of March 2016.

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

crb
  • 8,132
  • 6
  • 37
  • 48
3

Background: App Engine Standard vs App Engine Flexible

There seems to be some confusion on this topic because there are two versions of App Engine: Standard and Flexible. NodeJS is supported on App Engine Flexible but NOT on App Engine Standard. (See here for a more complete explanation of the differences).

App Engine Standard scales in seconds (as opposed to minutes for the Flexible environment), and has a free tier, so you can develop and demo without spending a dime. These benefits come at the cost of flexibility. App Engine Standard only supports certain languages and libraries, doesn't allow writing to disk nor SSH. In other words, the environment is standardized.

Answer: NodeJS Support on App Engine Standard

If you are interested in NodeJS support on App Engine Standard, please star this issue: https://issuetracker.google.com/issues/67711509.

Google addresses features that get attention from the community (see here). The best way to give your attention to this feature, is to star it on the Google Issue tracker linked to above.

Trevor
  • 13,085
  • 13
  • 76
  • 99
1

Google announced on March, 21st 2016 that Node.js on Google App Engine was going beta: https://cloudplatform.googleblog.com/2016/03/Node.js-on-Google-App-Engine-goes-beta.html?m=1

This was expected as Google also joined the Node.js Foundation and Google develops the V8 JavaScript engine which powers Chrome and Node.js: https://nodejs.org/en/blog/announcements/welcome-google/

Google announced a partnership with NodeSource at the same time.

Antoine Dusséaux
  • 3,740
  • 3
  • 23
  • 28
1

Google has just announced support for Node.js on App Engine.

enter image description here See: https://cloud.google.com/nodejs/

Here's an example of how to deploy Node.js app on App Engine.

Chankey Pathak
  • 21,187
  • 12
  • 85
  • 133
0

Google is a software-conservative company. Programming a backend in JavaScript would be absolutely unimaginable for Google's managers. Creating infrastructure Google itself won't be using is not a good investment. Reference: Notes from the Mystery Machine Bus

user7610
  • 25,267
  • 15
  • 124
  • 150
  • +1 for the post, but I think it's not implemented because it doesn't have that much demand as a PaaS as most advanced users go for IaaS – Stefan Rogin Feb 01 '15 at 00:05
  • That's a broad opinion. You're probably correct that Google would not write its search engine in JavaScript, but there's a LOT more going on besides major infrastructure type projects. – Jude Osborn Apr 16 '15 at 05:27
  • @clickstefan that is certainly a factor too. Yet popular demand is not such a big driving force for them. Look how long it took them to add PHP support. *@Jude Osborn* Google avoids Javascript wherever they can. They even created GWT and Closure Tools and later Dart and AtScript and the Traceur ES6 stuff. When they write JavaScript, they use Closure compiler, which makes their JavaScript look like Java. – user7610 Apr 16 '15 at 11:09
  • 4
    @user7610 that's kind of weird for the makers of v8 and supporters of Angular – Stefan Rogin Apr 17 '15 at 07:27
0

(Jun 2021) This question is almost a decade old, and many things have changed since the OP. TL;DR: JavaScript and/or Node.js are supported in 6 different serverless compute platforms from Google: 4 on GCP and one each from Google Workspace and Firebase plus release dates:

  1. Google App Engine - Standard (Jun 2018) - announcement, docs (Node.js 10, 12, 14; 8 is deprecated)
  2. Google App Engine - Flexible (Mar 2016) - announcement (general release), docs (Most Node.js versions)
  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])

Also see Google Cloud's overall support of/for Node.js.

wescpy
  • 10,689
  • 3
  • 54
  • 53