> For the complete documentation index, see [llms.txt](https://academy.cegedim.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.cegedim.cloud/francais/message/rabbitmq/rabbitmq-mise-a-jour.md).

# RabbitMQ - Mise à jour

## **Processus de mise à niveau**

### Requête <a href="#rabbitmqupgradeinplace-requete" id="rabbitmqupgradeinplace-requete"></a>

La mise à jour d'un PaaS RabbitMQ est la responsabilité de **cegedim.cloud** et peut être demandée via un [ticket de demande](https://itcare.cegedim.cloud/?createTicket=true\&step=Request\&requestTypeIndex=4\&formName=MES_RABBITMQ) soumis depuis ITCare en précisant un créneau de disponibilité pour l'opération.

Merci de préciser si celle-ci doit être réalisée en heures non ouvrées pour planification d'une RFC.

Il est recommandé de procéder à la mise à jour d'abord sur vos environnements non-production afin d'estimer le temps d'indisponibilité généré par l'opération et de tester vos applications avec la nouvelle version du moteur.

### Déroulement <a href="#rabbitmqupgradeinplace-deroulement" id="rabbitmqupgradeinplace-deroulement"></a>

La mise à jour de RabbitMQ (en instance unique ou en haute disponibilité) est réalisée en une **seule opération automatisée**, qui enchaîne séquentiellement les deux étapes suivantes :

* Mise à jour du système d'exploitation préalable
  * Plusieurs mises à jour selon le scénario : Debian 10 → Debian 11 → Debian 12
* Mise à jour du moteur RabbitMQ dans la version cible

Selon la version source et cible de RabbitMQ, il peut donc être nécessaire de migrer d'abord le système d'exploitation dans une version supportée par **cegedim.cloud** (voir [#rabbitmqupgradeinplace-os-rabbitmqsupportmatrixmatrice](#rabbitmqupgradeinplace-os-rabbitmqsupportmatrixmatrice "mention")).

```mermaid
graph TD
    start["RabbitMQ X<br/>Debian X"] --> debian["Mise à jour Debian<br/>(une fois, deux fois ou non requise)"]
    debian --> rabbit["Mise à jour de RabbitMQ X vers Y"]
    rabbit --> done["RabbitMQ Y<br/>Debian Y"]

    debian -.->|Pris en charge par cegedim.cloud| rabbit

    style start fill:#e8e8e8,stroke:#000,stroke-width:2px,color:#000
    style debian fill:#ffe0b2,stroke:#e8820c,stroke-width:2px,color:#000
    style rabbit fill:#c8e6c9,stroke:#2ca02c,stroke-width:2px,color:#000
    style done fill:#e8e8e8,stroke:#000,stroke-width:2px,color:#000
```

{% hint style="info" %}
Toutes les fonctionnalités stables doivent être activées avant et après chaque mise à jour.
{% endhint %}

\### Impacts

* Les mises à jour des versions de Debian doivent être effectuées de manière séquentielle. Par exemple, il n'est pas possible de passer directement de Debian 10 à Debian 12. Une mise à jour intermédiaire vers Debian 11 est nécessaire avant de passer aux versions suivantes.
* Les mises à jour de version RabbitMQ au sein de la branche 3.x doivent être effectuées de manière séquentielle. Par exemple, il n'est pas possible de passer directement de la version 3.10 à 3.12 ou 3.13. Une mise à jour intermédiaire vers la version 3.11 est nécessaire avant de passer aux versions suivantes. **Exception : depuis la version 3.13.X, il est possible de passer directement à n'importe quelle version 4.x (4.0, 4.1 ou 4.2).**

### Temps de référence <a href="#rabbitmqupgradeinplace-tempsdereference" id="rabbitmqupgradeinplace-tempsdereference"></a>

En guise de ligne directrice générale, les durées estimées pour chaque étape de la mise à jour sont les suivantes :

* Mise à jour de Debian : 10 minutes en moyenne par nœud
* Mise à jour de RabbitMQ : 30 minutes en moyenne pour une ferme avec 3 nœuds.
* Un délai de 3 minutes sera nécessaire pour permettre à RabbitMQ de bien démarrer et d'équilibrer la charge avant de procéder à la mise à jour du nœud suivant.

## **Matrice de support OS / RabbitMQ** <a href="#rabbitmqupgradeinplace-os-rabbitmqsupportmatrixmatrice" id="rabbitmqupgradeinplace-os-rabbitmqsupportmatrixmatrice"></a>

Distribution Linux supportées par **cegedim.cloud** en fonction de la version de RabbitMQ :

<table><thead><tr><th width="223">RabbitMQ version</th><th>Debian distribution</th></tr></thead><tbody><tr><td>RabbitMQ 3.10.X</td><td>Debian 10</td></tr><tr><td>RabbitMQ 3.11.X</td><td>Debian 10</td></tr><tr><td>RabbitMQ 3.12.X</td><td>Debian 11</td></tr><tr><td>RabbitMQ 3.13.X</td><td>Debian 12</td></tr><tr><td>RabbitMQ 4.0.X</td><td>Debian 12</td></tr><tr><td>RabbitMQ 4.1.X</td><td>Debian 12</td></tr><tr><td>RabbitMQ 4.2.X</td><td>Debian 12</td></tr></tbody></table>

## **Chemins de mises à jour RabbitMQ supportés** <a href="#rabbitmqupgradeinplace-supportedrabbitmqupdatepaths" id="rabbitmqupgradeinplace-supportedrabbitmqupdatepaths"></a>

Pour la mise à jour de l'OS, l'upgrade sera effectué nœud par nœud sur les différents nœuds RabbitMQ, sans ordre. La mise à jour de RabbitMQ sera appliquée à tous les nœuds du cluster RabbitMQ, en commençant par le premier nœud dans un ordre croissant.

Ci-dessous les chemins de mises à jour supportés par **cegedim.cloud** :

<table data-full-width="true"><thead><tr><th width="166">Source Version</th><th>RabbitMQ 3.10.X</th><th>RabbitMQ 3.11.X</th><th>RabbitMQ 3.12.X</th><th>RabbitMQ 3.13.X</th><th>RabbitMQ 4.0.X</th><th>RabbitMQ 4.1.X</th><th>RabbitMQ 4.2.X</th></tr></thead><tbody><tr><td>RabbitMQ 3.10.X</td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 10</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 10</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>*</strong></p><p>Debian 10 → Debian 11</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td></tr><tr><td>RabbitMQ 3.11.X</td><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 10</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>*</strong></p><p>Debian 10 → Debian 11</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>**</strong></p><p>Debian 10 → Debian 11 → Debian 12</p></td></tr><tr><td>RabbitMQ 3.12.X</td><td></td><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 11</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>*</strong></p><p>Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>*</strong></p><p>Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>*</strong></p><p>Debian 11 → Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> <strong>*</strong></p><p>Debian 11 → Debian 12</p></td></tr><tr><td>RabbitMQ 3.13.X</td><td></td><td></td><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td></tr><tr><td>RabbitMQ 4.0.X</td><td></td><td></td><td></td><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td></tr><tr><td>RabbitMQ 4.1.X</td><td></td><td></td><td></td><td></td><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td></tr><tr><td>RabbitMQ 4.2.X</td><td></td><td></td><td></td><td></td><td></td><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></p><p>Debian 12</p></td></tr></tbody></table>

{% hint style="warning" %}
\*\*Important pour les mises à jour vers RabbitMQ 4.x :\*\*

* La policy HA ne sera plus appliquée (remplacée par Quorum Queues natives)
* Pour RabbitMQ 4.2, Erlang 27.0 minimum est requis
* Il est fortement recommandé de tester sur un environnement non-production d'abord
  {% endhint %}

**\*** Une migration du système d'exploitation est requise.

**\*\*** Une double migration du système d'exploitation est requise.


---

# 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://academy.cegedim.cloud/francais/message/rabbitmq/rabbitmq-mise-a-jour.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.
