Serviços de banco de dados MySQL e PostgreSQL no Azure
Se você tem um banco de dados local funcional, por que deve pensar em movê-lo para um serviço de nuvem, por exemplo, o Azure? Da mesma forma, por que considerar a implementação de um novo sistema de banco de dados no Azure? Muitas organizações fazer essa migração porque é fácil e relativamente barato criar um serviço altamente disponível e escalonável na nuvem, comparado com o uso de um datacenter local.
Para sua start-up, os bancos de dados que atualmente são executados em MySQL e PostgreSQL localmente são essenciais, mas ficam limitados ao tamanho do seu data center e ao tamanho da sua equipe de administração. Você deseja investigar se é possível resolver essas limitações usando os serviços do Azure e, se for o caso, quais serviços são mais adequados às suas necessidades.
Aqui, você conhecerá o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB e o Banco de Dados do Azure para PostgreSQL, além das opções de implantação que você pode usar com eles. Você também aprenderá as vantagens de executar bancos de dados open-source em máquinas virtuais ou contêineres no Azure e a abordagem de IaaS (infraestrutura como serviço).
Disponibilidade
A disponibilidade garantida pelos SLAs (Contratos de Nível de Serviço) depende dos detalhes exatos da sua implementação, mas ela é sempre alta. Por exemplo, para o Banco de Dados do Azure para PostgreSQL, a Microsoft garante 99,99% de disponibilidade sem custo adicional. Para uma disponibilidade ainda maior, você pode usar o Servidor Flexível.
Se você quisesse alcançar essa disponibilidade em uma rede local, precisaria arquitetar um sistema que fosse resiliente a falhas de hardware. Você precisaria de:
- Vários servidores físicos.
- Um balanceador de carga que pudesse redirecionar consultas em caso de falha no servidor.
- Uma rede de área de armazenamento que compartilhasse dados entre servidores ou uma maneira de replicar dados entre servidores.
- Hardware de rede resiliente.
- Um datacenter com ambiente controlado.
- No-breaks e geradores de backup.
Todos esses componentes são caros e exigem habilidades de implementação e execução. Eles também consumiriam recursos administrativos consideráveis. Com o Azure, esses requisitos já estão resolvidos; basta criar o banco de dados e a alta disponibilidade virá incluída.
Escalabilidade
Se a sua base de usuários cresce, a demanda do sistema também cresce. Todo sistema local tem uma capacidade máxima; se você alcançar esse limite, precisará aumentá-lo com a adição de mais hardware. Não é possível adicionar capacidade instantaneamente. Você precisará comprar o hardware, instalar o sistema operacional e o software necessários, aplicar atualizações e, em seguida, adicionar os dados à nova instância do banco de dados. Todas essas coisas levam tempo.
Lembre-se também de que a alta demanda geralmente é temporária. Por exemplo, se você veicular uma campanha de marketing bem-sucedida, poderá ver um pico no tráfego, seguido de um retorno a uma menor demanda. Em uma configuração local, você precisará criar o sistema para esses picos. Isso significa que o sistema fica subutilizado na maior parte do tempo, mas ainda gera gastos e requer manutenção.
Esses desafios são muito mais fáceis de superar na nuvem. Se seu sistema atingir a capacidade, você poderá responder rapidamente, por exemplo, mudando para uma camada maior ou adicionando máquinas virtuais. Se a demanda cair, você economizará dinheiro rapidamente com a remoção da capacidade. No Azure, você paga apenas pela capacidade que usar.
IaaS e PaaS
Você pode escolher entre pelo menos duas abordagens ao implementar um banco de dados no Azure, dependendo do nível de controle necessário:
- IaaS (Infraestrutura como serviço). Se escolher a abordagem IaaS, o Azure executará a infraestrutura física para você. Você cria máquinas virtuais e redes virtuais para conectá-las e, em seguida, instala o software e os dados necessários. A execução de uma máquina virtual é como a execução de um servidor físico. Você mantém o sistema operacional e o software, mas não precisa se preocupar com o datacenter, o controle ambiental ou as conexões com a Internet.
- PaaS (Plataforma como serviço). Se você escolher a abordagem de PaaS, o Azure executará a infraestrutura física, os servidores virtuais necessários e o software de banco de dados. Você não precisa executar tarefas de configuração ou manutenção nesses componentes. Por exemplo, o Azure aplica pacotes de serviços automaticamente. Você pode focar na administração do banco de dados. As ofertas de PaaS para executar bancos de dados open-source no Azure incluem o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDBe o Banco de Dados do Azure para PostgreSQL.
Quais são os serviços de Banco de Dados do Azure para MySQL, MariaDB e PostgreSQL?
Se você tem um sistema de banco de dados local criado em MySQL, MariaDB ou PostgreSQL e quer mover seu banco de dados para a nuvem, pense em usar o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB ou o Banco de Dados do Azure para PostgreSQL. Você também pode querer usar esses serviços para implementar novos bancos de dados. Por exemplo, se seus desenvolvedores e administradores de banco de dados tiverem experiência com esses servidores de banco de dados e você não quiser que eles gastem tempo aprendendo um novo sistema, o uso do Banco de Dados do Azure para MySQL, do Banco de Dados do Azure para MariaDBou do Banco de Dados do Azure para PostgreSQL permitirá que a equipe use seu conhecimento existente. O Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB e o Banco de Dados do Azure para PostgreSQL são sistemas PaaS, ou seja, você não precisa se preocupar com a arquitetura ou a implementação de servidores virtuais ou redes.
O que é o Banco de Dados do Azure para MySQL?
O Banco de Dados do Azure para MySQL é uma implementação de PaaS do MySQL na nuvem do Azure baseada na Community Edition do MySQL. No momento, é possível selecionar suporte às versões 5.6, 5.7 e 8.0 do MySQL, dependendo das suas necessidades. O suporte a versões adicionais será fornecido à medida que o MySQL evoluir.
Os seguintes recursos estão disponíveis no Banco de Dados do Azure para MySQL:
- Recursos internos de alta disponibilidade.
- Desempenho previsível.
- Dimensionamento fácil que responde rapidamente à demanda.
- Proteção dos dados, em repouso e em movimento.
- Backups automáticos e restauração pontual dos últimos 35 dias.
- Segurança de nível empresarial e conformidade com a legislação.
O sistema usa o preço pago conforme o uso para que você pague apenas pelo que usar.
Você pode escolher entre duas opções de implantação:
Banco de Dados do Azure para MySQL – Servidor flexível
Banco de Dados do Azure para MySQL – o Servidor Flexível fornece maior disponibilidade pela replicação de seus bancos de dados para várias zonas de disponibilidade. Ele também permite que você inicie e interrompa seu serviço de banco de dados rapidamente a fim de otimizar os custos.
O Banco de Dados do Azure para MySQL fornece um sistema de banco de dados global que pode ser dimensionado para grandes bancos de dados sem a necessidade de gerenciar hardware, componentes de rede, servidores virtuais, patches de software e outros componentes subjacentes.
O que é o Banco de Dados do Azure para MariaDB?
O MariaDB é uma bifurcação do MySQL que foi criada pela Comunidade em resposta à aquisição do MySQL pela Oracle. O Banco de Dados do Azure para MariaDB é a implementação de PaaS do MariaDB na nuvem do Azure.
O MariaDB foi projetado para ser um substituto do MySQL, para que você possa substituir um banco de dados do MySQL por um banco de dados do MariaDB sem recodificação extensiva de aplicativos cliente ou alterações no esquema de banco de dados. Muitos recursos do MariaDB são os mesmos do MySQL, por exemplo:
- Estruturas e índices de banco de dados
- Comandos de definição de dados
- Protocolos, estruturas e APIs do cliente
- Os programas
mysqldump
emysqladmin
Essa similaridade entre MySQL e MariaDB significa que as tarefas de migração do MySQL para o Banco de Dados do Azure para MySQL são muito semelhantes às do MariaDB para o Banco de Dados do Azure para MariaDB. Há algumas diferenças entre os sistemas. Por exemplo, o MariaDB dá suporte a Rache Redis e Columnstore e ambos podem ser usados para otimizar o desempenho.
Observação
Como as migrações do Bancos de Dados do MySQL e do MariaDB para o Azure são tão semelhantes, elas serão abordadas em conjunto neste curso.
Importante
No momento da criação deste curso, não há nenhuma opção de implantação de Servidor Flexível para o Banco de Dados do Azure para MariaDB.
O que é o Banco de Dados do Azure para PostgreSQL?
Se preferir o PostgreSQL, você poderá escolher Banco de Dados do Azure para PostgreSQL para obter uma implementação de PaaS desse servidor de banco de dados na nuvem do Azure. Ele fornece os mesmos benefícios de disponibilidade, desempenho, dimensionamento, segurança e administração que o MySQL.
Você pode escolher entre três opções de implantação:
Servidor Flexível do Banco de Dados do Azure para PostgreSQL
Banco de Dados do Azure para PostgreSQL – o Servidor Flexível fornece benefícios semelhantes aos do Servidor Flexível do MySQL. Você pode usá-lo para oferecer os melhores níveis de disponibilidade e reinicializações convenientes.
Opções de IaaS para executar MySQL, MariaDB e PostgreSQL no Azure
Use a abordagem IaaS para replicar uma arquitetura física na nuvem. Você pode escolher IaaS se quiser ter mais controle sobre os sistemas operacionais e o software que estão em seu sistema.
No entanto, há várias abordagens que você pode adotar para implementar a abordagem de IaaS, dependendo dos seus requisitos e da complexidade dos sistemas existentes.
Lift-and-shift
Uma abordagem é espelhar sua arquitetura local na nuvem com a criação de uma infraestrutura de rede virtual que corresponda à do seu datacenter: você cria uma máquina virtual para cada servidor no seu sistema local. Você instala e configura seu software de sistema de gerenciamento de banco de dados (MySQL, MariaDB ou PostgreSQL) nas máquinas virtuais. Em seguida, você faz lift-and-shift do sistema para a nuvem com poucas alterações no código do cliente ou na configuração.
Com essa estratégia, você segue um processo passo a passo de migração. Você move partes do sistema incrementalmente para a nuvem, mas mantendo outros elementos no local, usando o gateway de rede do Azure. Use essa abordagem híbrida para estabilizar o sistema em cada etapa e revertê-la, se necessário.
Usar máquinas virtuais predefinidas
O Marketplace inclui máquinas virtuais pré-configuradas para servidores MySQL, MariaDB e PostgreSQL. Essas imagens economizam tempo porque você não precisa instalar o software do servidor de banco de dados por conta própria. Quando você estiver configurando máquinas virtuais de banco de dados, verifique se há uma imagem no Marketplace com a versão correta do software de banco de dados e pense em usá-la.
Você também pode carregar uma imagem de máquina virtual personalizada no Azure e usá-la para criar máquinas virtuais. Essa imagem pode incluir o software de banco de dados de sua escolha e até mesmo o próprio banco de dados. Para obter mais informações, confira Tutorial: criar uma imagem personalizada de uma VM do Azure com o Azure PowerShell.
Usar contêineres MySQL, MariaDB ou PostgreSQL
Outra tecnologia de virtualização que você pode considerar é a conteinerização. Um contêiner é como uma máquina virtual, mas ele compartilha o sistema operacional com o computador host. Os contêineres são menores do que as máquinas virtuais, para que você possa executar mais deles em um computador host e iniciar novos contêineres mais rapidamente. No entanto, você não pode executar um contêiner do Linux em um computador Windows, por exemplo, porque o sistema operacional é compartilhado. Para executar contêineres em um servidor físico, você precisará de um software de host de contêiner, como o Docker. Os contêineres são implantados com base em imagens e, como as máquinas virtuais, essas imagens podem incluir software de banco de dados, como MySQL, MariaDB e PostgreSQL.
Se você quiser executar pequenas quantidades de contêineres no Azure, instale o Docker em uma máquina virtual. Como alternativa, se você usar o serviço Instâncias de Contêiner, poderá executar contêineres no Azure sem configurar suas próprias máquinas virtuais. Se você quiser gerenciar facilmente grandes números de contêineres que precisem se comunicar entre si, use o Serviço de Kubernetes do Azure.