MQTT managé dans le cloud

SLA d'un broker MQTT : ce que signifient vraiment les garanties de disponibilité

Les pourcentages de disponibilité se ressemblent mais représentent des durées d'arrêt très différentes. Apprenez à lire le SLA d'un broker MQTT, ce qu'il couvre et exclut, et comment concevoir vos appareils pour l'indisponibilité qu'il autorise.

Illustration du SLA d'un broker MQTT avec une jauge de disponibilité, un calendrier mensuel et des minutes d'indisponibilité mises en évidence à côté d'un broker cloud
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

Le SLA d'un broker MQTT est l'engagement écrit d'un fournisseur sur la disponibilité, et les petites lignes comptent autant que le pourcentage affiché. Cet article traduit les objectifs de disponibilité courants en minutes d'arrêt réelles, explique ce que les SLA couvrent et excluent habituellement, et montre comment concevoir vos appareils et applications pour qu'ils encaissent sans dommage l'indisponibilité que tout SLA autorise malgré tout.

Ce qu'est un SLA, et ce qu'il n'est pas

Un accord de niveau de service (SLA) est un document contractuel. Il définit un objectif mesurable, généralement la disponibilité mensuelle, la manière dont cette disponibilité est mesurée et ce que le fournisseur vous doit si l'objectif n'est pas atteint. Trois termes voisins sont souvent confondus :

  • SLI (service level indicator) : la valeur mesurée, comme le pourcentage de tentatives de connexion réussies.
  • SLO (service level objective) : l'objectif interne visé par une équipe, souvent plus strict que le SLA.
  • SLA (service level agreement) : la promesse externe et contractuelle, assortie de conséquences, généralement des crédits de service.

Le point essentiel : un SLA n'empêche pas les pannes. Il définit le niveau d'indisponibilité acceptable et la compensation lorsqu'il est dépassé. Votre système doit quand même gérer l'indisponibilité que le SLA autorise.

Pourcentages de disponibilité en minutes d'arrêt

Les écarts entre les « neufs » sont plus importants qu'il n'y paraît. Le tableau utilise un mois moyen d'environ 30,4 jours et une année de 365 jours.

Disponibilité Arrêt par mois Arrêt par an
99 % environ 7 heures 18 minutes environ 3 jours 15,6 heures
99,5 % environ 3 heures 39 minutes environ 1 jour 19,8 heures
99,9 % environ 43,8 minutes environ 8,8 heures
99,95 % environ 21,9 minutes environ 4,4 heures
99,99 % environ 4,4 minutes environ 52,6 minutes
99,999 % environ 26 secondes environ 5,3 minutes

Passer de 99,9 % à 99,99 % divise par dix l'indisponibilité autorisée. Y parvenir exige de la redondance entre domaines de défaillance, une bascule automatique et une gestion rigoureuse des changements, c'est pourquoi les niveaux supérieurs sont généralement liés à une infrastructure dédiée et à des contrats entreprise.

Vous pouvez calculer ces valeurs vous-même :

def allowed_downtime(availability_pct, period_minutes):
    return period_minutes * (1 - availability_pct / 100)

MONTH = 30.44 * 24 * 60
YEAR = 365 * 24 * 60
for a in (99.0, 99.5, 99.9, 99.95, 99.99, 99.999):
    print(f"{a}%: {allowed_downtime(a, MONTH):.1f} min/month, "
          f"{allowed_downtime(a, YEAR) / 60:.2f} h/year")

Ce que couvre habituellement le SLA d'un broker MQTT

La définition de l'indisponibilité

Lisez comment l'« indisponibilité » est définie. Pour un broker, cela peut signifier que l'endpoint n'accepte plus de nouvelles connexions, qu'un certain pourcentage de tentatives de connexion échoue, ou que les messages ne sont pas livrés. Certains contrats ne comptent que les interruptions de plus de quelques minutes consécutives, ce qui signifie que les coupures brèves ne comptent pas du tout.

La méthode de mesure

Qui mesure, et depuis où ? La supervision côté fournisseur peut voir le broker en bonne santé alors que vos appareils sur un réseau donné ne parviennent pas à le joindre. Demandez si vous pouvez soumettre vos propres données de supervision lors d'une réclamation de crédits.

Le périmètre

Vérifiez quels composants sont couverts : endpoints de connexion, listeners TLS et WebSocket, portail de gestion, API utilisées pour le provisionnement. Les portails et les API sont souvent couverts différemment du plan de données, voire pas du tout.

Les crédits de service

Lorsque l'objectif n'est pas atteint, le recours habituel est un crédit : un pourcentage de la redevance mensuelle, souvent échelonné selon l'ampleur de la baisse de disponibilité. Les crédits doivent généralement être réclamés dans un délai donné, et ils sont rarement proportionnels à l'impact métier d'une panne. Voyez-les comme une incitation pour le fournisseur, pas comme une assurance pour vous.

Exclusions courantes

Presque tous les SLA excluent certains événements. Exclusions typiques :

  1. La maintenance planifiée annoncée à l'avance.
  2. Les problèmes causés par les propres appareils, réseaux ou erreurs de configuration du client.
  3. Le dépassement des limites du plan, comme les quotas de connexions ou de messages.
  4. Les cas de force majeure.
  5. Les offres gratuites, d'essai ou bêta.
  6. Les incidents sur les réseaux tiers entre vos appareils et le fournisseur.

Les offres gratuites en particulier s'accompagnent rarement d'un SLA contractuel. C'est raisonnable pour le développement et les pilotes, mais les engagements de production envers vos propres clients doivent reposer sur un plan aux conditions explicites.

Disponibilité composite : votre système est une chaîne

