Warum ist Javascript node.js nicht auf Google App Engine

70

Google hat die V8-JavaScript-Engine erstellt: V8 kompiliert JavaScript-Quellcode bei der ersten Ausführung direkt in Maschinencode.

Node.js basiert auf V8. Warum bietet Google keine Node.js-Server wie Microsoft Azure an?

Google App Engine wäre ein natürlicher Ort, um Node.js zu platzieren.

Wissen Sie, warum Google nicht genau das tut?

Chris G.
quelle
3
Viele Leute haben gefragt, warum nicht, Perl, PHP, <fügen Sie Ihre Lieblingssprache ein> hier. Appengine begann mit Python, einige Zeit später Java (wie 12 Monate). und in jüngerer Zeit gehen (nicht sicher, warum sie ausgewählt haben, abgesehen davon, dass sie von Google erstellt wurden). Nach diesen 3, wie viele wirklich benötigt werden und wie sollte ein kleines Team seine Ressourcen aufteilen.
Tim Hoffman
1
Wenn Sie an NodeJS-Unterstützung für Google App Engine Standard interessiert sind (nicht für verwaltete VMs / Google App Engine Flexible), aktivieren Sie diese Funktionsanforderung: issuetracker.google.com/issues/67711509 . Google adressiert Funktionen, die die Aufmerksamkeit der Community auf sich ziehen (siehe hier: cloud.google.com/support/docs/issue-trackers#feature_requests )
Trevor
Alte Frage, aber nur zur Klärung für diejenigen, die interessiert sind - ja, Node wurde mit V8 erstellt, aber V8 ist Open Source. Node ist und war kein Projekt, das von Google stammt, und es gibt keinen Grund, warum sie es natürlich unterstützen sollten oder so, nur weil es auf V8 basiert. Aus dem gleichen Grund würden sie sich natürlich nicht für willkürliche Software einsetzen, die in Go erstellt wurde oder TensorFlow oder irgendetwas anderes verwendet, das sie als Open-Source-Software haben.
Davnicwil

Antworten:

32

Ab Juni 2014 hatte Google eine eingeschränkte Vorschau für benutzerdefinierte Sprachen in Google App Engine (die sich von Google Compute Engine unterscheidet) .

Uhr Erstellen von Node.js-Anwendungen mit App Engine und benutzerdefinierten Laufzeiten an und lesen Sie https://cloud.google.com/appengine/docs/managed-vms/ :

App Engine bietet jetzt eine zweite Hosting-Option: Verwaltete VMs. In der verwalteten VM-Hosting-Umgebung können Sie App Engine-Anwendungen auf konfigurierbaren virtuellen Compute Engine-Maschinen (VMs) ausführen. Sie können auch verwaltete VMs verwenden, um vom Benutzer konfigurierbare Bereitstellungen bereitzustellen benutzerdefinierte Laufzeiten bereitzustellen , z. B. für Node.js und andere Laufzeiten.

Das Verfahren, um in die Beta zu gelangen, ist:

Melden Sie sich an und erstellen Sie ein verwaltetes VM-Projekt

Verwaltete VMs befinden sich in der eingeschränkten Vorschau. Sie müssen sich für den Zugriff auf diese Funktion anmelden, ein abrechnungsfähiges Projekt erstellen und uns über Ihr Projekt informieren, damit wir es auf die Whitelist setzen können, damit es in einer verwalteten VM ausgeführt werden kann. Folge diesen Schritten:

  1. Melden Sie sich für den Zugriff auf verwaltete VMs an.
  2. Treten Sie der Google-Gruppe "App-Engine-Managed-VM" bei, um an Diskussionen über verwaltete VMs teilzunehmen.
  3. Projekte (oder Apps - sie sind dasselbe) müssen sich in einem US-Rechenzentrum befinden. Wenn Sie ein vorhandenes Projekt verwenden möchten, fahren Sie mit dem nächsten Schritt fort. Andernfalls erstellen Sie eine neue App in einem US-Rechenzentrum. Navigieren Sie zu https://preview.appengine.google.com und erstellen Sie eine neue App.
  4. Aktivieren Sie die Abrechnung für das Projekt. Besuchen Sie die Seite https://cloud.google.com/console/project/apps~ , auf der sich die ID Ihres Projekts befindet. Klicken Sie im linken Menü auf Einstellungen und aktivieren Sie die Abrechnung. Wenn Ihre App unter einem Premier-Konto abgerechnet wird, senden Sie eine E-Mail an [email protected], damit Ihr neues Cloud-Projekt unter demselben Konto abgerechnet wird.
  5. Senden Sie eine E-Mail an [email protected] mit der Anwendungs-ID in der Betreffzeile.

Wenn wir Ihre E-Mail erhalten, konfigurieren wir einige Ressourcen hinter den Kulissen und benachrichtigen Sie per E-Mail, wenn Ihr Projekt fertig ist. Die E-Mail enthält die endgültigen Anweisungen für die Einrichtung. Wenn Sie beim Befolgen dieser Anweisungen auf einen Fehler stoßen, kontaktieren Sie uns unter [email protected].

fernandopasik
quelle
2
Ja, mein Entwicklerkollege, das habe ich auch gerade gesehen. Cool :-)
Chris G.
Ich hatte keine gute Erfahrung mit dem Hosten von NodeJS-Webservern auf verwalteten VMs. Ich würde eine statische IP für die Konfiguration einer Domain zuordnen können, aber dann würde Google die VMs zufällig neu starten und sie würden die statische IP verlieren. Hierfür gibt es offene Fehler. Die Verwendung des Load Balancers könnte helfen, aber ich bin auch dort auf einige Probleme gestoßen.
Splaktar
40

