¿Cuál es la mejor manera de implementar actualizaciones automáticas para una aplicación que se implementa localmente en las ubicaciones de los clientes?

No sé si esta es la mejor manera, pero esto es lo que hicimos:

  1. Reemplazó al ejecutado ejecutado con un iniciador, lanzó el programa real y monitoreó los bloqueos, etc. Tenía una cobertura de prueba del 100%, porque no podía fallar. Si se estrellara, estaríamos jodidos, tendríamos que enviar un correo electrónico, etc.
  2. Teníamos un archivo en un servidor ftp que tenía la versión actual, y si era una actualización forzada.
  3. Si el iniciador detecta una actualización normal (la versión es diferente a la que se está ejecutando), informaría al usuario y seguiría su vida.
  4. Si el iniciador detectó una actualización forzada (la versión es diferente con el indicador de fuerza), esperaría informar al usuario que tenían X cantidad de tiempo antes de que se aplicara la actualización, detener lo que está haciendo, etc.
  5. Si el iniciador se estuviera actualizando, finalizaría el proceso secundario (la aplicación) e iniciaría el instalador como un proceso similar y se terminaría a sí mismo (para evitar problemas de bloqueo de archivos en Windows)

Las actualizaciones normales se aplicaron la primera vez que se ejecutó la aplicación ese día, sin informar al usuario. Esto significaba que solo teníamos que admitir una versión durante menos de 24 horas después de lanzar una nueva versión. Por lo general, después de 24 horas, agregamos la bandera de fuerza para atrapar a todas las personas que no cerraron la aplicación en mucho tiempo.

Solo tuvimos que hacer una actualización de la fuerza de la vida real una vez, lanzamos una versión que era una construcción incorrecta (heh, sucede).

More Interesting

En HTML5, ¿ contiene o contiene ? Me estoy confundiendo un poco sobre esto.

¿Cuáles son algunas ideas de proyectos relacionadas con la base de datos o la minería de datos o la aplicación web?

¿Qué framework / pila de software es el mejor para desarrollar una aplicación web rápida y altamente receptiva compuesta por unas pocas pantallas de selecciones de menú desplegable?

¿Cuáles son las desventajas de las aplicaciones web centradas en API?

¿Cuáles son algunas buenas alternativas de RescueTime?

¿Qué es mejor para una aplicación web moderna que se ocupa de pagos, Flask o Django?

¿Cuáles son los mejores clientes de video chat?

¿Qué es bueno para una aplicación web con un marco de JavaScript front-end, AngularJS o React.js, si estoy usando .Net MVC5 como mi arquitectura de back-end?

¿Qué enfoque de prueba de automatización es el más adecuado para una aplicación basada en web basada en JSF y PrimeFaces (interfaces de usuario basadas en componentes)?

¿Qué opinas sobre la página de inicio de Toolyo? ¿Cómo puede ser mejorado?

¿Cuáles son las herramientas o marcos de animaciones web utilizados en un sitio web popular como Apple.com?

¿Es posible integrar las características de una aplicación web PHP (que está fácilmente disponible) a una aplicación web existente escrita en Django?

¿Qué es un excelente componente de hoja de cálculo basado en web de código abierto que se puede incrustar en aplicaciones basadas en web?

¿Es cierto que md5 no es lo suficientemente seguro para las aplicaciones web?

Al crear una aplicación a gran escala, ¿cómo planifica y estructura su CSS?