> 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/fr/config/hosting/high-availability.md).

# Haute disponibilité

PowerShell Universal peut être configuré pour la haute disponibilité (« HA ») en combinant la persistance sur un serveur SQL et un équilibreur de charge, afin de garantir que les outils frontaux, tels que les tableaux de bord, restent accessibles et que les outils dorsaux, tels que les tâches, continuent de s'exécuter.

![](/files/xyQlygN6UVMXvZN74l95)

## Configuration de la persistance

Nous recommandons de tirer parti de la [persistance SQL](/powershell-universal/fr/config/persistence.md#sql) (ou PostgreSQL) pour vous assurer que tous les nœuds de votre cluster partagent les mêmes données concernant les files d'attente de tâches, les jetons d'application et les identités dans votre système. Chaque nœud doit être configuré avec la même chaîne de connexion au serveur SQL.

Au fur et à mesure que les tâches s'exécutent, que les utilisateurs se connectent et que les jetons d'application sont créés, le serveur SQL sera utilisé pour stocker ces informations et les partager entre les nœuds.

## Configuration du contrôle de source

Nous recommandons d'utiliser la [synchronisation git](/powershell-universal/fr/config/git.md) pour stocker et gérer les versions des scripts de configuration PowerShell utilisés pour administrer les nœuds PowerShell Universal. La synchronisation git unidirectionnelle peut être préférable, car les nœuds seront alors en lecture seule et extrairont les configurations une fois qu'elles auront été fusionnées dans votre branche de production. Chaque nœud extrait les fichiers de configuration selon un intervalle configurable (1 minute par défaut). Il est conseillé de stocker les paramètres de configuration git dans la base de données, car cela nécessite moins de configuration par nœud.

## Équilibrage de charge

PowerShell Universal prend en charge l'utilisation d'équilibreurs de charge tels que F5 et nginx. Certaines exigences doivent être respectées lors de l'utilisation d'équilibreurs de charge.

* Les sessions persistantes (sticky) sont requises par la console d'administration et les applications.
* La prise en charge des WebSockets est requise par la console d'administration et les applications.

Pour faciliter l'équilibrage de charge, vous pouvez utiliser le point de terminaison `/api/v1/status` pour vos nœuds. Ce point de terminaison retourne des codes d'état en fonction de l'état actuel du nœud. `200` signifie que le nœud est en ligne et prêt à recevoir des requêtes. Les serveurs en mode maintenance retournent `503`. Les serveurs qui n'ont pas démarré en raison d'une erreur de configuration retournent `500`. Les serveurs dont des applications n'ont pas démarré retournent également `500`.

## API de statut

### `/api/v1/status`

Vous pouvez placer vos nœuds en mode maintenance en cliquant sur Platform \ Computers et en cochant l'option de mode maintenance. Une fois le mode maintenance activé, le point de terminaison `/api/v1/status` commencera à retourner `503`. Cela doit être configuré pour désactiver le routage du trafic vers le nœud pendant la maintenance. Ce point de terminaison retourne également 5xx si l'une des conditions suivantes est vraie :

* L'ordinateur est dans un état d'erreur au démarrage.
* L'ordinateur est en mode maintenance.
* Une application critique est dans un état d'échec au démarrage.
* Des points de terminaison API sont configurés mais ne fonctionnent pas correctement.

### `/api/v2/status`

L'API de statut v2 retourne un `503` pour des raisons supplémentaires, notamment :

* Un ordinateur du cluster est hors ligne mais n'est pas en mode maintenance.
* La synchronisation git échoue à extraire les modifications sur un nœud.
* Des points de terminaison API sont configurés mais ne fonctionnent pas correctement.

## Limitations

Il existe actuellement certaines limitations aux clusters PowerShell Universal à haute disponibilité.

### Cache multi-nœuds

La mise en cache effectuée à l'aide de `$Cache` est limitée à un seul processus sur un seul nœud. Par exemple, chaque application s'exécutant en dehors de l'environnement intégré possède son propre cache.

`Set-PSUCache` ne partagera pas les données entre les nœuds si `-Persist` n'est pas spécifié. Pour vous assurer que tous les nœuds disposent des mêmes données, incluez ce paramètre.

### Diffusion multi-nœuds des applications

Les messages de diffusion d'applications multi-nœuds ne sont actuellement pas pris en charge. L'utilisation de cmdlets tels que `Show-UDToast -Broadcast` affichera un modal toast à tous les utilisateurs connectés du nœud actuel, mais ne sera pas diffusé aux applications sur l'ensemble des nœuds.


---

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

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

The question should be specific, self-contained, and written in natural language.
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.
