Migrar espaços de nomes padrão do Azure Service Bus existentes para o escalão Premium

Anteriormente, o Barramento de Serviço do Azure oferecia namespaces somente na camada padrão. Namespaces são configurações multilocatárias otimizadas para ambientes de baixa taxa de transferência e desenvolvedores. A camada premium oferece recursos dedicados por namespace para latência previsível e maior taxa de transferência a um preço fixo. A camada premium é otimizada para ambientes de alto rendimento e produção que exigem recursos corporativos adicionais.

Este artigo descreve como migrar namespaces de camada padrão existentes para a camada premium.

Aviso

A migração destina-se a que os namespaces padrão do Service Bus sejam atualizados para a camada premium. A ferramenta de migração não suporta downgrade. Durante a migração do nível padrão para o nível premium, será criado um ponteiro DNS que pode ser usado para acessar o barramento de serviço padrão. Observe que durante a migração será criado um alternateName que representa o ponteiro para o namespace DNS do barramento de serviço antigo e a operação não pode ser desfeita. Qualquer tipo de teste deve ser feito em um ambiente de teste.

Alguns dos pontos a observar:

  • Essa migração deve acontecer no local, o que significa que os aplicativos de remetente e recetor existentes não exigem nenhuma alteração no código ou na configuração. A cadeia de conexão existente apontará automaticamente para o novo namespace premium.
  • Se você estiver usando um nome premium existente, o namespace premium não deverá ter entidades para que a migração seja bem-sucedida e não deverá ter o particionamento habilitado.
  • Todas as entidades no namespace padrão são copiadas para o namespace premium durante o processo de migração.
  • A migração suporta 1.000 entidades por unidade de mensagens na camada premium. Para identificar quantas unidades de mensagens você precisa, comece com o número de entidades que você tem em seu namespace padrão atual.
  • Você não pode migrar diretamente do nível básico para o nível premium, mas pode fazê-lo indiretamente migrando do nível básico para o padrão primeiro e, em seguida, do padrão para o premium na próxima etapa.
  • As configurações de controle de acesso baseado em função (RBAC) não são migradas, portanto, você precisará adicioná-las manualmente após a migração.

Passos da Migração

Algumas condições estão associadas ao processo de migração. Familiarize-se com os seguintes passos para reduzir a possibilidade de erros. Essas etapas descrevem o processo de migração e os detalhes passo a passo são listados nas seções a seguir.

  1. Crie um novo namespace premium. Conclua as próximas três etapas usando as seguintes instruções da CLI ou do portal do Azure neste artigo.
  2. Emparelhe os namespaces padrão e premium entre si.
  3. Sincronize (copy-over) entidades do namespace padrão para o namespace premium.
  4. Confirme a migração.
  5. Drene entidades no namespace padrão usando o nome pós-migração do namespace.
  6. Exclua o namespace padrão.

Importante

Depois que a migração for confirmada, acesse o namespace padrão antigo e drene as filas e assinaturas. Depois que as mensagens forem drenadas, elas podem ser enviadas para o novo namespace premium para serem processadas pelos aplicativos recetores. Depois que as filas e assinaturas forem drenadas, recomendamos que você exclua o namespace padrão antigo.

Migrar usando a CLI do Azure ou o PowerShell

Para migrar seu namespace padrão do Service Bus para premium usando a CLI do Azure ou a ferramenta PowerShell, siga estas etapas.

  1. Crie um novo namespace premium do Service Bus. Você pode fazer referência aos modelos do Azure Resource Manager ou usar o portal do Azure. Certifique-se de selecionar premium para o parâmetro serviceBusSku .

  2. Defina as seguintes variáveis de ambiente para simplificar os comandos de migração. Você pode obter a ID do Azure Resource Manager para seu namespace premium navegando até o namespace no portal do Azure e copiando a parte da URL que se parece com o exemplo a seguir: /subscriptions/00000000-0000-0000-0000-00000000000000/resourceGroups/contosoresourcegroup/providers/Microsoft.ServiceBus/namespaces/contosopremiumnamespace.

    resourceGroup = <resource group for the standard namespace>
    standardNamespace = <standard namespace to migrate>
    premiumNamespaceArmId = <Azure Resource Manager ID of the premium namespace to migrate to>
    postMigrationDnsName = <post migration DNS name entry to access the standard namespace>
    

    Importante

    O alias/nome pós-migração (post_migration_dns_name) será usado para acessar o antigo namespace padrão pós-migração. Use isso para drenar as filas e as assinaturas e, em seguida, exclua o namespace.

  3. Emparelhe os namespaces padrão e premium e inicie a sincronização usando o seguinte comando:

    az servicebus migration start --resource-group $resourceGroup --name $standardNamespace --target-namespace $premiumNamespaceArmId --post-migration-name $postMigrationDnsName
    
  4. Verifique o status da migração usando o seguinte comando:

    az servicebus migration show --resource-group $resourceGroup --name $standardNamespace
    

    A migração é considerada concluída quando você vê os seguintes valores:

    • MigrationState = "Ativo"
    • pendenteReplicationsOperationsCount = 0
    • provisioningState = "Sucedido"

    Este comando também exibe a configuração de migração. Verifique se os valores estão definidos corretamente. Verifique também o namespace premium no portal para garantir que todas as filas e tópicos foram criados e que eles correspondem ao que existia no namespace padrão.

  5. Confirme a migração executando o seguinte comando complete:

    az servicebus migration complete --resource-group $resourceGroup --name $standardNamespace
    

