MQTT gestionado en la nube

Broker MQTT como servicio: qué obtienes y qué no

Un broker MQTT como servicio elimina el trabajo de servidores, pero no todas las responsabilidades. Aquí tienes un reparto claro entre lo que gestiona el proveedor y lo que queda en tus manos, con un patrón de integración práctico.

Ilustración de un broker MQTT como servicio que separa las responsabilidades del proveedor, como el parcheo y TLS, de las del cliente, como los dispositivos y los datos
Pruébalo en tu propio broker MQTTConsigue un broker MQTT privado y gestionado con el plan Free y empieza con ejemplos de código listos para usar.
Pruébalo gratis Ejemplos de código Sin tarjeta

Un broker MQTT como servicio te da un endpoint de broker funcional y protegido sin que tengas que instalar, parchear ni monitorizar un servidor. Este artículo explica exactamente qué responsabilidades pasan al proveedor, cuáles siguen siendo tuyas y cómo construir las piezas que un broker no incluye, para que tengas las expectativas correctas antes de registrarte.

Qué significa "broker MQTT como servicio"

Como servicio significa que consumes el broker como un endpoint, no como un software que ejecutas tú; en la práctica, es un broker MQTT gestionado. Recibes un nombre de host, puertos, credenciales y un portal de gestión. El proveedor se encarga de las máquinas, del software del broker, de los certificados TLS y de los procesos operativos que hay detrás. Conectas dispositivos y aplicaciones con MQTT estándar, exactamente igual que lo harías con un broker alojado por ti.

Este último punto es importante. Como MQTT es un estándar abierto, las mismas bibliotecas cliente, el mismo firmware y las mismas herramientas funcionan tanto si el broker corre en una Raspberry Pi de tu oficina como en la nube de un proveedor. Si eres nuevo en el protocolo, empieza por qué hace un broker MQTT.

El reparto de responsabilidades

La tabla siguiente muestra un reparto típico. La columna de la derecha usa ConnectMQ como referencia concreta.

Área Proveedor Tú Cómo gestiona ConnectMQ la parte del proveedor
Servidores y sistema operativo Sí Opera la infraestructura en Serverless y Dedicated; la gestiona en tu cuenta en BYOC
Software del broker y parches Sí Broker MQTT gestionado con MQTT 3.1.1 y 5.0
Certificados TLS Sí Certificado de Let's Encrypt en TLS 8883 y Secure WebSocket 8084
Endpoints y puertos Sí TCP 1883, TLS 8883, WebSocket 8083, Secure WebSocket 8084 (ruta /mqtt)
Emisión de credenciales Sí Guardarlas de forma segura Usuario, contraseña y client ID generados por broker
Protección contra abusos Sí Cuotas por plan, protección contra inundación, bloqueo de IP tras intentos de inicio de sesión fallidos repetidos
Aislamiento entre clientes Sí Aislamiento multi-tenant en los planes compartidos, clústeres aislados en Dedicated
Herramientas de visibilidad Sí Usarlas Cliente en el navegador, explorador de topics en vivo, panel, vista de dispositivos, alertas por umbral
Firmware y bibliotecas de los dispositivos Sí
Diseño y nomenclatura de topics Sí El portal detecta topics ISA-95 y Unified Namespace si los usas
Formato y validación del payload Sí Decodifica Sparkplug B para visualizarlo y lo republica en topics ISA-95
Almacenamiento de datos e histórico Sí No incluido; ejecutas tu propio suscriptor y tu base de datos
Integraciones con otros sistemas Sí No incluido; conecta herramientas como Node-RED o Telegraf como clientes MQTT
Fiabilidad del lado del cliente Sí Reconexiones, buffering, elección de QoS

Qué obtienes

Sin servidores que operar

Nunca instalas Mosquitto, ni configuras unidades de systemd, ni subes los límites de descriptores de archivo, ni programas parches del sistema operativo. En los planes Serverless tampoco tienes que pensar en el dimensionamiento de máquinas; eliges un plan con los límites que necesitas.

