node.js - docs - sails run
Ruta de actualización de Sails.JS 0.10 a 0.11 Mantenimiento de compatibilidad hacia atrás (1)
Tengo un proyecto Sails.JS heredado que se encuentra actualmente en la versión 0.10.5 de Sails. Me gustaría actualizar el proyecto a Sails 0.11.xy en adelante, pero hay una trampa. Este proyecto actúa como back-end para una aplicación móvil nativa, por lo que a diferencia de la actualización de un servidor web donde puede vincular las nuevas bibliotecas de cliente sails.io.js y socket.io en su sitio web, no podemos confiar en que los usuarios actualicen la aplicación nativa .
Parece irracional que yo sea el único que haya enfrentado este problema, así que pensé en hacerle la pregunta a la comunidad para ver si hay algo brillante que no haya pensado para hacer que la actualización sea perfecta.
Las ideas que he pensado son:
Ejecute dos versiones de la aplicación usando subdominios ( https://v2.domain.com/api/ ... ). Obviamente, esta es la solución más obvia, pero requiere una buena cantidad de configuración de servidor para llevar a cabo y actualmente estamos ejecutando un PAAS que tiene una capacidad limitada para personalizar el entorno, por lo que es probable que esto requiera cambiar de proveedor.
Además del trabajo que supone seguir esta ruta, está la decisión de qué hacer con la base de código. Podría mantener dos ramas del código para las dos versiones de velas, pero eso significa corregir errores dos veces y dos veces el potencial de errores. O puede poner provisiones en el código para verificar bajo qué versión de velas se está ejecutando. Ninguno de estos parece terriblemente limpio, pero creo que optaría por la segunda de las dos opciones si se tratara de esto.
Explore el código del núcleo de sails.js y encuentre la manera de hacer que socket.io 0.9 y socket.io 1.0 se ejecuten uno al lado del otro simultáneamente. Esto me permitiría conseguir que todos los usuarios actualicen su aplicación móvil antes de desactivar el soporte 0.9. Sin embargo, esto también tiene inconvenientes obvios, siendo los principales los que realizan tales cambios integrales a nivel de marco.
Me encantaría tener una idea de lo que otros han hecho en esta situación, si la solución es simplemente permanecer en Sails 0.10.5, entonces está bien, pero me encantaría obtener el beneficio adicional de las bibliotecas nativas Socket.IO que tienen salir para v.1.0 en lugar de la solución de hilado de semi hogar que estoy usando actualmente. También sería bueno continuar obteniendo actualizaciones de seguridad y funciones en el futuro.
La única solución segura para este problema sería configurar un proxy inverso nginx que tenga su servidor actual como base y luego tener otro servidor con la ruta / v2 prefijada antes de cada ruta creada y luego migrar a los usuarios a la ruta / v2 como lo está capaz de hacerlo, recomendaría usar el mismo repositorio git para ambos servidores, pero mantenerlos en diferentes ramas para que pueda fusionar los nuevos cambios en ambos si resulta necesario.