Migrar usando o portal do Azure

A migração usando o portal do Azure tem o mesmo fluxo lógico que a migração usando os comandos. Siga estas etapas para migrar usando o portal do Azure.

  1. No menu Navegação no painel esquerdo, selecione Migrar para premium. Selecione o botão Introdução para continuar para a próxima página. Imagem mostrando a página Migrar para premium.

  2. Você verá a seguinte página Setup Namespaces .

    Imagem mostrando a página Setup Namespaces.

  3. Nas páginas Setup Namespaces, siga uma destas etapas:

    1. Se você selecionar Criar um novo namespace premium:
      1. Na página Criar namespace, insira um nome para o namespace e selecione Revisar + criar.

      2. Na página Rever + criar, selecione Criar.

        Imagem mostrando a página Criar namespace.

    2. Se você selecionar Selecionar um namespace premium vazio existente:
      1. Selecione a assinatura do Azure e o grupo de recursos que tem o namespace.

      2. Em seguida, selecione o namespace premium.

      3. Em seguida, clique em Selecionar.

        Imagem mostrando a seleção de um namespace premium existente.

  4. Introduza um nome pós-migração e, em seguida, selecione Seguinte. Você usará esse nome para acessar o namespace padrão após a conclusão da migração.

    Imagem mostrando o nome pós-migração para o namespace padrão.

  5. Selecione Iniciar sincronização para sincronizar entidades entre os namespaces padrão e premium.

    Imagem mostrando o botão Iniciar sincronização.

  6. Selecione Sim na caixa de diálogo para confirmar e iniciar a sincronização. Aguarde até que a sincronização seja concluída. Em seguida, selecione Seguinte.

    Importante

    Se você precisar cancelar a migração por qualquer motivo, revise o fluxo de cancelamento na seção Perguntas frequentes deste documento.

  7. Selecione Concluir migração na página Switch .

    Imagem mostrando a página **Switch** do assistente de migração.

  8. Selecione Sim para confirmar a mudança do namespace padrão para premium. Quando a opção estiver concluída, o nome DNS do namespace padrão apontará para o namespace premium. Esta operação não pode ser desfeita. Você verá a página Êxito quando a migração for concluída.

    Imagem mostrando a página Sucesso.

Limitações

Alguns dos recursos fornecidos pela camada do Azure Service Bus Standard não são suportados pela camada Premium do Azure Service Bus. Eles são por design, uma vez que o nível premium oferece recursos dedicados para taxa de transferência e latência previsíveis.

Aqui está uma visão geral dos recursos não suportados pelo Premium e sua mitigação.

Entidades expressas

As entidades Express que não confirmam nenhum dado de mensagem para armazenamento não são suportadas na camada Premium . Recursos dedicados proporcionaram uma melhoria significativa na taxa de transferência, garantindo que os dados sejam persistentes, como é esperado de qualquer sistema de mensagens corporativo.

Durante a migração, qualquer uma de suas entidades expressas em seu namespace Standard será criada no namespace Premium como uma entidade não expressa.

Se você utilizar modelos do Azure Resource Manager, certifique-se de remover o sinalizador 'enableExpress' da configuração de implantação para que seus fluxos de trabalho automatizados sejam executados sem erros.

Configurações do RBAC

As configurações de controle de acesso baseado em função (RBAC) no namespace não são migradas para o namespace premium. Você precisará adicioná-los manualmente após a migração.

FAQs

O que acontece quando a migração é confirmada?

Depois que a migração for confirmada, a cadeia de conexão que apontou para o namespace padrão apontará para o namespace premium.

Os aplicativos remetente e recetor se desconectarão do namespace padrão e se reconectarão ao namespace premium automaticamente.