Valores de seguridad por defecto difíciles de configurar mal

TLS está listo desde el primer día con un certificado de confianza pública, las credenciales se generan en lugar de elegirse a mano y los client IDs quedan vinculados a las credenciales emitidas para ellos. Los intentos de inicio de sesión por fuerza bruta provocan el bloqueo de la IP. Los brokers autoalojados a menudo se lanzan sin algunas de estas protecciones y las añaden más tarde. Nuestro artículo sobre buenas prácticas de seguridad en MQTT cubre la parte del cliente de esta misma historia.

Límites predecibles

Los planes tienen límites publicados. En ConnectMQ, el plan Serverless (Free) permite hasta 25 conexiones, QoS hasta 1 y mensajes de 256 KB; el plan Serverless de pago permite hasta 1.000 conexiones, QoS 2, mensajes de 1 MB y suscripciones compartidas. Dedicated, BYOC y Self Managed Enterprise cubren despliegues aislados y controlados por el cliente.

Herramientas para ver lo que ocurre

Un broker en el que no puedes ver nada es difícil de depurar. Un buen servicio te permite publicar mensajes de prueba, observar topics en vivo, ver qué dispositivos están conectados y recibir avisos cuando los valores cruzan un umbral, todo desde un navegador.

Qué no obtienes

Tenerlo claro evita decepciones más adelante.

Un broker no es una base de datos. Enruta mensajes; no guarda histórico. Los retained messages solo almacenan el último valor de cada topic. Si necesitas gráficas a lo largo del tiempo, necesitas una base de datos de series temporales o un historiador.

Un broker no es una plataforma de integración. Algunas plataformas IoT incluyen motores de reglas, webhooks y conectores a bases de datos u otras nubes. Un broker como servicio puro, ConnectMQ incluido, no lo hace. Construyes las integraciones ejecutando un cliente que se suscribe y reenvía.

Un broker no hace fiables a los clientes. La lógica de reconexión, el buffering local, los comandos idempotentes y una elección sensata de QoS viven en tu código. Consulta alta disponibilidad del broker MQTT para ver patrones del lado del cliente.

Un broker no diseña tus topics. Un espacio de nombres claro es tarea tuya, y de él depende lo fácil que resulte todo lo demás.

El patrón de integración: suscribirse y reenviar

La forma honesta y portable de conectar un broker como servicio con el resto de tu stack es un pequeño proceso suscriptor. Funciona con cualquier broker y te deja libre para cambiar de base de datos o de proveedor más adelante. Aquí tienes un ejemplo completo en Python que guarda cada mensaje de telemetría en SQLite. Cambia SQLite por PostgreSQL, InfluxDB o un archivo según lo necesites.

# store_telemetry.py - suscribirse a la telemetría y guardarla en SQLite
import json
import sqlite3
import time

import paho.mqtt.client as mqtt

DB = sqlite3.connect("telemetry.db", check_same_thread=False)
DB.execute("""CREATE TABLE IF NOT EXISTS telemetry (
                ts REAL, topic TEXT, payload TEXT)""")
DB.commit()

def on_connect(client, userdata, flags, reason_code, properties):
    print("connected:", reason_code)
    client.subscribe("acme/+/+/+/+/telemetry", qos=1)

def on_message(client, userdata, msg):
    try:
        payload = json.dumps(json.loads(msg.payload))   # validar JSON
    except ValueError:
        print("skipping non-JSON message on", msg.topic)
        return
    DB.execute("INSERT INTO telemetry VALUES (?, ?, ?)",
               (time.time(), msg.topic, payload))
    DB.commit()

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2,
                     client_id="YOUR_CLIENT_ID", protocol=mqtt.MQTTv5)
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set()
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 8883, keepalive=60)
client.loop_forever()

El mismo patrón se aplica a las herramientas low-code. Node-RED se conecta con un nodo de configuración mqtt-broker, Telegraf usa su entrada de consumidor MQTT y Home Assistant usa su integración MQTT. Cada una es simplemente otro cliente MQTT del broker.

