Migrar Service Bus Standard para Premium

[ad_1]

Até pouco tempo, o Azure Service Bus apenas tinha apenas a oferta para o Tier Standard otimizados para ambientes de baixa taxa de transferência e para desenvolvedores.

O Tier Premium proporciona recursos dedicados por namespace, garantindo latência previsível e maior taxa de transferência a um preço fixo, sendo otimizada para ambientes de produção e alta taxa de transferência.

Hoje vou mostrar como realizar a migração do Azure Service Bus Standard para Premium utilizando Powershell (também é possível fazer no Azure Portal)

Table of Contents

Antes de migrar, você precisa saber disso

  • Nenhuma alteração na aplicação é necessária, pois a Connection String existente no tier Standard vai ser criada no novo namespace Premium
  • Caso você já possua um Service Bus Premium e queira utilizá-lo para esta migração, ele não deverá ter entidades e não deverá ter o particionamento habilitado
  • Todas as entidades no namespace standard são copiadas para o namespace premium durante o processo de migração
  • A migração dá suporte a 1.000 entidades por unidade do sistema de mensagens na camada premium
  • Para migrar um tier Basic para o tier Premium, é necessário migrá-lo para o tier Standard primeiro e depois para o Premium
  • O controle de acesso baseado em função (RBAC) não é migrado, sendo necessário adicionar após a migração

Realizando a migração com Powershell

Antes de começar o primeiro passo é ter dois Azure Service Bus, o Standard e o Premium, lembrando que o Premium precisa estar vazio

Aqui te mostro o passo a passo, para realizar a migração, mas também tem o script pronto aqui no meu repositório GitHub

migrar service bus standard para premium service bus standard service bus premium viniciusdeschamps.com .br

Vamos dar uma olhada nas configurações do Service Bus Standard

Service Bus Standard

Overview

migrar service bus standard para premium service bus standard overview viniciusdeschamps.com .br

Shared access policies

migrar service bus standard para premium service bus standard shared access policies viniciusdeschamps.com .br

Queue

migrar service bus standard para premium service bus standard queue viniciusdeschamps.com .br

Topic

migrar service bus standard para premium service bus standard topic viniciusdeschamps.com .br

E agora garantir que o Service Bus Premium está vazio

Service Bus Premium

Overview

migrar service bus standard para premium service bus premium overview viniciusdeschamps.com .br

Shared access policies

Shared access policies são criadas automaticamente ao criar um Azure Service Bus, seja ele Standard ou Premium, então tudo bem existir e não vai atrapalhar a migração.

Quer saber mais sobre Shared Access Policies? Clique aqui

migrar service bus standard para premium service bus premium shared access policies viniciusdeschamps.com .br

Queue

migrar service bus standard para premium service bus premium queue vazio viniciusdeschamps.com .br

Topic

migrar service bus standard para premium service bus premium topic vazio viniciusdeschamps.com .br

Definindo variáveis

Em seguida, vamos precisar das seguintes informações para definir como variáveis no nosso script

  • Resource Group do Azure Service Bus Standard
  • Nome do Azure Service Bus Standard
  • Resource ID do Service Bus Premium, no formato abaixo
    • /subscriptions/[subscription-id]/resourceGroups/[resource-group]/providers/Microsoft.ServiceBus/namespaces/[Azure-Service-Bus-Premium-Name]
  • Domain Name Service Name pós-migração
    • Será utilizado para acessar o namespace Standard (antigo) após a migração para esvaziar filas e assinaturas

No cenário que estou utilizando, estas são as variáveis:

$resourceGroupSourceAsb = "rg-vinicius"
$sourceServiceBus = "vinicius-sb01"
$targetServiceBus = "/subscriptions/073f055f-b619-5649-c913-bb1462def95f/resourceGroups/rg-vinicius/providers/Microsoft.ServiceBus/namespaces/vinicius-sb02-premium"
$dnsPostMigration = "acessarviniciussb01"
migrar service bus standard para premium service bus premium definindo variaveis viniciusdeschamps.com .br

Executando a migração

Uma vez definida as variáveis, vamos iniciar a migração, com o seguinte comando

