MQTT gerenciado na nuvem

Alternativa ao Google Cloud IoT Core: Opções e Migração Após o Encerramento

O Google desativou o Cloud IoT Core em agosto de 2023. Este guia compara as alternativas realistas, mapeia os conceitos do IoT Core para MQTT puro e mostra como mover dispositivos para um broker MQTT gerenciado mantendo os dados fluindo para o Google Cloud.

Diagrama de migração para uma alternativa ao Google Cloud IoT Core, com dispositivos indo para um broker MQTT gerenciado que alimenta o Google Cloud Pub/Sub
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

Se você está buscando uma alternativa ao Google Cloud IoT Core, provavelmente está migrando uma frota que ficou órfã com o encerramento ou projetando um novo projeto no Google Cloud sem um gateway de dispositivos nativo. Este guia explica o que o IoT Core fazia, compara com imparcialidade as opções realistas de substituição, mapeia os conceitos do IoT Core para MQTT padrão e mostra como mover dispositivos para um broker MQTT gerenciado enquanto seus dados continuam fluindo para os serviços do Google Cloud.

O Que Aconteceu com o Google Cloud IoT Core

O Google anunciou em 2022 que o Cloud IoT Core seria descontinuado, e o serviço foi desativado em 16 de agosto de 2023. Depois dessa data, os dispositivos não conseguiam mais se conectar às suas bridges MQTT e HTTP. O Google não lançou um sucessor direto; em vez disso, direcionou os clientes para soluções de parceiros e para a construção sobre serviços gerais do Google Cloud. Outros produtos do Google Cloud, como Pub/Sub, Dataflow e BigQuery, não foram afetados e continuam sendo destinos comuns para dados de IoT.

O IoT Core combinava três funções, e cada uma precisa de um substituto:

  1. Conectividade de dispositivos: um endpoint MQTT em mqtt.googleapis.com na porta 8883 (e 443).
  2. Registro e autenticação de dispositivos: dispositivos identificados por client IDs longos no formato projects/PROJECT/locations/REGION/registries/REGISTRY/devices/DEVICE, autenticados com um JWT assinado por uma chave privada por dispositivo e enviado como senha MQTT.
  3. Roteamento de dados: a telemetria publicada em /devices/DEVICE_ID/events era encaminhada para topics do Pub/Sub; configurações e comandos desciam por /devices/DEVICE_ID/config e /devices/DEVICE_ID/commands/#, e o estado do dispositivo subia por /devices/DEVICE_ID/state.

Opções de Alternativa ao Google Cloud IoT Core Comparadas

Não existe uma única resposta certa. O melhor substituto depende de quão a fundo você usava os recursos do IoT Core e de onde você quer que seus dados fiquem.

Opção O que você obtém Boa escolha quando Contrapartidas
Broker MQTT gerenciado (como a ConnectMQ) Endpoint MQTT padrão, credenciais, console Você quer MQTT simples e portável e manter o processamento no Google Cloud Você adiciona um pequeno serviço de encaminhamento para o Pub/Sub
Serviço IoT de outro hyperscaler (AWS IoT Core, Azure IoT Hub ou Event Grid MQTT) Registro de dispositivos, regras, integração profunda com aquela nuvem Você aceita mover o processamento para aquela nuvem Convenções de topics proprietárias e transferência de dados entre nuvens
Plataformas parceiras recomendadas no encerramento APIs compatíveis com o IoT Core em alguns casos Você quer o mínimo de mudanças nos dispositivos Mais uma API específica de fornecedor da qual depender
Broker auto-hospedado no GKE ou Compute Engine Controle total, opções open source Você tem capacidade operacional Patches, escalabilidade, certificados e plantão ficam com você
Plataformas de aplicação IoT Dashboards, gestão de dispositivos, regras Você precisa de uma camada de aplicação completa, não só de transporte Mais pesadas, muitas vezes mais opinativas

Cada opção é legítima. Os serviços IoT dos hyperscalers oferecem rule engines ricos e integração; plataformas parceiras podem reduzir mudanças de firmware; auto-hospedar dá controle máximo. Um broker MQTT gerenciado fica no meio: protocolo padrão, lock-in mínimo e nenhum servidor para operar, ao custo de construir o seu próprio encaminhamento para o Google Cloud. Para uma comparação mais ampla dos serviços dos hyperscalers, veja nosso guia de alternativa ao AWS IoT Core.