Elegir el nivel de servicio adecuado

Si necesitas Considera
Aprender, hacer demos y pruebas rápidas El servidor MQTT público gratuito en broker.connectmq.com (nunca para datos de producción)
Un broker privado para un prototipo o un piloto pequeño Serverless (Free)
Una flota en crecimiento, QoS 2, mensajes más grandes, suscripciones compartidas Serverless (Paid)
Aislamiento respecto a otros clientes Dedicated
El broker dentro de tu propia cuenta en la nube BYOC
Operar el broker tú mismo con software del proveedor Self Managed Enterprise

Si estás comparando un servicio con operar tu propio broker, lee broker MQTT autoalojado vs. gestionado y comparativa de opciones de hosting de brokers MQTT. La guía de broker MQTT en la nube es la visión general de todo este tema.

Preguntas que hacer antes de elegir un proveedor

  1. ¿Qué versiones de MQTT y qué transportes se admiten?
  2. ¿Cuáles son los límites exactos de conexiones, tamaño de mensaje y QoS en cada plan?
  3. ¿Cómo se emiten, rotan y revocan las credenciales?
  4. ¿Cómo notifica el servicio a los clientes las infracciones de cuota?
  5. ¿Qué herramientas de visibilidad se incluyen?
  6. ¿Qué no se incluye, como almacenamiento, motores de reglas o conectores?
  7. ¿Qué opciones de aislamiento existen más allá de los planes compartidos?
  8. ¿Cuáles son las condiciones del SLA, por escrito?
  9. ¿Qué tan fácil es marcharse, dado que los dispositivos solo conocen un nombre de host y unas credenciales?

Prueba MQTT como servicio con ConnectMQ

ConnectMQ se encarga del broker, de TLS y de las cuotas para que tú te centres en los dispositivos y los datos. Regístrate en app.connectmq.com, crea un broker en el plan Serverless gratuito sin tarjeta de crédito y conecta tu primer cliente en minutos.

Preguntas frecuentes

¿Qué incluye un broker MQTT como servicio?

Normalmente, el software del broker, los servidores, el parcheo, los certificados TLS, los endpoints, las credenciales, las cuotas y un portal de gestión. Tú sigues siendo responsable de los dispositivos, los topics, los payloads y el almacenamiento de datos.

¿Un broker MQTT gestionado almacena mis datos?

Un broker enruta mensajes y solo conserva los últimos valores retenidos de cada topic. Para tener histórico, ejecuta un suscriptor que escriba los mensajes en una base de datos que controles.

¿Puedo conectar Node-RED o Telegraf a un broker como servicio?

Sí. Se conectan como clientes MQTT normales usando el nombre de host, el puerto y las credenciales del portal, y después reenvían los datos a donde los necesites.

¿Es difícil dejar un broker MQTT como servicio?

Como MQTT es un estándar, los dispositivos solo necesitan un nuevo nombre de host y nuevas credenciales. Evitar funciones propietarias mantiene bajo el coste de cambiar.

Artículos relacionados

Broker MQTT BYOC: el modelo Bring Your Own Cloud explicado

Un broker MQTT BYOC se ejecuta en tu cuenta cloud, pero lo opera un proveedor. Descubre cómo funciona el modelo, cómo se reparten las responsabilidades y cómo preparar tu cuenta.

9 min de lectura

Alternativa a Google Cloud IoT Core: opciones y migración tras su cierre

Google retiró Cloud IoT Core en agosto de 2023. Esta guía compara las alternativas realistas, traduce los conceptos de IoT Core a MQTT estándar y muestra cómo mover los dispositivos a un broker MQTT gestionado sin dejar de enviar datos a Google Cloud.

9 min de lectura

Mensajes MQTT por segundo: cómo estimar y medir el rendimiento

Planificar el rendimiento de MQTT se reduce a unas pocas fórmulas y una medición honesta. Aprende a estimar los mensajes entrantes y salientes por segundo, a tener en cuenta los picos y a trasladar el resultado a un plan de broker.

8 min de lectura

Todos los artículos →

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.