2012-09-29 17 views
23

Hay un montón de servicios gestionados de hospedaje basados ​​en la nube para nodejs out there que parecen relativamente nuevos y algunos aún en versión Beta.NodeJS Managed Hostings contra VPS

Otra ruta más para alojar una aplicación nodejs es configurar una pila 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 otro?

Cuál es más adecuado para la producción teniendo en cuenta la edad de estos servicios.

Para dejar en claro que no estoy preguntando sobre la elección de un proveedor, sino para decidir si alojar en un hosting específico de un nodo gestionado o en un VPS configurado a la antigua.

+1

Como algunos tienen notas, incluso si vas con un proveedor de alojamiento, vale la pena pasar por una vez para entender lo que está pasando. Espero que mis enlaces ayuden ... – bryanmac

+0

Gracias, creo que iré con Linode VPS por ahora, así que sus enlaces serán muy útiles, aunque esperaba encontrar algunos inconvenientes y ventajas menos obvias especialmente en las soluciones alojadas que parecen bastante blackbox para yo ahora. –

+0

OK - tiene sentido. Se agregó un poco más sobre los pros/contras. Seguiré si pienso en más ... – bryanmac

Respuesta

34

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

Por el contrario, tener su propia máquina virtual le da más control, pero con más inversión inicial y continua.

Otra consideración es que algunos hosters y proveedores de servicios en la nube ofrecen variaciones propias o distintivas de las tecnologías. Tienen razones para ellos y ofrecen valor, pero significa que si desea cambiar de proveedor de la nube, puede significar que tiene que volver a escribir el código, las secuencias de comandos de implementación, etc. ... Por otro lado, tenía que usar máquinas virtuales con SO estándar ya que la línea base es bastante genérico Si automatiza/escribe/documenta la configuración de sus máquinas virtuales y su código permanece genérico, entonces sus opciones permanecen abiertas.Si tomas una dependencia de una tecnología de nube propietaria, entonces sería bueno abstraerla detrás de una interfaz, por lo que es un componente desacoplado y no se rocía en todo tu código.

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

  • conseguir la máquina virtual desde el proveedor de la nube
  • que tenía que actualizar y parchear el sistema operativo
  • tuve que instalar y configurar git como canal de publicación
  • que tenía que escribir alguna scripts y usar cosas como para siempre para mantenerlo funcionando
  • Tuve que configurar el http-proxy inverso para que ejecutara varios sitios.
  • tuve que configurar DNS con el proveedor de la nube, los puertos abiertos para git etc ...

la lista sigue. Al final, me costó más tiempo sin codificar, pero aprendí muchas cosas más. Si esos son importantes para ti, entonces pruébalo. Si desea centrarse en escribir su código, entonces un proveedor de alojamiento de nodo puede ser para usted.

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

En cuanto a los costos, son casi lo mismo, pero si comienza a hospedar múltiples sitios con muchos otros paquetes como bases de datos, etc. ..., la máquina virtual puede comenzar a ser más barata.

Nodejitsu open sourced sus herramientas, que también lo hacen más fácil si lo hace por su cuenta.

Si lo hace usted mismo, aquí hay algunos enlaces que pueden ayudarle a:

Mantener el servidor hasta:

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

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

https://github.com/bryanmacfarlane/svchost

Upstart y Monit inicio automático genérico y reinicio a través de Monit oring

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/

la instalación de secuencias de comandos

https://github.com/bryanmacfarlane/svcinstall

Exit Shell Script Based on Process Exit Code

Publicar sitio

Using git to publish to a website

14

En mi humilde opinión, la mayor desventaja de configurar tu propia pila es que necesitas administrar cosas como hacer que Node.js ejecute forever, iniciarlo como daemon, llevarlo detrás de un proxy inverso como Nginx, y así sucesivamente. .. Lo mejor de Node.js, que hace que un servidor web sea un juego de una sola línea, es uno de sus mayores inconvenientes cuando se trata de sistemas listos para producción.

Además, usted tiene todas las cuestiones de administración y actualización y seguridad de su servidor usted mismo.

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

El inconveniente de los hosters es que no se puede ajustar el entorno. De acuerdo, probablemente puedas elegir qué versión de Node.js y/o npm ejecutar, pero eso es todo. 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í sucesivamente ...

Por supuesto, algunos proveedores de servicios de Internet le permiten acceder a algunas de estas cosas, pero rara vez hay un proveedor que sea compatible con todo.

Así que, básicamente, la pregunta sobre Node.js es el mismo que con cada otra tecnología: Es un profesional con contra del individualismo, la fijación de precios, Escalabilidad, fiabilidad, conocimientos, ...

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

Esta pregunta debe responderse individualmente.