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

<figure><picture><source srcset="https://1991151216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu3cmMjeBxFoEweG69ePZ%2Fuploads%2Fgit-blob-0c55cc8cbd7e4f80299162b788afb39459cf70fc%2Frabbitmq-upgrade-dark-fr.png?alt=media" media="(prefers-color-scheme: dark)"><img src="https://1991151216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu3cmMjeBxFoEweG69ePZ%2Fuploads%2Fgit-blob-accf46b0917788100144f463e8eabc6125409382%2Frabbitmq-upgrade-light-fr.png?alt=media" alt="" width="563"></picture><figcaption></figcaption></figure>

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