Tengo una aplicación de escritorio con actualizaciones automáticas de install4j (verificadas al iniciar la aplicación). Quiero hacer una implementación por etapas de las actualizaciones.
Para esto, estoy pensando en hacer que Apache Load Balancer proporcione una versión actualizada de actualizaciones.xml a un subconjunto de mis usuarios. Los problemas que estoy viendo:
Si la respuesta a una solicitud de actualizaciones.xml establece una cookie, ¿la solicitud a las partes de medios incluirá esa cookie? La cookie es necesaria para evitar la pérdida de adherencia, como se explica en la sección "Detalles sobre la adherencia del equilibrador de carga" del enlace proporcionado. No quiero una aplicación de cliente que reciba las actualizaciones actualizadas.xml y luego tenga un 404 al buscar una parte de medios porque su solicitud se redirige al servidor "antiguo".
Si configuro el balanceo de carga para redirigir el 10 % de mi tráfico a las nuevas actualizaciones.xml, esto no significa que lograré que el 10 % de mis usuarios obtengan la versión actualizada. El porcentaje real no tendrá correlación. Esto se debe a que incluso las aplicaciones actualizadas aún verificarán las actualizaciones.xml al inicio, contando para el tráfico total. Supongo que está bien, siempre y cuando no necesite cifras precisas, sino que solo quiera evitar un despliegue masivo. Pero, ¿hay un mejor enfoque?
Editar
Implementé el equilibrio de carga en la carpeta de implementación. El flujo de trabajo es así:
Si la respuesta a una solicitud de actualizaciones.xml establece una cookie, ¿la solicitud a las partes de medios incluirá esa cookie?
No, install4j no administra las cookies, solo puede configurar una cookie en la propiedad "Solicitar encabezados" de acciones como "Buscar actualizaciones" y "Descargar archivo".
Primero tendría que agregar una acción de "solicitud HTTP" a algún recurso en el servidor y configurar su propiedad "Nombre de variable para encabezados de respuesta" para extraer la cookie. La propiedad "método de solicitud HTTP" se puede establecer en "HEAD" para que solo obtenga los encabezados. A partir de esa variable (una instancia de mapa), puede obtener la variable de la cookie y guardarla en otra variable del instalador. Esta lógica se puede realizar en una acción "Ejecutar script".