Node.js wird von Joyent gepflegt, der in gewisser Weise ein Konkurrent von Google ist.

Node.js hat keinerlei Verbindung zu Google, sondern basiert auf einem Open Source-Projekt, das von Google gestartet wurde.

Google ist vielleicht genau wie Azure in dieses Geschäft eingestiegen, aber es gibt bereits so viele PaaS, dass es sich möglicherweise nicht lohnt. Ich habe GAE noch nie verwendet, aber ich verstehe, dass es ganz anders ist als bei anderen PaaS, und Sie müssen GAE-Bibliotheken verwenden, damit Ihr Code ausgeführt wird.

Was, das ist mein persönliches Gefühl, nicht wirklich das ist, wonach die Node.js-Community sucht. Node.js wird verwendet, um schnell eine schnelle, leichtgewichtige App zu erstellen, beispielsweise einen großen Anteil an APIs für Telefon-Apps.

Wenn Sie jedoch nach einem PaaS für Node.js suchen, gibt es einige davon:

  • Joyent (Nodejitsu)
  • dotCloud mit WebSockets-Unterstützung.
  • Windows Azure
  • Nodester (kürzlich von App Fog gekauft)
  • Jede Cloud-Gießerei Host sollte auch Node.js unterstützen.
  • und viele mehr...

Das sind nur einige Namen aus meinem Kopf. Es gibt einige, aber das sind die wichtigsten. Oh, es gibt auch Heroku , aber sie haben keine Unterstützung für WebSocket, was für jede Socket.IO-basierte App ein Mist ist.

3on
quelle
Mit PaaS für Google meinen Sie PaaS für Node.js? :)
Ibrahim Arief
@IbrahimArief Danke Tippfehler behoben.
3on
Heroku unterstützt auch Node.js und ist sehr beliebt. devcenter.heroku.com/articles/nodejs
Ben
3
Heroku unterstützt socket.io mit xhr-polling.
Whiskers75
Ich sehe nicht, dass Lightweight nicht mit PaaS kompatibel ist (die zweite ermöglicht Ihnen nur eine skalierbare Bereitstellungslösung mit geringerem Wartungsaufwand).
Nacht
23

Sie können den Knoten einfach in Google Compute Engine (im Grunde genommen einem virtuellen Computer) installieren. Hier ist ein Link: https://developers.google.com/datastore/docs/getstarted/start_nodejs/

Grüße Lars

user1700737
quelle
6
Hey, du hast recht, du kannst Node auf GCE installieren. Als Verbindungsstatus können Sie die Cloud-Datenspeicher-API verwenden, um denselben NOSQL-Datenspeicher wie App Engine zu verwenden. Dies hat jedoch nicht die gleichen Vorteile wie App Engine: Sie müssen das Betriebssystem, die Sicherheitspatches, die NodeJS-Updates usw. verwalten. In einem PAAS wie App Engine vermeiden Sie all dies.
David
22

Nach jahrelangen Erfahrungen mit Google Appengine wechsle ich jetzt zu anderen Cloud-Diensten.

Ich denke, Google Appengine ist eigentlich ein altmodischer Service in der Cloud-Computing-Branche. Dies ist langsam für neue Technologien, schwierig bereitzustellen, Zeitverschwendung beim Erlernen der APIs und das Fehlen vieler Funktionen, die Sie in den von Ihnen verwendeten Sprachen benötigen.

Unabhängig von der großen Community von Google würde ich niemandem empfehlen, Google Appengine zu verwenden.

[neuere paas]

Ich empfehle Ihnen dringend, OpenShift, Appfog und die neuen Paas-Cloud-Computing-Technologien von heroku .etc zu verwenden, die weitaus erweiterbarer sind, weniger Änderungen erfordern, von einer Plattform auf eine andere migrierbar sind und die Schönheit der natürlichen Sprache und ihres Standards freier codieren Bibliotheken ohne hässliche plattformspezifische Apis.

[iaas]

Wenn Sie mehr Kontrolle über die laufende Betriebssystemumgebung wünschen, können Sie Linode, Digital Ocean, Amazon, Google Cloud Engine, Microsoft Azure usw. ausprobieren.