Mapeando os Conceitos do IoT Core para MQTT Puro

Migrar para um broker padrão é, em grande parte, um exercício de tradução:

Conceito do IoT Core Equivalente em MQTT padrão na ConnectMQ
mqtt.googleapis.com:8883 broker.connectmq.com:8883 (TLS) ou 8084 para secure WebSockets
Client ID longo do registro Client ID emitido no portal
JWT assinado com chave do dispositivo Username e senha emitidos por conjunto de credenciais
/devices/ID/events Sua própria hierarquia, por exemplo fleet/site1/ID/telemetry
/devices/ID/state Topic retido, por exemplo fleet/site1/ID/state
/devices/ID/config Topic retido que o dispositivo assina, por exemplo fleet/site1/ID/config
/devices/ID/commands/# Topic de comandos com QoS 1 e payloads idempotentes
Roteamento para o Pub/Sub Um serviço assinante que encaminha para o Pub/Sub
Metadados do registro Seu próprio banco de inventário ou topics de metadados retidos

O layout de topics agora é seu para projetar. Abandone a barra inicial que o IoT Core usava, já que ela adiciona um primeiro nível vazio, e considere uma hierarquia no estilo ISA-95 se você trabalha com manufatura.

Passo a Passo: Mova os Dispositivos para um Broker MQTT Gerenciado

1. Prepare o Broker

Cadastre-se em app.connectmq.com, escolha um plano dimensionado para o seu pico de conexões, crie um broker e emita as credenciais. O plano Serverless gratuito (até 25 conexões, QoS até 1) basta para validar o firmware e o serviço de encaminhamento; o Serverless (Paid) suporta até 1.000 conexões e QoS 2.

2. Atualize o Firmware dos Dispositivos

Substitua a geração de JWT e o client ID do IoT Core pelo username, senha e client ID emitidos, troque o host e atualize os nomes dos topics. Mantenha TLS na porta 8883; a ConnectMQ usa um certificado Let's Encrypt, então o seu trust store precisa incluir o certificado ISRG Root X1 em vez das raízes do Google. Remova a lógica de renovação de JWT, que muitas vezes causava bugs de reconexão nos dispositivos do IoT Core. Se seus dispositivos são baseados em ESP32, o tutorial de MQTT com ESP32 mostra um client TLS completo.

3. Encaminhe a Telemetria para o Pub/Sub

A ConnectMQ não inclui bridges de dados para nuvem, então os dados chegam ao Pub/Sub por meio de um pequeno serviço de encaminhamento que se conecta como um client MQTT comum. Rode-o no Cloud Run, GKE ou em uma VM com uma service account autorizada a publicar no topic. Instale com pip install "paho-mqtt>=2.0" google-cloud-pubsub.

import os
import ssl

import paho.mqtt.client as mqtt
from google.cloud import pubsub_v1

PROJECT = os.environ["GCP_PROJECT"]
PUBSUB_TOPIC = os.environ.get("PUBSUB_TOPIC", "device-telemetry")
MQTT_FILTER = os.environ.get("MQTT_FILTER", "fleet/+/+/telemetry")

publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path(PROJECT, PUBSUB_TOPIC)


def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    client.subscribe(MQTT_FILTER, qos=1)


def on_message(client, userdata, msg):
    device_id = msg.topic.split("/")[2]
    future = publisher.publish(
        topic_path,
        msg.payload,
        mqtt_topic=msg.topic,
        device_id=device_id,
    )
    future.add_done_callback(
        lambda f: f.exception() and print("Pub/Sub publish failed:", f.exception())
    )


client = mqtt.Client(
    mqtt.CallbackAPIVersion.VERSION2,
    client_id=os.environ["MQTT_CLIENT_ID"],
    protocol=mqtt.MQTTv5,
)
client.username_pw_set(os.environ["MQTT_USERNAME"], os.environ["MQTT_PASSWORD"])
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)
client.on_connect = on_connect
client.on_message = on_message
client.reconnect_delay_set(min_delay=1, max_delay=60)
client.connect("broker.connectmq.com", 8883, keepalive=60)
client.loop_forever()

