¿Es difícil escribir software que se actualice sin reiniciar? ¿Por qué la mayoría de los software con recursos suficientes (por ejemplo, Firefox, Spotify) no hacen esto?

Depende del tipo de software. Por ejemplo, algunas aplicaciones web se pueden actualizar continuamente sin reiniciar. Muchos hacen esto con la ayuda de algunas herramientas como LiveRebel (ahora descontinuado).

Por lo general, la escritura de aplicaciones que pueden actualizarse en caliente requiere una gran modularidad, por lo que solo los módulos que han cambiado (subprogramas, paquetes, clases o incluso funciones y configuraciones individuales) se vuelven a cargar en tiempo de ejecución.

Esto podría significar que habría un agente de actualización inteligente capaz de administrar este mecanismo de recarga. ¿Qué sucede cuando el agente de actualización también requiere una actualización? Es posible que desee introducir redundancia en el diseño del agente de actualización. Se vuelve más complicado a medida que vas cuesta abajo …

Entonces sí, creo que es difícil.

Esto es extremadamente difícil y generalmente no vale la pena.

Es muy difícil

Pero tengo un ex colega que ahora trabaja en Oracle y tienen un producto que permite exactamente esto.

La intención es que los centros de datos y las granjas de servidores puedan seguir ejecutándose continuamente mientras se actualizan regularmente.

More Interesting

Tengo 4.5 años de experiencia en desarrollo de software con .Net. ¿Qué es un consejo profesional?

¿Cuáles son algunos consejos para un ingeniero de software que se muda de Silicon Valley a Berlín?

¿Qué puede hacer un estudiante de secundaria ahora para prepararse para luego ser un desarrollador / ingeniero de software?

¿Cuáles son los méritos o dificultades del software, Xilinx ISE Versión 13.4?

¿Por qué los estudiantes de informática se llaman ingenieros?

¿Cómo tienen los desarrolladores suficiente poder mental para pasar el día?

¿Cuáles son las ventajas y desventajas de mudarse a Seattle desde San José como ingeniero de software?

¿Cuál es la importancia de la simplicidad en la arquitectura de software?

¿Cuál es la diferencia entre informática, ingeniería informática e ingeniería de software? ¿Cómo es el alcance de TI en comparación con SE o CS? ¿Es la informática una buena opción para especializarse en el desarrollo de aplicaciones móviles?

¿Deben realizarse pruebas de software después de la codificación?

¿Cuál es el papel de un ingeniero mecánico en el desarrollo de software CAD? ¿Cuáles son las compañías en la INDIA que podrían necesitar a personas como yo?

¿Por qué la mayoría del software incorporado en Windows apesta?

¿Qué tecnologías utiliza wayfair.com?

¿Cómo es usar TopCoder desde la perspectiva de un cliente?

En equipos de desarrollo ágiles, ¿cómo se manejan los errores que se encuentran en la mitad del sprint para ese sprint?