Votre disponibilité de bout en bout n'est pas celle du broker. Un message issu d'un capteur traverse l'appareil, le réseau local, l'opérateur mobile ou internet, le broker, votre backend et votre base de données. Quand des composants sont en série, leurs disponibilités se multiplient.

Par exemple, si le réseau des appareils est disponible à 99,5 %, le broker à 99,9 % et votre backend à 99,9 %, la chaîne atteint environ 0,995 x 0,999 x 0,999, soit environ 99,3 %. Le maillon le plus faible domine. Investir lourdement dans les neufs du broker alors que votre backend tourne sur un seul serveur rapporte peu. Pour les modèles d'architecture, consultez la haute disponibilité d'un broker MQTT.

Concevoir pour l'indisponibilité autorisée par le SLA

Même à 99,99 %, un broker sera parfois injoignable. Construisez des clients qui le tolèrent :

  • Reconnectez-vous avec un backoff exponentiel et du jitter, pour que des milliers d'appareils ne se reconnectent pas au même instant.
  • Mettez en mémoire tampon localement sur les appareils et les passerelles, puis publiez au retour de la connexion.
  • Utilisez des sessions persistantes avec une expiration de session adaptée, afin que les messages QoS 1 et 2 destinés aux abonnés hors ligne soient mis en file.
  • Utilisez des retained messages pour l'état, afin que les tableaux de bord voient la dernière valeur connue dès la reconnexion.
  • Définissez un Last Will pour que votre backend sache quand un appareil a décroché de façon inattendue.
  • Supervisez depuis l'extérieur avec un client synthétique qui publie et reçoit un heartbeat.

Le guide sur la panne d'un broker MQTT couvre la gestion des incidents, et la checklist de mise en production MQTT transforme ces points en tâches avant lancement.

La disponibilité n'est pas la durabilité

Un objectif de disponibilité indique si le broker accepte les connexions et route les messages. Il ne dit rien de la préservation de chaque message lors d'un incident. Demandez séparément comment se comportent les sessions, les messages en file et les retained messages lorsqu'un nœud du broker redémarre ou bascule, et concevez votre système en fonction de la réponse. Si la perte d'un message coûterait cher, gardez la source de vérité sur l'appareil ou dans votre backend et faites du broker un moyen de transport, pas un lieu de stockage. Les délais de réponse du support constituent un troisième engagement, distinct, qui mérite une lecture attentive.

Questions à poser avant de signer

Question Pourquoi c'est important
Comment la disponibilité est-elle mesurée, et par qui ? Détermine ce qui compte comme indisponibilité
Quelle est la durée minimale d'interruption prise en compte ? Les coupures courtes peuvent être exclues
La maintenance planifiée est-elle exclue, et avec quel préavis ? Un arrêt planifié affecte quand même les appareils
Quels composants sont couverts ? Le portail et les API peuvent différer des endpoints
Comment les crédits sont-ils calculés et réclamés ? Des délais et des plafonds s'appliquent
Existe-t-il une page de statut et un historique des incidents ? Montre l'historique réel
Quels délais de réponse du support s'appliquent ? Disponibilité et support sont des engagements distincts

Les SLA et ConnectMQ

ConnectMQ propose plusieurs plans, d'une offre Serverless gratuite sur un cluster mutualisé jusqu'aux clusters isolés Dedicated, au BYOC dans votre propre compte cloud géré par ConnectMQ, et à Self Managed Enterprise. Si votre projet nécessite des conditions de disponibilité contractuelles, discutez-en avec l'équipe ConnectMQ pour les options Dedicated, BYOC ou entreprise, et utilisez les questions ci-dessus pour examiner l'offre. Quelles que soient les conditions, ce sont les pratiques côté client décrites dans cet article qui maintiennent votre flotte en bonne santé lorsqu'un broker, quel qu'il soit, connaît un mauvais jour.

Démarrer avec ConnectMQ

Construisez et testez votre logique de reconnexion et de mise en mémoire tampon sur un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire, ou expérimentez d'abord sur le serveur MQTT public gratuit, réservé aux tests et aux prototypes. Pour savoir ce qu'un broker MQTT managé vous épargne et comment se comparent les modèles d'hébergement, lisez le guide du broker MQTT cloud.

Questions fréquentes

Quelle indisponibilité un SLA à 99,9 % autorise-t-il ?

Environ 43,8 minutes par mois, soit environ 8,8 heures par an.

Un SLA garantit-il que mes appareils resteront connectés ?

Non. Il définit un objectif de disponibilité et la compensation s'il n'est pas atteint. Vos appareils ont toujours besoin d'une logique de reconnexion, d'une mémoire tampon et d'une supervision.

Les plans gratuits de broker MQTT incluent-ils un SLA ?

Les offres gratuites n'incluent généralement pas de SLA contractuel. Utilisez-les pour le développement et les pilotes, et choisissez un plan aux conditions explicites pour vos engagements de production.

99,99 % est-il toujours meilleur que 99,9 % ?

Ce niveau autorise dix fois moins d'indisponibilité, mais votre disponibilité de bout en bout dépend de chaque composant de la chaîne. Améliorez d'abord le maillon le plus faible.

Articles liés

Broker MQTT BYOC : le modèle Bring Your Own Cloud expliqué

Un broker MQTT BYOC tourne dans votre compte cloud mais est exploité par un fournisseur. Découvrez le fonctionnement du modèle, la répartition des responsabilités et comment préparer votre compte.

9 min de lecture

Messages MQTT par seconde : comment estimer et mesurer le débit

La planification du débit MQTT se résume à quelques formules et à une mesure honnête. Découvrez comment estimer les messages entrants et sortants par seconde, tenir compte des pics et faire correspondre le résultat à une offre de broker.

8 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.