az servicebus migration start --resource-group $resourceGroupSourceAsb --name $sourceServiceBus --target-namespace $targetServiceBus --post-migration-name $dnsPostMigration
migrar service bus standard para premium service bus premium executar migracao viniciusdeschamps.com .br

E aguardar a execução até que você veja a seguinte saída

migrar service bus standard para premium service bus premium migracao completa viniciusdeschamps.com .br

Então, confirmar a migração, para conseguir acessar o Service Bus Premium pela sua Connection String

az servicebus migration complete --resource-group $resourceGroupSourceAsb --name $sourceServiceBus
migrar service bus standard para premium service bus premium completar migracao viniciusdeschamps.com .br

Este comando não retornará nenhum tipo de saída, então agora vamos verificar como está o Service Bus no Azure Portal

Verificar no Azure Portal

Primeiro, vamos até o Azure Service Bus Standard

Pós-migração Service Bus Standard

O Shared access policies foi alterado, como você pode ver, agora o Primary e o Seconday Connection String mostra o valor definido na variável $dnsPostMigration (acessarviniciussb01)

migrar service bus standard para premium service bus standard shared access policies apos migracao viniciusdeschamps.com .br

Observando o queues, no Service Bus Standard ainda possui a queue-test e com 16 mensagens, e precisamos limpar antes de deletar esse Service Bus

migrar service bus standard para premium service bus standard queue apos migracao viniciusdeschamps.com .br

Pós-migração Service Bus Premium

Já no Shared access policies do Service Bus Premium, temos um Alias Primary e Secondary Connection String utilizando o nome do Service Bus Standard, e esta é a explicação para a frase “Antes de migrar, você precisa saber disso”:

Nenhuma alteração na aplicação é necessária, pois a Connection String existente no tier Standard vai ser criada no novo namespace Premium

This image has an empty alt attribute; its file name is migrar-service-bus-standard-para-premium-service-bus-premium-shared-access-policies-apos-migracao-viniciusdeschamps.com_.br_-1024x629.png

E também o topics-test em Topics

migrar service bus standard para premium service bus premium topic apos migracao viniciusdeschamps.com .br

Além disto, temos agora o queue-test em Queues

migrar service bus standard para premium service bus premium queue apos migracao viniciusdeschamps.com .br

Porém, como podem observar, as mensagens que existiam no Service Bus Standard não foram migradas para o Premium, inclusive a Microsoft, em sua documentação, explica isso

Os dados da mensagem que foram confirmados no namespace standard não são copiados do namespace standard para o namespace premium.

O namespace standard pode ter algumas mensagens que foram enviadas e confirmadas enquanto a migração estava em andamento. Esvazie manualmente essas mensagens do namespace Standard e envie-as manualmente para o namespace Premium. Para drenar manualmente as mensagens, utilize um aplicativo de console ou um script que drene as entidades do namespace padrão usando o nome DNS pós-migração que você especificou nos comandos de migração. Envie essas mensagens para o namespace premium para que elas possam ser processadas pelos receptores.

Enviar mensagens Service Bus Standard para o Service Bus Premium

Até o momento da criação deste artigo, não consegui encontrar uma forma de fazer através de Powershell, apenas C# e Python.

Então, utilizei o código que encontrei aqui como exemplo para criar o código em Python.

Você precisa instalar os seguintes módulos do Python e o código em Python está disponível aqui no meu GitHub

  • pip install azure-servicebus

Eu executei através do Visual Studio Code, indo em Run > Start Debugging para caso exista algum erro, eu consiga ter mais detalhes a respeito

migrar service bus standard para premium service bus premium enviar mensagem standard premium python viniciusdeschamps.com .br

E essa foi a saída, após a execução

migrar service bus standard para premium service bus premium enviar mensagem standard premium python output viniciusdeschamps.com .br

Vamos conferir no Azure Portal, se o Service Bus Premium agora possui mensagens no queue

migrar service bus standard para premium service bus premium queue apos execucao python viniciusdeschamps.com .br

Agora que a migração ocorreu, as mensagens foram transferidas para o Service Bus Premium, basta remover o Service Bus Standard

Referências

[ad_2]

Share this content:

I am a passionate blogger with extensive experience in web design. As a seasoned YouTube SEO expert, I have helped numerous creators optimize their content for maximum visibility.

Leave a Comment