Migrar do Pub/Sub Lite para o Pub/Sub

Neste documento, fornecemos informações sobre como migrar seus aplicativos e dados do Pub/Sub Lite para o Pub/Sub.

Para migrar para o Pub/Sub, use o recurso de assinatura de exportação do Pub/Sub Lite. O recurso de assinatura de exportação converte mensagens de um Pub/Sub Lite em uma mensagem do Pub/Sub usando um tipo de assinatura chamado assinatura de exportação.

Diferenças entre o Pub/Sub Lite e o Pub/Sub

O Pub/Sub e o Pub/Sub Lite são serviços de mensagens escalonáveis horizontalmente, mas cada um deles tem diferenças importantes no funcionamento. Para entender essas diferenças em detalhes, leia Escolher Pub/Sub ou Pub/Sub Lite.

As seções a seguir descrevem algumas das principais diferenças entre cada serviço relevantes ao migrar entre serviços. Elas incluem as seguintes considerações:

  • Localidade e replicação dos dados
  • Modos de entrega
  • Paralelismo e ordenação
  • Repetir e limpar
  • Gerenciamento de capacidade e preços

Localidade e replicação dos dados

  • Pub/Sub Lite: Os tópicos regionais do Pub/Sub Lite replicam dados em uma zona secundária na mesma região. Os tópicos zonais do Pub/Sub Lite armazenam dados em uma única zona sem replicação.

  • Pub/Sub. O Pub/Sub replica os dados em três zonas de uma região.

Ponto principal de migração

É importante entender como cada serviço replica os dados de maneira diferente.

Ao usar o Pub/Sub, é possível garantir que os dados sejam armazenados em regiões preferidas usando as políticas de armazenamento de mensagens do Pub/Sub.

  • O Pub/Sub não fornece controle sobre as zonas específicas em que as mensagens são armazenadas. Em vez disso, ele sempre replica os dados em três zonas dentro de uma região, conforme determinado pela política de armazenamento de mensagens.

  • Se você não especificar uma política de armazenamento de mensagens, o Pub/Sub determinará automaticamente onde as mensagens serão armazenadas com base na Política de restrição da localização de recursos. Se você não definir explicitamente uma política da organização, o Pub/Sub permitirá todas as regiões e selecionará automaticamente uma para armazenar mensagens.

Modos de entrega

Ponto principal de migração

Se você quiser replicar o comportamento do Pub/Sub Lite no Pub/Sub (por exemplo, baixa latência e alta eficiência), implemente seus clientes de consumidor usando a API StreamingPull. Como alternativa, é possível implementar sua assinatura do Pub/Sub usando outros modos de transferência disponíveis, como a entrega por push.

Paralelismo e ordenação

  • Pub/Sub Lite: O Pub/Sub Lite oferece suporte ao paralelismo por partição.

  • Pub/Sub. O Pub/Sub é compatível com paralelismo por mensagem.

Ponto principal de migração

O Pub/Sub não é uma solução baseada em partições. As mensagens do Pub/Sub também podem ser processadas simultaneamente, o que significa que a ordem das mensagens não é garantida. Se o aplicativo exigir a ordenação de mensagens, use as chaves de ordenação do Pub/Sub.

Ao usar a assinatura de exportação no Pub/Sub Lite, a chave do Pub/Sub Lite é usada como a chave de ordem na mensagem do Pub/Sub. Isso garante que as mensagens continuem sendo entregues em ordem.

Para garantir a compatibilidade com mensagens do Pub/Sub, verifique se as chaves do Pub/Sub Lite contêm apenas caracteres codificados em UTF-8.

  • As chaves do Pub/Sub Lite são armazenadas como bytes.
  • As chaves de ordem do Pub/Sub são armazenadas como strings.

As chaves de ordem do Pub/Sub têm uma capacidade máxima de processamento do editor de 1 MBps. A ordem das mensagens no Pub/Sub só é garantida dentro de uma única região. Para receber mensagens ordenadas no Pub/Sub, é preciso ativar explicitamente a ordem das mensagens nas configurações de assinatura.

Repetir e limpar

  • Pub/Sub Lite: O Pub/Sub Lite oferece suporte ao recurso de busca sem exigir outras configurações.

  • Pub/Sub. O Pub/Sub é compatível com o recurso de busca, mas requer configuração extra.

Ponto principal de migração

Para ativar o recurso de busca, o Pub/Sub exige que você defina explicitamente as configurações no tópico e na assinatura.

  • Tópico: você precisa configurar a duração da retenção de mensagens
  • Assinatura: você precisa configurar uma retenção de mensagens confirmadas.

A definição dessas configurações é essencial se você precisar de paridade exata com o Pub/Sub Lite ou se a migração exigir a repetição ou limpeza de mensagens. Independentemente dos requisitos específicos, a capacidade de buscar e reprocessar mensagens é uma proteção valiosa durante uma migração em fases. Ela permite a reversão e minimiza a perda de dados em caso de problemas inesperados.

Gerenciamento de capacidade e preços

  • Pub/Sub Lite: A capacidade do Pub/Sub Lite é provisionada manualmente configurando o armazenamento e a capacidade usando reservas do Pub/Sub Lite.

  • Pub/Sub. O Pub/Sub é totalmente gerenciado e escalona automaticamente.

Ponto principal de migração