quelle
Ich würde dies noch einmal bestätigen, auch wenn jemand dies gerne ablehnen würde.
4
Ich denke, Sie sollten erwägen, dieser Antwort weitere Details hinzuzufügen, da sie etwas kontrovers ist.
Thomas Ahle
13

Da es sich bei App Engine um eine Plattform als Service handelt und um GAE eine neue Sprache / einen neuen Stack hinzuzufügen, muss Google Bibliotheken auf mittlerer Ebene erstellen, die mit der Vielzahl der Services von App Engine kompatibel sind .

Darüber hinaus sind alle App Engine-Apps in einer Sandbox gespeichert und verfügen über mehrere Funktionen, die in ihrer Sandbox-Umgebung eingeschränkt sind. Dies bedeutet, dass Google neben der Notwendigkeit, Servicebibliotheken zu erstellen, auch eine gesicherte Sandbox-Umgebung für jede Sprache / jeden Stapel erstellen muss, die bzw. das sie in GAE einführen möchten.

Ich persönlich denke, der zweite Grund ist, dass Google die Unterstützung für neue Sprachen / Stacks nicht so aggressiv einführt wie Azure. App Engine wird in gewisser Weise besser verwaltet als Azure und hat höhere anfängliche Entwicklungskosten für neue Sprachen / Stapel.

Ibrahim Arief
quelle
3

Hintergrund: App Engine Standard vs App Engine Flexible

Zu diesem Thema scheint es einige Verwirrung zu geben, da es zwei Versionen von App Engine gibt: Standard und Flexibel. NodeJS wird von App Engine Flexible unterstützt, jedoch NICHT von App Engine Standard. (Siehe hier für eine vollständigere Erklärung der Unterschiede).

App Engine Standard lässt sich in Sekunden skalieren (im Gegensatz zu Minuten in der flexiblen Umgebung) und verfügt über eine kostenlose Stufe, sodass Sie ohne einen Cent Geld entwickeln und testen können. Diese Vorteile gehen zu Lasten der Flexibilität . App Engine Standard unterstützt nur bestimmte Sprachen und Bibliotheken, erlaubt weder das Schreiben auf die Festplatte noch SSH. Mit anderen Worten, die Umgebung ist standardisiert .

Antwort: NodeJS-Unterstützung für App Engine Standard

Wenn Sie an NodeJS-Unterstützung für App Engine Standard interessiert sind, markieren Sie dieses Problem: https://issuetracker.google.com/issues/67711509 .

Google befasst sich mit Funktionen, die die Aufmerksamkeit der Community auf sich ziehen (siehe hier ). Der beste Weg, um Ihre Aufmerksamkeit auf diese Funktion zu lenken, besteht darin, sie im oben verlinkten Google Issue-Tracker zu markieren.

Trevor
quelle
1

Google gab am 21. März 2016 bekannt, dass Node.js auf Google App Engine in die Beta geht: Phase https://cloudplatform.googleblog.com/2016/03/Node.js-on-Google-App-Engine-goes-beta.html m = 1

Dies wurde erwartet, da Google ebenfalls der Node.js Foundation beigetreten ist und Google die V8-JavaScript-Engine entwickelt, die Chrome und Node.js unterstützt: https://nodejs.org/en/blog/announcements/welcome-google/

Gleichzeitig kündigte Google eine Partnerschaft mit NodeSource an.

Antoine Dusséaux
quelle
0

Google ist ein softwarekonservatives Unternehmen. Das Programmieren eines Backends in JavaScript wäre für die Manager von Google absolut unvorstellbar. Das Erstellen einer Infrastruktur, die Google selbst nicht nutzt, ist keine gute Investition. Referenz: Notizen vom Mystery Machine Bus

user7610
quelle
+1 für den Beitrag, aber ich denke, es ist nicht implementiert, weil es nicht so viel Nachfrage als PaaS hat, wie die meisten fortgeschrittenen Benutzer für IaaS
Stefan Rogin
Das ist eine breite Meinung. Sie haben wahrscheinlich Recht, dass Google seine Suchmaschine nicht in JavaScript schreiben würde, aber neben großen Infrastrukturprojekten ist noch viel mehr los.
Jude Osborn
@clickstefan das ist sicherlich auch ein faktor. Die Nachfrage der Bevölkerung ist für sie jedoch keine so große treibende Kraft. Schauen Sie, wie lange sie gebraucht haben, um PHP-Unterstützung hinzuzufügen. @Jude Osborn Google vermeidet Javascript, wo immer sie können. Sie haben sogar GWT- und Verschluss-Tools und später Dart und AtScript sowie das Traceur ES6-Material erstellt. Wenn sie JavaScript schreiben, verwenden sie den Closure-Compiler, wodurch ihr JavaScript wie Java aussieht.
user7610
4
@ user7610 das ist etwas seltsam für die Macher von v8 und Unterstützer von Angular
Stefan Rogin