NodeJS Managed Hostings vs VPS
Gibt es eine Reihe von managed cloud-basierte hosting-services für nodejs gibt die scheinen relativ neu und einige noch in der Beta.
Noch einen anderen Weg, um host eine nodejs-app ist die Einrichtung eines Stapels auf einem VPS wie Linode.
Frage ich mich, was ist der grundlegende Unterschied zwischen diesen zwei Arten der Bereitstellung.
Welche Faktoren sollte man berücksichtigen bei der Auswahl einer über dem anderen?
Welche ist besser geeignet für die Produktion wenn man bedenkt, wie jung diese Dienste sind.
Klar sein, ich verlange nicht, auf die Wahl eines Anbieters, sondern zu entscheiden, ob der host auf einem verwalteten nodejs bestimmten hosting-oder an eine altmodische, selbst-setup VPS.
- Als einige Notizen, auch wenn du mit einem hoster, es lohnt sich, einmal durch, um zu verstehen, was Los ist. Hoffentlich werden meine links helfen ...
- Danke Mann, ich glaube, ich gehe mit Linode die VPS jetzt also deine links wären sehr hilfreich, obwohl ich hoffte, dass einige weniger offensichtliche Nachteile und Profis speziell auf gehostete Lösungen, die scheinen ziemlich blackbox für mich.
- OK - macht Sinn. Hinzugefügt ein bisschen mehr auf vor/Nachteile. Ich werde dir Folgen wenn mir mehr einfällt ...
- Ich habe noch nie verwendet die cloud-hosting, und ich habe immer verwendet VPS Node. Es ist eigentlich sehr leicht zu verwalten, die Knoten auf einer linux-box. Allerdings haben Sie als alternativen zu Linode? Ich habe immer festgestellt, dass Sie vergleichsweise teuer. Digital Ocean ist ziemlich neu und hat tolle Preise mit hochwertigem service.
- Ich finde diese einfache one-touch-cloud-Anbieter wie Nodejitsu und Heroku mit einer dunklen Seite, wenn ich Sie in der Produktion verwendet. Der Speicher ist wirklich klein, pro "VM", wie 256 MB klein. Wie Sie das design Ihrer Systeme zu HABEN, um Lastenausgleich. Haben nur ein Knoten und seine sorry, manchmal langsam und lags zu wecken. Linode und Digitalen Ozean sind ziemlich zippity schnell und es ist Amazon auch, aber diese von Ihnen verlangen, bis zum Mann auf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit einer der Dienste ist für die meisten Teil die Hände ab - Sie schreiben Sie Ihren code und lassen Sie sich sorgen über die Verwaltung der box, halten Sie Ihren Prozess, die Schaffung der publishing-Kanal, patchen des OS, etc...
Im Gegensatz mit Ihrer eigenen VM gibt Ihnen mehr Kontrolle, aber mit mehr up-front-und Laufenden Zeit-Investition.
Andere überlegung ist, einige Hoster und cloud-Anbieter bieten proprietäre oder verschiedene Varianten auf Technologien. Sie haben Gründe für Sie, und Sie bieten Wert, aber es bedeutet, dass, wenn Sie wechseln wollen, auf cloud-Anbieter, es könnte bedeuten, Sie haben zu umschreiben, code, deployment-Skripte, etc... Auf der anderen Seite mit VMs, die mit standard-OS als die baseline, die ist ziemlich allgemein. Wenn Sie automatisieren/script/dokumentieren Sie die Konfiguration Ihrer VMs und Ihr code bleibt generic, dann Ihre Optionen offen bleiben. Wenn Sie eine Abhängigkeit von einem proprietären cloud-Technologie, dann wäre es gut, zu Abstrakt und es entfernt, hinter einer Schnittstelle, so ist es eine entkoppelte Komponente und nicht gestreut im gesamten code.
Habe ich beides getan. Ich habe die VM Weg vor kurzem vor allem, weil ich wollte, dass die Lernerfahrung. Ich hatte an:
Die Liste geht weiter. Am Ende kostet mich mehr nach vorne mal nicht codieren, aber ich lernte eine Menge mehr Dinge. Wenn diese für Sie wichtig sind, dann give it a shot. Wenn Sie möchten, um den Fokus auf das schreiben von code, dann wird ein Knoten hosting-provider kann für Sie sein.
Am Ende, ich hatte auch mehr Möglichkeiten haben - ich wollte einen zweiten Standort. Ich wurde ein Eintrag Hinzugefügt, um meine reverse-proxy, append mein Skript zum starten einer anderen app mit für immer, voilà, ein weiterer Standort. Mehr Kontrolle. Danach wollte ich ausprobieren MongoDB - einfach installiert.
Kosten klug, Sie sind etwa die gleichen, aber wenn Sie beginnen das hosting mehrerer Websites mit den vielen anderen Paketen, wie Datenbanken, etc..., dann die VM starten können, immer billiger.
Nodejitsu open-Source Ihre Werkzeuge, die macht es auch einfacher, wenn Sie tun Sie Ihre eigenen.
Wenn Sie es selbst tun, hier einige links, die Ihnen helfen können:
Halten den server:
https://github.com/nodejitsu/forever/
http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever
https://github.com/bryanmacfarlane/svchost
Aufsteiger und Monit
generische auto-start-und restart-durch die überwachung
http://howtonode.org/deploying-node-upstart-monit
Cluster-Knoten
Läuft ein Prozess pro core
http://nodejs.org/docs/latest/api/cluster.html
Reverse-Proxy
https://github.com/nodejitsu/node-http-proxy
https://github.com/nodejitsu/node-http-proxy/issues/232
http://blog.nodejitsu.com/http-proxy-middlewares
https://github.com/nodejitsu/node-http-proxy/issues/168#issuecomment-3289492
http://blog.argteam.com/coding/hardening-node-js-for-production-part-2-using-nginx-to-avoid-node-js-load/
Skript installieren
https://github.com/bryanmacfarlane/svcinstall
Ausfahrt Shell-Skript, Basierend auf der Prozess-Exit-Code
Website Veröffentlichen
Mit git zum veröffentlichen auf einer website
IMHO der größte Nachteil der Einrichtung Ihres eigenen stack ist, dass Sie brauchen, um zu verwalten Dinge wie Node.js führen Sie
forever
starten als daemon, bringen Sie es hinter einem reverse-proxy wie Nginx, und so weiter ... die große Sache über Node.js - Herstellung feuern ein web-server einen one-liner - ist einer der größten Nachteile, wenn es um die Serienreife Systeme.Plus, Sie haben alle Fragen, die die Verwaltung und Aktualisierung und Sicherung Ihrer server selbst.
Dies ist so viel einfacher mit den Hostern: es ist in der Regel eine
git push
- und das ist es. Skalierung? Einfach. Replikation? Einfach. ...? Einfach. Alle innerhalb von ein paar Klicks.Den Nachteil mit den Hostern ist, dass Sie nicht passen Sie die Umgebung. Okay, kann man wohl auswählen, welche version von Node.js und /oder npm zu laufen, aber das ist es. Sie haben keine Kontrolle über das, was 3rd-party-software installiert ist. Du hast keine Kontrolle über das Betriebssystem. Sie haben keine Kontrolle über, wo sich die Server befinden. Und so weiter ...
Natürlich einige Hoster erlauben Sie den Zugriff auf einige dieser Dinge, aber es ist selten ein hoster unterstützt alle.
So, im Grunde ist die Frage nach Node.js ist das gleiche wie mit jeder anderen Technologie: Es ist ein pro vs con des Individualismus, Preisgestaltung, scalabilty, Zuverlässigkeit, Kenntnisse, ...
Ich persönlich wählte zu gehen mit einem hoster): Die Zeit und Mühe, die ich sparen leicht übertreffen die Nachteile. Wohlgemerkt: Für mich, persönlich.
Diese Frage muss individuell beantwortet.