Alta disponibilidad
PowerShell Universal puede configurarse para alta disponibilidad ("HA") mediante una combinación de persistencia en SQL Server y un balanceador de carga para garantizar que tanto las herramientas de front end, como los dashboards, sean accesibles y que las herramientas de back-end, como los trabajos, sigan ejecutándose.

Configuración de la persistencia
Recomendamos aprovechar la persistencia SQL (o PostgreSQL) para garantizar que todos los nodos de su clúster compartan los mismos datos en cuanto a colas de trabajos, tokens de aplicación e identidades dentro de su sistema. Cada nodo debe configurarse con la misma cadena de conexión de SQL Server.
A medida que se ejecutan trabajos, los usuarios inician sesión y se crean tokens de aplicación, el SQL Server se utilizará para almacenar esta información y se compartirá entre los nodos.
Configuración del control de código fuente
Recomendamos utilizar la sincronización git para almacenar y controlar las versiones de los scripts de configuración de PowerShell utilizados para gestionar los nodos de PowerShell Universal. Puede ser preferible la sincronización git unidireccional, ya que así los nodos serán de solo lectura y extraerán las configuraciones después de que se hayan fusionado en su rama de producción. Cada nodo extrae los ficheros de configuración en un intervalo configurable (1 minuto por defecto). Es deseable almacenar los ajustes de configuración de git en la base de datos, ya que requiere menos configuración por nodo.
Balanceo de carga
PowerShell Universal admite el uso de balanceadores de carga como F5 y nginx. Existen algunos requisitos que deben cumplirse al utilizar balanceadores de carga.
La consola de administración y las aplicaciones requieren sesiones persistentes (sticky)
La consola de administración y las aplicaciones requieren compatibilidad con web sockets
Para facilitar el balanceo de carga, puede utilizar el endpoint /api/v1/status para sus nodos. El endpoint devolverá códigos de estado según el estado actual del nodo. 200 significa que el nodo está en línea y listo para recibir solicitudes. Los servidores que se ejecutan en modo de mantenimiento devolverán 503. Los servidores que no se hayan podido iniciar debido a un error de configuración devolverán 500. Los servidores con aplicaciones que no se hayan podido iniciar también devolverán 500.
API de estado
/api/v1/status
Puede poner sus nodos en modo de mantenimiento haciendo clic en Plataforma \ Ordenadores y marcando la opción de modo de mantenimiento. Una vez habilitado el modo de mantenimiento, el endpoint /api/v1/status comenzará a devolver 503. Esto debería configurarse para deshabilitar el enrutamiento de tráfico hacia el nodo mientras se realiza el mantenimiento. Este endpoint también devolverá 5xx si se cumple lo siguiente:
El ordenador está en un estado de error de inicio
El ordenador está en modo de mantenimiento
Una aplicación crítica está en estado de fallo de inicio
Los endpoints de API están configurados pero no se ejecutan correctamente
/api/v2/status
La API de estado v2 devolverá un 503 por motivos adicionales. Entre ellos:
Cualquier ordenador del clúster está desconectado pero no en modo de mantenimiento
La sincronización git no consigue extraer cambios en algún nodo
Los endpoints de API están configurados pero no se ejecutan correctamente
Limitaciones
Actualmente existen algunas limitaciones en los clústeres de PowerShell Universal de alta disponibilidad.
Almacenamiento en caché multinodo
El almacenamiento en caché realizado con $Cache se limita a un único proceso en un único nodo. Por ejemplo, cada aplicación que se ejecute fuera del entorno integrado tendrá su propia caché.
Set-PSUCache no compartirá datos entre nodos si no se especifica -Persist. Para asegurarse de que todos los nodos tengan los mismos datos, incluya este modificador.
Difusión de aplicaciones multinodo
Actualmente no se admiten los mensajes de difusión de aplicaciones multinodo. El uso de cmdlets como Show-UDToast -Broadcast hará que se muestre un modal de notificación a todos los usuarios conectados del nodo actual, pero no se difundirá a las aplicaciones de todos los nodos.
Última actualización
¿Te fue útil?