Se você estiver usando a ID do Azure Resource Manager para configuração em vez de uma cadeia de conexão (por exemplo, como um destino para uma Assinatura de Grade de Eventos), precisará atualizar a ID do Azure Resource Manager para ser a do namespace premium.

O que devo fazer após a conclusão da migração padrão para premium?

A migração padrão para premium garante que os metadados da entidade, como tópicos, assinaturas e filtros, sejam copiados do namespace padrão para o namespace premium. Os dados da mensagem que foram confirmados para o namespace padrão não são copiados do namespace padrão para o namespace premium.

O namespace padrão pode ter algumas mensagens que foram enviadas e confirmadas enquanto a migração estava em andamento. Drene manualmente essas mensagens do namespace padrão e envie-as manualmente para o namespace premium. Para drenar manualmente as mensagens, use um aplicativo de console ou um script que drene as entidades de namespace padrão usando o nome DNS pós-migração especificado nos comandos de migração. Envie essas mensagens para o namespace premium para que possam ser processadas pelos recetores.

Depois que as mensagens forem drenadas, exclua o namespace padrão.

Importante

Depois que as mensagens do namespace padrão tiverem sido drenadas, exclua o namespace padrão. Isso é importante porque a cadeia de conexão que inicialmente se referia ao namespace padrão agora se refere ao namespace premium. Você não precisará mais do namespace padrão. Excluir o namespace padrão que você migrou ajuda a reduzir a confusão posterior.

Quanto tempo de inatividade eu espero?

O processo de migração destina-se a reduzir o tempo de inatividade esperado para os aplicativos. O tempo de inatividade é reduzido usando a cadeia de conexão que os aplicativos remetente e recetor usam para apontar para o novo namespace premium.

O tempo de inatividade experimentado pelo aplicativo é limitado ao tempo necessário para atualizar a entrada DNS para apontar para o namespace premium. O tempo de inatividade é de aproximadamente 5 minutos.

Tenho que fazer alguma alteração de configuração ao fazer a migração?

Não, não há alterações de código ou configuração necessárias para fazer a migração. O nome DNS do seu namespace padrão apontará para o seu namespace premium. A cadeia de conexão que seus aplicativos remetente e recetor usam para acessar o Namespace padrão é mapeada automaticamente para atuar como um alias para o namespace premium.

Como faço para abortar a migração?

A migração pode ser anulada usando o Abort comando ou o portal do Azure.

CLI do Azure

az servicebus migration abort --resource-group $resourceGroup --name $standardNamespace

Portal do Azure

Selecione Anular na página Sincronizar entidades .

Imagem mostrando a página Abortar.

Quando estiver concluído, você verá a seguinte página:

Imagem mostrando a página Abortar concluída.

O que acontece quando aborto a migração?

Quando o processo de migração é abortado, ele anula o processo de cópia das entidades (tópicos, assinaturas e filtros) do namespace padrão para o premium e quebra o emparelhamento.

A cadeia de conexão não é atualizada para apontar para o namespace premium. Seus aplicativos existentes continuam a funcionar como antes de iniciar a migração.

No entanto, ele não exclui as entidades no namespace premium ou exclui o namespace premium. Exclua as entidades manualmente se você decidiu não avançar com a migração.

Importante

Se você decidir cancelar a migração, exclua o Namespace premium que você provisionou para a migração para que você não seja cobrado pelos recursos.

Eu não quero ter que drenar as mensagens. O que posso fazer?

Pode haver mensagens enviadas pelos aplicativos remetentes e confirmadas para o armazenamento no Namespace padrão enquanto a migração está ocorrendo e imediatamente antes da migração ser confirmada.

Durante a migração, os dados/carga real da mensagem não são copiados do namespace padrão para o namespace premium. As mensagens devem ser drenadas manualmente e, em seguida, enviadas para o namespace premium.

No entanto, se você puder migrar durante uma janela de manutenção/limpeza planejada e não quiser drenar e enviar as mensagens manualmente, siga estas etapas:

  1. Pare os aplicativos remetentes. Os aplicativos recetores processarão as mensagens que estão atualmente no namespace padrão e drenarão a fila.

  2. Depois que as filas e assinaturas no namespace padrão estiverem vazias, siga o procedimento descrito anteriormente para executar a migração do namespace padrão para o namespace premium.

  3. Após a conclusão da migração, você pode reiniciar os aplicativos remetentes.

  4. Os remetentes e recetores agora se conectarão automaticamente ao namespace premium.

    Nota

    Não é necessário parar os aplicativos do recetor para a migração.

    Após a conclusão da migração, os aplicativos do recetor se desconectarão do namespace padrão e se conectarão automaticamente ao namespace premium.

Próximos passos