Migração de aplicações

Concluído

Depois de migrar seu banco de dados local para o Azure, você precisa atualizar seus aplicativos existentes para que eles possam acessar o MySQL em seu novo local.

Seu servidor local e banco de dados originais conterão funções que definem os privilégios associados aos usuários, as operações que eles podem fazer e os objetos sobre os quais eles executam essas operações. O Banco de Dados do Azure para MySQL usa os mesmos mecanismos de autenticação e autorização do PostgreSQL em execução local.

Nesta unidade, você explorará as atualizações que precisa fazer em seus aplicativos para se conectar ao Banco de Dados do Azure para MySQL recém-migrado.

Criar os usuários manualmente

Seu servidor local e banco de dados originais conterão os usuários, as operações que eles executam e os objetos sobre os quais eles fazem essas operações. O Banco de Dados do Azure para MySQL usa os mesmos mecanismos de autenticação e autorização que o MySQL em execução local.

Quando você transfere um banco de dados MySQL para o Banco de Dados do Azure para MySQL usando o Serviço de Migração de Banco de Dados do Azure, os usuários não são copiados. Você deve recriar manualmente as contas de usuário necessárias para o administrador e os usuários das tabelas no banco de dados de destino. Para fazer essas tarefas, você usa a linguagem SQL ou um utilitário como o MySQL Workbench. Execute o comando CREATE USER. Use o GRANT comando para atribuir os privilégios necessários a um usuário. Por exemplo:

CREATE USER 'myuseraccount'@'%' IDENTIFIED BY 'mY!P@ss0rd';
GRANT ALL PRIVILEGES ON DATABASE [Database Name].* TO myuseraccount;
FLUSH PRIVILEGES;

Para exibir as concessões existentes no banco de dados local, execute a seguinte instrução SQL:

USE [Database Name];

SHOW GRANTS FOR 'myuseraccount'@'%';;

Reconfigurar aplicativos

Reconfigurar um aplicativo para se conectar ao Banco de Dados do Azure para MySQL é um processo simples. No entanto, é crucial que você desenvolva uma estratégia para migrar aplicativos.

Considerações ao reconfigurar aplicativos MySQL

Em um ambiente corporativo, você pode ter muitos aplicativos em execução nos mesmos bancos de dados MySQL. Pode haver um grande número de usuários executando esses aplicativos. Você quer ter certeza de que, quando você mudar do sistema existente para o Banco de Dados do Azure para MySQL, seus sistemas ainda funcionarão, os usuários poderão continuar fazendo seus trabalhos e as operações críticas para os negócios permanecerão operacionais. O Módulo 1, Lição 2, Considerações sobre a migração, discutiu muitas das questões em termos gerais.

Ao migrar um banco de dados MySQL para o Azure, há algumas especificidades a serem consideradas:

  • Se você estiver executando uma migração offline, os dados no banco de dados MySQL original e os novos bancos de dados em execução no Azure podem começar a divergir rapidamente se o banco de dados antigo ainda estiver sendo usado. Uma migração offline é adequada quando você tira um sistema totalmente fora de operação por um curto período de tempo e, em seguida, alterna todos os aplicativos para o novo sistema antes de iniciar novamente. Essa abordagem pode não ser possível para um sistema crítico para os negócios. Se você estiver migrando para o MySQL em execução em uma máquina virtual do Azure, poderá configurar a replicação do MySQL entre seu sistema local e o que está sendo executado no Azure. A replicação nativa do MySQL opera em apenas uma direção, mas estão disponíveis soluções de terceiros que suportam replicação bidirecional entre servidores MySQL. Essas soluções não funcionarão com o Banco de Dados do Azure para MySQL.
  • Se você estiver executando uma migração online, o serviço Banco de Dados do Azure para MySQL configurará a replicação do banco de dados local para o banco de dados em execução no Azure. Após a transferência inicial de dados, a replicação garante que todas as alterações feitas no banco de dados local sejam copiadas para o banco de dados no Azure, mas não o contrário.

Em ambos os casos, você deve garantir que não perca dados em tempo real por meio de uma substituição acidental. Por exemplo, no cenário online, um aplicativo conectado ao banco de dados em execução no Banco de Dados do Azure para MySQL pode ter suas alterações substituídas cegamente por um aplicativo que ainda usa o banco de dados local. Portanto, você deve considerar as seguintes abordagens:

  • Migre aplicativos com base em seu tipo de carga de trabalho. Um aplicativo que acessa os dados apenas para leitura pode se mover com segurança para o banco de dados em execução no Banco de Dados do Azure para MySQL e verá todas as alterações feitas por aplicativos que ainda usam o banco de dados local. Você também pode adotar a estratégia inversa se os aplicativos somente leitura não exigirem dados totalmente atualizados.
  • Migre usuários com base em seu tipo de carga de trabalho. Essa estratégia é semelhante à anterior, exceto que você pode ter usuários que geram apenas relatórios enquanto outros modificam os dados. Você pode ter o mesmo aplicativo configurado para se conectar ao banco de dados apropriado de acordo com os requisitos do usuário.
  • Migre aplicativos com base nos conjuntos de dados que eles usam. Se aplicativos diferentes usarem subconjuntos diferentes dos dados, você poderá migrar esses aplicativos independentemente uns dos outros.

Reconfigurando um aplicativo

Para reconfigurar um aplicativo, aponte para o novo banco de dados. A maioria dos aplicativos bem escritos deve isolar a lógica de conexão — essa deve ser a única parte do código que requer alteração. Em muitos casos, as informações de conexão podem ser armazenadas como informações de configuração, portanto, você só precisa atualizar essas informações.

Você encontrará as informações de conexão para seu serviço Banco de Dados do Azure para MySQL no portal do Azure, na página Cadeias de conexão do seu serviço Banco de Dados do Azure para MySQL. O Azure fornece as informações para muitas linguagens de programação e estruturas comuns.

Image showing the Connection strings page for Azure Database for MySQL item in the Azure portal

Abrir portas de rede

Conforme mencionado na Lição 1 deste módulo, o Banco de Dados do Azure para MySQL é um serviço protegido que é executado atrás de um firewall. Os clientes não podem se conectar a menos que seu endereço IP seja reconhecido pelo serviço. Você deve adicionar os endereços IP, ou intervalos de blocos de endereços, para clientes que executam aplicativos que precisam se conectar aos seus bancos de dados.

Testar e verificar aplicativos

Antes de alternar aplicativos e usuários para o novo banco de dados, é importante garantir que você configurou tudo corretamente.

Comece por aplicativos de "execução a seco" e conecte-se como cada função para garantir que a funcionalidade correta esteja disponível.

Em seguida, execute "testes de imersão" para imitar o número de usuários executando cargas de trabalho típicas simultaneamente por um período de tempo. Monitore o sistema e verifique se você alocou recursos suficientes ao seu serviço Banco de Dados do Azure para MySQL.

Agora você pode começar a implantar o sistema para os usuários. Pode ser benéfico implementar alguma forma de "teste canário", onde um pequeno subconjunto de usuários é transferido para o sistema desprevenido. Isso lhe dá uma opinião imparcial sobre se os usuários estão tendo a mesma, melhor ou pior experiência com o novo banco de dados.