2012-08-13 16 views
5

He estado utilizando SilkJS para algunos proyectos de afición míos. Hasta ahora, el rendimiento es increíble, y me encanta poder usar JavaScript tanto para el front-end como para el back-end. Estoy pensando en usarlo en algunos proyectos comerciales, pero quiero hacer mi debida diligencia sobre la viabilidad de tal decisión. Hay algunas preguntas que tengo, y me gustaría tener una idea.Viabilidad de SilkJS/JavaScript del lado del servidor para uso empresarial

1) ¿Qué proyectos empresariales, si hay alguno, conocen con SilkJS?

2) ¿Qué recursos están disponibles con respecto a la seguridad de usar SilkJS como un servidor web u otras soluciones basadas en V8? (historial de vulnerabilidades, tiempo promedio para parchear, etc.).

3) ¿Qué dificultades han tenido que enfrentar con el uso de SilkJS u otras soluciones basadas en V8 como servidor web, y cómo, si es posible, lo han tratado?

4) ¿SilkJS maneja bien la escala horizontal (distribuyendo la carga entre múltiples servidores)? ¿Su respuesta está basada en cálculos teóricos y ejemplos probados en el campo?

5) ¿De qué recursos tiene conocimiento acerca de la construcción de un sitio web utilizando SilkJS como servidor web, además del sitio web oficial en sí?

Antes de responder, en primer lugar quisiera eliminar el 80% de las respuestas que se consigue con las siguientes limitaciones:

1) No, no voy a utilizar NodeJS. Por motivos comerciales y de salud mental, la programación frenética asincrónica con devolución de llamada no es algo que vaya a utilizar. No intentes convencerme de que "me acostumbraré y me encantará". No es óptimo para el tipo de proyectos en los que estoy trabajando. Sí, me escuchaste, asincrónico no es perfecto para todo.

2) Soy consciente de que la programación sincrónica se puede simular en NodeJS. No, tampoco estoy interesado en eso. No estoy usando NodeJS - superarlo.

3) Soy plenamente consciente de que la mayoría de las aplicaciones están unidas por E/S y no por CPU. Como resultado, sí, usar PHP generalmente está bien. Sin embargo, hay ciertos proyectos para los cuales las optimizaciones de la CPU deben producir un retorno de inversión considerable. No, una empresa no tiene que ser Facebook para que esto sea cierto. Esto no pretende ser una discusión sobre "por qué PHP está bien". Es una exploración de la fiabilidad de SilkJS para más proyectos comerciales.

3) Sí, sé lo que es Java. No, no estoy interesado en por qué sería genial si quisiera reducir el cuello de botella de la CPU. Una vez más, esto no pretende ser una discusión sobre "por qué otros idiomas están bien". Es una exploración de la confiabilidad de SilkJS y las soluciones del lado del servidor basadas en V8 para más proyectos empresariales.

4) Sí, es posible tener la mejor respuesta a esta pregunta. Quien defienda mejor o en contra del uso de SilkJS para su uso en un entorno empresarial obtiene el voto de respuesta correcto.

Además, soy consciente de que, a pesar de mi deseo de evitar NodeJS, utiliza V8. En ese sentido, estoy abierto a revisiones de seguridad y revisiones de estabilidad para V8 en el lado del servidor dentro del contexto de uso a través de NodeJS.

En cuanto a lo que quiero decir con "empresa", piense en sitios de comercio electrónico con varios cientos de miles de visitas por mes y/o aplicaciones para las cuales la estabilidad y el tiempo de actividad son esenciales y tienen cientos de miles de usuarios.

Mi objetivo aquí es no bash SilkJS.Me encanta, y continuaré usándolo cuando sea posible. Sin embargo, como programador profesional, no puedo usar lo que disfruto para cada proyecto. Por lo tanto, deje que la comprensión comience ..

Respuesta

1

SilkJS debe escalarse exactamente como lo haría con Apache + PHP. Equilibrador de carga frente a una granja de servidores SilkJS. Escale un back-end de MySQL como ya sabe.

SilkJS no hace GZIP o SSL. Creo que sería un riesgo confiar en una implementación de uno o ambos en la naturaleza, contra todos los bots (piratas informáticos o de otro tipo), arañas, navegador, programas perl personalizados, etc. Puede implementar Apache trivialmente como un revés proxy frente a SilkJS para proporcionar esas funciones.

De hecho, puede fragmentar su aplicación del lado del servidor y usar apache como un proxy inverso para conectarse al fragmento apropiado en función de la URL solicitada.

Creo que si publicas algún problema de seguridad o de otro tipo en el grupo de Google de SilkJS, verás un parche publicado en el repositorio de github de manera oportuna.

Aparte del sitio SilkJS.net, puede buscar varios repositorios en github que tengan programas de ejemplo utilizando SilkJS.

http://www.sencha.com/blog/discover-music-with-sencha-touch-2

Ese artículo se describe cómo Modus Create construyeron una solicitud de NPR usando Sencha Touch como la parte delantera y SilkJS como el extremo posterior. Dice:

"Los servidores SilkJS están alojados en la nube EC2 de Amazon, detrás de un equilibrador de carga para la velocidad y la redundancia. Ambos hosts SilkJS son alimentados por la API NPR a través de cURL y son responsables de recortar más de 300 KB de la paquete de datos, ¡llevando la carga promedio a menos de 200KB antes de ser comprimidos para su transmisión! "

+0

Muchas gracias – user396404

Cuestiones relacionadas