NodeJS Managed Hostings vs VPS

Hay una gran cantidad de servicios de hosting administrados basados ​​en la nube para nodejs que parecen relativamente nuevos y algunos aún están en Beta.

Otra ruta para alojar una aplicación nodejs es configurar una stack en un VPS como Linode.

Me pregunto cuál es la diferencia básica entre estos dos tipos de implementación. ¿Qué factores se deben considerar al elegir uno sobre el otro?

Cuál es más adecuado para la producción, considerando lo jóvenes que son estos servicios.

Para ser claro, no estoy preguntando sobre la elección de un proveedor, sino por decidir si alojar en un hosting específico de nodejs administrado o en un VPS de configuración automática antiguo.

El uso de uno de los servicios es en su mayor parte manos libres: usted escribe su código y les permite preocuparse por la administración de la caja, mantener su proceso, crear el canal de publicación, parchear el sistema operativo, etc.

En contraste, tener su propia máquina virtual le brinda más control pero con una mayor inversión de tiempo inicial y continua.

Otra consideración es que algunos hosters y proveedores de nube ofrecen variaciones propietarias o distintas en las tecnologías. Tienen razones para ellos y ofrecen valor, pero significa que si desea cambiar de proveedor en la nube, puede que tenga que reescribir el código, los scripts de implementación, etc. En el otro caso, las máquinas virtuales con sistema operativo estándar son las siguientes. bastante genérico Si automatiza / crea un script / documenta la configuración de sus máquinas virtuales y su código permanece genérico, sus opciones permanecerán abiertas. Si toma una dependencia de una tecnología de nube patentada, sería bueno abstraerla detrás de una interfaz para que sea un componente desacoplado y no se esparce por todo su código.

He hecho ambas cosas. Hice la ruta de VM recientemente, principalmente porque quería la experiencia de aprendizaje. Tuve que:

  • obtener la máquina virtual del proveedor de la nube
  • Tuve que actualizar y parchear el sistema operativo.
  • Tuve que instalar y configurar git como canal de publicación.
  • Tuve que escribir algunos scripts y usar cosas como siempre para mantenerlo funcionando
  • Tuve que configurar el http-proxy inverso para que funcionara en múltiples sitios.
  • Tuve que configurar DNS con el proveedor de la nube, abrir puertos para git, etc …

La lista continua. Al final, me costó más tiempo no progtwigr, pero aprendí muchas cosas más. Si eso es importante para ti, entonces dale una oportunidad. Si desea concentrarse en escribir su código, entonces un proveedor de alojamiento de nodo puede ser para usted.

Al final, también tenía más opciones: quería agregar un segundo sitio. Agregué la entrada a mi proxy inverso, agregué mi script para iniciar otra aplicación para siempre, voila, otro sitio. Mas control. Después de eso, quise probar mongodb – simple – lo instalé.

En cuanto al costo, son casi iguales, pero si comienza a alojar varios sitios con muchos otros paquetes como bases de datos, etc., entonces la VM puede comenzar a abaratar.

Las herramientas de código abierto de Nodejitsu también lo hacen más fácil si usted hace las suyas.

Si lo haces tú mismo, aquí hay algunos enlaces que pueden ayudarte:

Manteniendo el servidor arriba:

https://github.com/nodejitsu/forever/

http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever

https://github.com/bryanmacfarlane/svchost

Arranque y reinicio genérico de Upstart y Monit a través del monitoreo

http://howtonode.org/deploying-node-upstart-monit

Nodo de clúster Ejecuta un proceso por núcleo

http://nodejs.org/docs/latest/api/cluster.html

Proxy inverso

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/

Guarde la instalación

https://github.com/bryanmacfarlane/svcinstall

Salir del script de shell según el código de salida del proceso

Publicar sitio

Usando git para publicar en un sitio web

En mi opinión, el mayor inconveniente de configurar tu propia stack es que necesitas administrar cosas como hacer que Node.js se ejecute forever , iniciarlo como un demonio, llevarlo detrás de un proxy inverso como Nginx, y así sucesivamente … Lo que pasa con Node.js, es decir, hacer que un servidor web se convierta en una sola línea, es uno de sus mayores inconvenientes cuando se trata de sistemas listos para producción.

Además, tiene usted mismo todos los problemas de administración, actualización y protección de su servidor.

Esto es mucho más fácil con los anfitriones: por lo general es un git push y eso es todo. ¿Escalada? Fácil. ¿Replicación? Fácil. …? Fácil. Todo dentro de unos pocos clics.

El inconveniente de los hosters es que no se puede ajustar el entorno. De acuerdo, probablemente pueda elegir qué versión de Node.js y / o npm se ejecutará, pero eso es todo. Usted no tiene control sobre qué software de terceros está instalado. No tienes control sobre el sistema operativo. No tienes control sobre dónde se encuentran los servidores. Y así …

Por supuesto, algunos hosters te permiten acceder a algunas de estas cosas, pero rara vez hay un hoster que sea compatible con todo.

Entonces, básicamente, la pregunta con respecto a Node.js es la misma que con la otra tecnología: es un pro vs con de individualismo, precios, escalabilidad, confiabilidad, conocimiento, …

Personalmente, elegí ir con un proveedor: el tiempo y el esfuerzo que ahorro superan fácilmente las desventajas. Eso sí, para mí, personalmente.

Esta pregunta debe ser respondida individualmente.

    Intereting Posts