Ao fazer a transição para o Pub/Sub, é possível gerenciar a capacidade e os preços definindo substituições de cota ou solicitando uma alteração de cota para seus recursos do Pub/Sub.

O principal motivo para gerenciar a capacidade do Pub/Sub é atender a requisitos de custo rigorosos. Se você não tiver limites de custo estritos, o Pub/Sub poderá gerenciar recursos com eficiência e sem muita intervenção. O Pub/Sub é faturado com base no uso. Para informações detalhadas, consulte Preços do Pub/Sub.

Planejar uma migração

Para migrar do Pub/Sub Lite para o Pub/Sub, use o recurso de assinatura de exportação do Pub/Sub Lite. A assinatura de exportação permite migrar seu aplicativo Pub/Sub Lite em fases. A adoção de uma abordagem em fases permite atualizar, testar e monitorar a migração de maneira iterativa, minimizando o risco de erros e inatividade.

Antes de começar

  • Avalie o aplicativo atual do Pub/Sub Lite e mapeie os recursos correspondentes do Pub/Sub necessários.
  • Verifique se o Pub/Sub atende a todos os requisitos funcionais e de negócios.

Fluxo de trabalho da migração em fases

As etapas a seguir apresentam uma visão geral do fluxo de trabalho da migração de assinaturas por exportação.

  1. Crie os tópicos relevantes do Pub/Sub e uma assinatura para o tópico.
  2. Crie uma assinatura de exportação do Pub/Sub Lite.
  3. Assine o Pub/Sub e o Pub/Sub Lite.
  4. Atualize gradualmente os editores para enviar mensagens ao tópico do Pub/Sub em vez do tópico do Pub/Sub Lite.
  5. Verifique se a carga de trabalho migrada está funcionando conforme o esperado.
  6. Desative os editores e assinantes do Pub/Sub Lite.

Fases da migração

As seções a seguir fornecem detalhes sobre cada etapa do fluxo de trabalho de migração em fases.

Criar tópicos e assinaturas do Pub/Sub

Crie um tópico do Pub/Sub correspondente e a respectiva assinatura. Nessa fase, você define as configurações necessárias de tópicos e assinaturas, como retenção de mensagens, confirmação de mensagens e políticas de armazenamento de mensagens.

Se necessário, estabeleça e configure cotas para evitar o uso excessivo e cobranças inesperadas. Mais importante, recomendamos que você configure um tópico de mensagens inativas do Pub/Sub Lite para capturar mensagens que não forem migradas com sucesso para o Pub/Sub. Isso permite solucionar erros, identificar a causa raiz das falhas na exportação e reenviar mensagens com falha ao tópico correto, garantindo que não haja perda de dados.

Criar assinaturas de exportação do Pub/Sub Lite

Para cada tópico, crie uma assinatura de exportação do Pub/Sub Lite para exportar mensagens do tópico do Pub/Sub Lite para o tópico do Pub/Sub correspondente. Em vez de definir individualmente a capacidade de processamento para cada assinatura de exportação, use uma reserva do Pub/Sub Lite para gerenciar com eficiência a capacidade de todas as suas assinaturas de exportação coletivamente. Ao final dessa fase, os tópicos do Pub/Sub Lite e do Pub/Sub receberão as mesmas mensagens a partir do momento em que as assinaturas de exportação foram criadas.

Assim, é possível usar os tópicos do Pub/Sub para desenvolver e testar gradualmente os clientes assinantes em fases isoladas. Essa abordagem minimiza as interrupções nos aplicativos atuais do Pub/Sub Lite.

Faça a assinatura dupla dos tópicos do Pub/Sub Lite e do Pub/Sub

Em um ambiente de desenvolvimento, atualize os clientes assinantes para ler mensagens diretamente dos tópicos do Pub/Sub, usando a biblioteca de cliente do Pub/Sub apropriada. Ao contrário do Pub/Sub Lite, o Pub/Sub oferece vários. Ao contrário do Pub/Sub Lite, o Pub/Sub oferece vários modos de entrega (pull e push). Portanto, escolha o que melhor se alinha aos requisitos do seu aplicativo.

  • Para emular o mesmo comportamento do Pub/Sub Lite, configure a instância do Pub/Sub com a API StreamingPull.

  • Em um sistema com vários aplicativos de consumidor, migre gradualmente cada aplicativo, um por um. Para cada aplicativo de assinante, execute o assinante do Pub/Sub Lite e o novo assinante em paralelo para verificar o comportamento e o desempenho do novo assinante. Monitore ambos os assinantes para garantir a consistência na entrega de mensagens, o tratamento de erros e a funcionalidade geral. Depois que todos os assinantes forem migrados e validados com sucesso, desative os clientes assinantes antigos do Pub/Sub Lite.

Atualizar editores

Depois que todos os assinantes estiverem consumindo mensagens do Pub/Sub, será possível atualizar gradualmente os editores para enviar mensagens diretamente aos tópicos do Pub/Sub. Para fazer isso, atualize os editores para usar as bibliotecas de cliente do Pub/Sub. Isso garante que você possa deslocar o tráfego gradualmente do Pub/Sub Lite para o Pub/Sub.

Desativar o Pub/Sub Lite

Depois de migrar todos os assinantes e editores para o Pub/Sub, encerre seus recursos do Pub/Sub Lite. Isso ajuda a evitar custos desnecessários na infraestrutura não utilizada.

A seguir