Defina MQTT_USERNAME, MQTT_PASSWORD e MQTT_CLIENT_ID com os valores do portal (YOUR_USERNAME, YOUR_PASSWORD, YOUR_CLIENT_ID), de preferência a partir do Secret Manager. Atributos como device_id permitem que assinantes posteriores e jobs do Dataflow filtrem sem fazer parse dos payloads, de forma parecida com os atributos de dispositivo que o IoT Core adicionava. A documentação oficial da biblioteca client do Pub/Sub cobre batching e controle de fluxo para volumes altos. Para escalar horizontalmente, rode várias instâncias com uma shared subscription do MQTT 5, como $share/forwarders/fleet/+/+/telemetry, disponível no Serverless (Paid) e acima.

4. Substitua Configuração e Comandos

As mensagens de configuração do IoT Core correspondem naturalmente a retained messages MQTT: publique a configuração de cada dispositivo como retida no seu topic de config, e o dispositivo a recebe a cada conexão. Comandos correspondem a um topic de comandos com QoS 1. Torne os comandos idempotentes com um ID único e uma expiração, como descrito no nosso guia para sobreviver a uma queda de broker MQTT.

5. Faça o Rollout em Ondas

Mova primeiro um grupo piloto, acompanhe o estado de conexão em $SYS/broker/connection/{clientId}/state e no explorador de topics do portal, e depois migre o restante por região ou linha de produto, por exemplo primeiro as unidades do Sul e depois as do Nordeste. Se alguns dispositivos não puderem ser atualizados rapidamente, um gateway local pode traduzir os topics antigos e republicá-los na nova hierarquia.

Checklist Antes da Troca

  1. Inventário de dispositivos, versões de firmware e recursos do IoT Core em uso.
  2. Nova hierarquia de topics projetada e documentada.
  3. Plano do broker dimensionado para pico de conexões, QoS e tamanho de mensagem.
  4. Credenciais emitidas por dispositivo e armazenadas com segurança.
  5. Firmware atualizado com novo host, trust store, credenciais e topics.
  6. Serviço de encaminhamento rodando e verificado no Pub/Sub.
  7. Fluxos de configuração e comandos testados de ponta a ponta.
  8. Plano de rollout com grupo piloto e etapas de rollback.

Se parte da sua frota já roda em um broker local, o guia para migrar o Mosquitto para MQTT na nuvem cobre com mais detalhes o bridging e a virada em ondas.

Leve Sua Frota para a ConnectMQ

Crie um broker gratuito em app.connectmq.com no plano Serverless, sem cartão de crédito, e valide o firmware e o serviço de encaminhamento antes de migrar a frota. A ConnectMQ é um broker MQTT gerenciado com MQTT 3.1.1 e 5.0 padrão, TLS, WebSockets e um portal com explorador de topics ao vivo. Leia o guia de broker MQTT na nuvem para conhecer as opções de implantação, ou experimente o servidor MQTT público (gratuito) para um primeiro teste, lembrando que ele serve para testes e protótipos, não para dados de produção.

Perguntas frequentes

Quando o Google Cloud IoT Core foi encerrado?

O Google desativou o Cloud IoT Core em 16 de agosto de 2023, depois de anunciar a descontinuação em 2022. Os dispositivos não conseguem mais se conectar aos seus endpoints.

Posso continuar usando Pub/Sub e BigQuery depois de mudar para outro broker?

Sim. Esses serviços não foram afetados. Um pequeno serviço assinante encaminha as mensagens MQTT do broker para o Pub/Sub, e os pipelines existentes continuam a partir daí.

Preciso de autenticação JWT em um novo broker MQTT?

Não necessariamente. A maioria dos brokers MQTT gerenciados, incluindo a ConnectMQ, usa username e senha por dispositivo sobre TLS, o que elimina a lógica de renovação de JWT do firmware.

Qual é o substituto mais próximo da configuração de dispositivos do IoT Core?

Retained messages MQTT. Publique a configuração de cada dispositivo como retida no seu próprio topic de config, e o dispositivo recebe a versão mais recente toda vez que se conecta.

Artigos relacionados

Broker MQTT BYOC: Bring Your Own Cloud Explicado

Um broker MQTT BYOC roda na sua conta de nuvem, mas é operado por um provedor. Entenda como o modelo funciona, a divisão de responsabilidades e como preparar a sua conta para ele.

9 min de leitura

Mensagens MQTT por Segundo: Como Estimar e Medir a Vazão

O planejamento de vazão em MQTT se resume a algumas fórmulas e a uma medição honesta. Aprenda a estimar mensagens de entrada e saída por segundo, considerar os picos e associar o resultado a um plano de broker.

8 min de leitura

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.