> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/es/config/hosting/high-availability.md).

# 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.

![](/files/CAAaBJSCWxQUTkoeTpwP)

## Configuración de la persistencia

Recomendamos aprovechar la [persistencia SQL](/powershell-universal/es/config/persistence.md#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](/powershell-universal/es/config/git.md) 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/es/config/hosting/high-availability.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
