Migração de aplicativos
Depois de migrar seu banco de dados do local para o Azure, você precisará atualizar seus aplicativos existentes para que eles possam acessar o MySQL em seu novo local.
Seu servidor e banco de dados locais originais conterão funções que definem os privilégios associados aos usuários, às operações que eles podem fazer e aos objetos para os quais executam essas operações. O Banco de Dados do Azure para MySQL usa os mesmos mecanismos de autenticação e autorização que o PostgreSQL em execução no 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 e banco de dados locais 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 no local.
Ao transferir 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 executar essas tarefas, use a linguagem SQL ou um utilitário como o MySQL Workbench. Execute o comando CREATE USER
. Use o comando GRANT
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 desenvolver uma estratégia para migrar aplicativos.
Considerações ao reconfigurar aplicativos MySQL
Em um ambiente corporativo, pode haver 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 alternar do sistema existente para o Banco de Dados do Azure para MySQL, seus sistemas ainda funcionarão, que os usuários poderão continuar trabalhando e as operações comercialmente críticas permanecerão em funcionamento. No Módulo 1, Lição 2, Considerações sobre a migração, muitos dos problemas foram abordados em termos gerais.
Ao migrar um banco de dados MySQL para o Azure, há algumas especificidades a ser consideradas:
- Se você estiver executando uma migração offline, os dados no banco de dados MySQL original e os novos bancos em execução no Azure poderão 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 de operação por um curto período e alterna todos os aplicativos para o novo sistema antes de reiniciar. Essa abordagem pode não ser possível para um sistema comercialmente crítico. Se estiver migrando para o MySQL em execução em uma máquina virtual do Azure, você poderá configurar a replicação do MySQL entre o sistema local e a execução no Azure. A replicação nativa do MySQL opera em apenas uma direção, mas há soluções de terceiros disponíveis que dão suporte à replicação bidirecional entre os 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 de 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 dado local sejam copiadas para o banco do dados no Azure, mas não o inverso.
Em ambos os casos, você deve garantir que não perderá dados dinâmicos devido a uma substituição acidental. Por exemplo, no cenário online, as alterações de um aplicativo conectado ao banco de dados em execução no Banco de Dados do Azure para MySQL podem ser substituídas de forma oculta por um aplicativo que ainda usa o banco de dados local. Portanto, você deve considerar as seguintes abordagens:
- Migrar os aplicativos com base no tipo de carga de trabalho deles. Um aplicativo que acessa os dados para leitura só pode ser movido 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.
- Migrar os usuários com base no tipo de carga de trabalho deles. Essa estratégia é semelhante à anterior, exceto que pode haver usuários que só geram 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.
- Migrar os aplicativos com base nos conjuntos de dados que eles usam. Se diferentes aplicativos usarem subconjuntos diferentes dos dados, você poderá migrar esses aplicativos independentemente um do outro.
Reconfiguração de um aplicativo
Para reconfigurar um aplicativo, aponte-o 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 o serviço de Banco de Dados do Azure para MySQL no portal do Azure, na página Cadeias de conexão do seu serviço de Banco de Dados do Azure para MySQL. O Azure fornece as informações para muitas estruturas e linguagens de programação comuns.
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 o endereço IP deles seja reconhecido pelo serviço. Você deve adicionar os endereços IP ou os intervalos de bloco de endereço 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ê tenha configurado tudo corretamente.
Comece por aplicativos de "simulação" e conecte-se como cada função para garantir que a funcionalidade correta esteja disponível.
Em seguida, execute "soak tests" para imitar o número de usuários que executam cargas de trabalho típicas simultaneamente por um período de tempo. Monitore o sistema e verifique se alocou recursos suficientes para o serviço de Banco de Dados do Azure para MySQL.
Você já pode começar a distribuir o sistema para os usuários. Pode ser benéfico implementar alguma forma de "teste canário", em que um pequeno subconjunto de usuários é transferido para o sistema sem reconhecimento. Isso oferece uma opinião imparcial sobre se os usuários estão tendo uma experiência igual, melhor ou pior com o novo banco de dados.